Class ScriptExecutor


  • public class ScriptExecutor
    extends Object
    ScriptExecutor executes a DML or PYDML Script object using SystemDS. This is accomplished by calling the execute(org.apache.sysds.api.mlcontext.Script) method.

    Script execution via the MLContext API typically consists of the following steps:

    1. Language Steps
      1. Parse script into program
      2. Live variable analysis
      3. Validate program
    2. HOP (High-Level Operator) Steps
      1. Construct HOP DAGs
      2. Static rewrites
      3. Intra-/Inter-procedural analysis
      4. Dynamic rewrites
      5. Compute memory estimates
      6. Rewrite persistent reads and writes (MLContext-specific)
    3. LOP (Low-Level Operator) Steps
      1. Contruct LOP DAGs
      2. Generate runtime program
      3. Execute runtime program
      4. Dynamic recompilation

    Modifications to these steps can be accomplished by subclassing ScriptExecutor. For more information, please see the execute(org.apache.sysds.api.mlcontext.Script) method.

    • Constructor Detail

      • ScriptExecutor

        public ScriptExecutor()
        ScriptExecutor constructor.
      • ScriptExecutor

        public ScriptExecutor​(DMLConfig config)
        ScriptExecutor constructor, where the configuration properties are passed in.
        Parameters:
        config - the configuration properties to use by the ScriptExecutor
    • Method Detail

      • compile

        public void compile​(Script script)
      • setConfig

        public void setConfig​(DMLConfig config)
        Set the SystemDS configuration properties.
        Parameters:
        config - The configuration properties
      • getDmlProgram

        public DMLProgram getDmlProgram()
        Obtain the program
        Returns:
        the program
      • getDmlTranslator

        public DMLTranslator getDmlTranslator()
        Obtain the translator
        Returns:
        the translator
      • getRuntimeProgram

        public Program getRuntimeProgram()
        Obtain the runtime program
        Returns:
        the runtime program
      • getExecutionContext

        public ExecutionContext getExecutionContext()
        Obtain the execution context
        Returns:
        the execution context
      • getScript

        public Script getScript()
        Obtain the Script object associated with this ScriptExecutor
        Returns:
        the Script object associated with this ScriptExecutor
      • setExplain

        public void setExplain​(boolean explain)
        Whether or not an explanation of the DML/PYDML program should be output to standard output.
        Parameters:
        explain - true if explanation should be output, false otherwise
      • setStatistics

        public void setStatistics​(boolean statistics)
        Whether or not statistics about the DML/PYDML program should be output to standard output.
        Parameters:
        statistics - true if statistics should be output, false otherwise
      • setStatisticsMaxHeavyHitters

        public void setStatisticsMaxHeavyHitters​(int maxHeavyHitters)
        Set the maximum number of heavy hitters to display with statistics.
        Parameters:
        maxHeavyHitters - the maximum number of heavy hitters
      • isMaintainSymbolTable

        public boolean isMaintainSymbolTable()
        Obtain whether or not all values should be maintained in the symbol table after execution.
        Returns:
        true if all values should be maintained in the symbol table, false otherwise
      • setMaintainSymbolTable

        public void setMaintainSymbolTable​(boolean maintainSymbolTable)
        Set whether or not all values should be maintained in the symbol table after execution.
        Parameters:
        maintainSymbolTable - true if all values should be maintained in the symbol table, false otherwise
      • setInit

        public void setInit​(boolean init)
        Whether or not to initialize the scratch_space, bufferpool, etc. Note that any redundant initialize (e.g., multiple scripts from one MLContext) clears existing files from the scratch space and buffer pool.
        Parameters:
        init - true if should initialize, false otherwise
      • setExplainLevel

        public void setExplainLevel​(MLContext.ExplainLevel explainLevel)
        Set the level of program explanation that should be displayed if explain is set to true.
        Parameters:
        explainLevel - the level of program explanation
      • setGPU

        public void setGPU​(boolean enabled)
        Whether or not to enable GPU usage.
        Parameters:
        enabled - true if enabled, false otherwise
      • setForceGPU

        public void setForceGPU​(boolean enabled)
        Whether or not to force GPU usage.
        Parameters:
        enabled - true if enabled, false otherwise
      • getConfig

        public DMLConfig getConfig()
        Obtain the SystemDS configuration properties.
        Returns:
        the configuration properties
      • getExecutionType

        public MLContext.ExecutionType getExecutionType()
        Obtain the current execution environment.
        Returns:
        the execution environment
      • setExecutionType

        public void setExecutionType​(MLContext.ExecutionType executionType)
        Set the execution environment.
        Parameters:
        executionType - the execution environment