## Uses of Class
org.apache.sysds.runtime.controlprogram.context.ExecutionContext

- Packages that use ExecutionContext
  Package | Description
  --- | ---
  org.apache.sysds.api |
  org.apache.sysds.api.mlcontext |
  org.apache.sysds.hops.cost |
  org.apache.sysds.hops.recompile |
  org.apache.sysds.runtime.controlprogram |
  org.apache.sysds.runtime.controlprogram.context |
  org.apache.sysds.runtime.controlprogram.federated |
  org.apache.sysds.runtime.controlprogram.paramserv |
  org.apache.sysds.runtime.controlprogram.parfor |
  org.apache.sysds.runtime.controlprogram.parfor.opt |
  org.apache.sysds.runtime.instructions |
  org.apache.sysds.runtime.instructions.cp |
  org.apache.sysds.runtime.instructions.cpfile |
  org.apache.sysds.runtime.instructions.fed |
  org.apache.sysds.runtime.instructions.gpu |
  org.apache.sysds.runtime.instructions.spark |
  org.apache.sysds.runtime.lineage |
  org.apache.sysds.runtime.matrix.data |
  org.apache.sysds.runtime.privacy |
  org.apache.sysds.runtime.util |

- - ### Uses of ExecutionContext in org.apache.sysds.api

    Methods in org.apache.sysds.api with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static void` | ScriptExecutorUtils.`executeRuntimeProgram(Program rtprog, ExecutionContext ec, DMLConfig dmlconf, int statisticsMaxHeavyHitters, Set<String> outputVariables)` Execute the runtime program.

  - ### Uses of ExecutionContext in org.apache.sysds.api.mlcontext

    Methods in org.apache.sysds.api.mlcontext that return ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `ExecutionContext` | ScriptExecutor.`getExecutionContext()` Obtain the execution context

  - ### Uses of ExecutionContext in org.apache.sysds.hops.cost

    Methods in org.apache.sysds.hops.cost with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static double` | CostEstimationWrapper.`getTimeEstimate(ProgramBlock pb, ExecutionContext ec, boolean recursive)`
    `static double` | CostEstimationWrapper.`getTimeEstimate(Program rtprog, ExecutionContext ec)`

  - ### Uses of ExecutionContext in org.apache.sysds.hops.recompile

    Methods in org.apache.sysds.hops.recompile with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | Recompiler.`checkCPReblock(ExecutionContext ec, String varin)` CP Reblock check for spark instructions; in contrast to MR, we can not rely on the input file sizes because inputs might be passed via rdds.
    `static void` | Recompiler.`executeInMemoryFrameReblock(ExecutionContext ec, String varin, String varout)`
    `static void` | Recompiler.`executeInMemoryMatrixReblock(ExecutionContext ec, String varin, String varout)`
    `static ArrayList<Instruction>` | Recompiler.`recompileHopsDag(Hop hop, ExecutionContext ec, RecompileStatus status, boolean inplace, boolean replaceLit, long tid)`
    `static ArrayList<Instruction>` | Recompiler.`recompileHopsDag(StatementBlock sb, ArrayList<Hop> hops, ExecutionContext ec, RecompileStatus status, boolean inplace, boolean replaceLit, long tid)`
    `static void` | Recompiler.`rReplaceLiterals(Hop hop, ExecutionContext ec, boolean scalarsOnly)` public interface to package local literal replacement

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.controlprogram

    Methods in org.apache.sysds.runtime.controlprogram with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `void` | BasicProgramBlock.`execute(ExecutionContext ec)`
    `void` | IfProgramBlock.`execute(ExecutionContext ec)`
    `void` | Program.`execute(ExecutionContext ec)`
    `void` | WhileProgramBlock.`execute(ExecutionContext ec)`
    `void` | ForProgramBlock.`execute(ExecutionContext ec)`
    `void` | ParForProgramBlock.`execute(ExecutionContext ec)`
    `void` | FunctionProgramBlock.`execute(ExecutionContext ec)`
    `abstract void` | ProgramBlock.`execute(ExecutionContext ec)` Executes this program block (incl recompilation if required).
    `ScalarObject` | ProgramBlock.`executePredicate(ArrayList<Instruction> inst, Hop hops, boolean requiresRecompile, Types.ValueType retType, ExecutionContext ec)` Executes given predicate instructions (incl recompilation if required)

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.controlprogram.context

    Subclasses of ExecutionContext in org.apache.sysds.runtime.controlprogram.context
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SparkExecutionContext`

    Methods in org.apache.sysds.runtime.controlprogram.context that return ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static ExecutionContext` | ExecutionContextFactory.`createContext()`
    `static ExecutionContext` | ExecutionContextFactory.`createContext(boolean allocateVars, boolean allocateLineage, Program prog)`
    `static ExecutionContext` | ExecutionContextFactory.`createContext(boolean allocateVars, Program prog)`
    `static ExecutionContext` | ExecutionContextFactory.`createContext(LocalVariableMap vars, Program prog)`
    `static ExecutionContext` | ExecutionContextFactory.`createContext(Program prog)`

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.controlprogram.federated

    Methods in org.apache.sysds.runtime.controlprogram.federated that return ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `ExecutionContext` | ExecutionContextMap.`get(long tid)`

    Methods in org.apache.sysds.runtime.controlprogram.federated with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `abstract FederatedResponse` | FederatedUDF.`execute(ExecutionContext ec, Data... data)` Execute the user-defined function on a set of data objects (e.g., matrix objects, frame objects, or scalars), which are looked up by specified input IDs and passed in the same order.

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.controlprogram.paramserv

    Methods in org.apache.sysds.runtime.controlprogram.paramserv that return ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static ExecutionContext` | ParamservUtils.`createExecutionContext(ExecutionContext ec, LocalVariableMap varsMap, String updFunc, String aggFunc, int k)`
    `ExecutionContext` | SparkPSBody.`getEc()`

    Methods in org.apache.sysds.runtime.controlprogram.paramserv that return types with arguments of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static List<ExecutionContext>` | ParamservUtils.`copyExecutionContext(ExecutionContext ec, int num)`

    Methods in org.apache.sysds.runtime.controlprogram.paramserv with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static void` | ParamservUtils.`cleanupData(ExecutionContext ec, Data data)`
    `static void` | ParamservUtils.`cleanupData(ExecutionContext ec, String varName)`
    `static void` | ParamservUtils.`cleanupListObject(ExecutionContext ec, ListObject lo)`
    `static void` | ParamservUtils.`cleanupListObject(ExecutionContext ec, ListObject lo, boolean[] status)`
    `static void` | ParamservUtils.`cleanupListObject(ExecutionContext ec, String lName)` Clean up the list object according to its own data status
    `static void` | ParamservUtils.`cleanupListObject(ExecutionContext ec, String lName, boolean[] status)` Clean up the list object according to the given array of data status (i.e., false => not be removed)
    `static List<ExecutionContext>` | ParamservUtils.`copyExecutionContext(ExecutionContext ec, int num)`
    `static LocalParamServer` | LocalParamServer.`create(ListObject model, String aggFunc, Statement.PSUpdateType updateType, ExecutionContext ec, int workerNum)`
    `static ExecutionContext` | ParamservUtils.`createExecutionContext(ExecutionContext ec, LocalVariableMap varsMap, String updFunc, String aggFunc, int k)`
    `void` | SparkPSBody.`setEc(ExecutionContext ec)`

    Constructors in org.apache.sysds.runtime.controlprogram.paramserv with parameters of type ExecutionContext
    Constructor and Description
    `LocalPSWorker(int workerID, String updFunc, Statement.PSFrequency freq, int epochs, long batchSize, ExecutionContext ec, ParamServer ps)`
    `SparkPSBody(ExecutionContext ec)`

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.controlprogram.parfor

    Methods in org.apache.sysds.runtime.controlprogram.parfor that return ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `ExecutionContext` | ParForBody.`getEc()`
    `ExecutionContext` | ParWorker.`getExecutionContext()`

    Methods in org.apache.sysds.runtime.controlprogram.parfor with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static RemoteParForJobReturn` | RemoteParForSpark.`runJob(long pfid, String prog, HashMap<String,byte[]> clsMap, List<Task> tasks, ExecutionContext ec, ArrayList<ParForStatementBlock.ResultVar> resultVars, boolean cpCaching, int numMappers, boolean topLevelPF)`
    `static RemoteParForJobReturn` | RemoteDPParForSpark.`runJob(long pfid, String itervar, String matrixvar, String program, HashMap<String,byte[]> clsMap, String resultFile, MatrixObject input, ExecutionContext ec, ParForProgramBlock.PartitionFormat dpf, Types.FileFormat fmt, boolean tSparseCol, boolean enableCPCaching, int numReducers)`
    `void` | ParForBody.`setEc(ExecutionContext ec)`

    Constructors in org.apache.sysds.runtime.controlprogram.parfor with parameters of type ExecutionContext
    Constructor and Description
    `DataPartitionerRemoteSpark(ParForProgramBlock.PartitionFormat dpf, ExecutionContext ec, long numRed, int replication, boolean keepIndexes)`
    `ParForBody(ArrayList<ProgramBlock> childBlocks, ArrayList<ParForStatementBlock.ResultVar> resultVars, ExecutionContext ec)`
    `ResultMergeRemoteSpark(MatrixObject out, MatrixObject[] in, String outputFilename, boolean accum, ExecutionContext ec, int numMappers, int numReducers)`

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.controlprogram.parfor.opt

    Methods in org.apache.sysds.runtime.controlprogram.parfor.opt with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static OptTree` | OptTreeConverter.`createAbstractOptTree(int ck, double cm, ParForStatementBlock pfsb, ParForProgramBlock pfpb, Set<String> memo, ExecutionContext ec)`
    `static OptTree` | OptTreeConverter.`createOptTree(int ck, double cm, Optimizer.PlanInputType type, ParForStatementBlock pfsb, ParForProgramBlock pfpb, ExecutionContext ec)`
    `static void` | OptimizationWrapper.`optimize(ParForProgramBlock.POptMode type, ParForStatementBlock sb, ParForProgramBlock pb, ExecutionContext ec, boolean monitor)` Called once per top-level parfor (during runtime, on parfor execute) in order to optimize the specific parfor program block.
    `boolean` | OptimizerRuleBased.`optimize(ParForStatementBlock sb, ParForProgramBlock pb, OptTree plan, CostEstimator est, ExecutionContext ec)` Main optimization procedure.
    `boolean` | OptimizerConstrained.`optimize(ParForStatementBlock sb, ParForProgramBlock pb, OptTree plan, CostEstimator est, ExecutionContext ec)` Main optimization procedure.
    `abstract boolean` | Optimizer.`optimize(ParForStatementBlock sb, ParForProgramBlock pb, OptTree plan, CostEstimator est, ExecutionContext ec)` Optimize
    `static void` | ProgramRecompiler.`rFindAndRecompileIndexingHOP(StatementBlock sb, ProgramBlock pb, String var, ExecutionContext ec, boolean force)` NOTE: if force is set, we set and recompile the respective indexing hops; otherwise, we release the forced exec type and recompile again.

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.instructions

    Methods in org.apache.sysds.runtime.instructions with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `void` | Instruction.`postprocessInstruction(ExecutionContext ec)` This method should be used for any tear down after executing this instruction.
    `Instruction` | Instruction.`preprocessInstruction(ExecutionContext ec)` This method should be used for any setup before executing this instruction.
    `abstract void` | Instruction.`processInstruction(ExecutionContext ec)` This method should be used to execute the instruction.

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.instructions.cp

    Methods in org.apache.sysds.runtime.instructions.cp with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | ScalarBuiltinNaryCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | MatrixIndexingCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | ReshapeCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | SpoofCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | MatrixAppendCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | ParameterizedBuiltinCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | VariableCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | MatrixBuiltinNaryCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | DataGenCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | CtableCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | ComputationCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | ListIndexingCPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair[]` | MultiReturnBuiltinCPInstruction.`getLineageItems(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair[]` | MultiReturnParameterizedBuiltinCPInstruction.`getLineageItems(ExecutionContext ec)`
    `CacheableData<?>` | ParameterizedBuiltinCPInstruction.`getTarget(ExecutionContext ec)`
    `void` | FunctionCallCPInstruction.`postprocessInstruction(ExecutionContext ec)`
    `Instruction` | FunctionCallCPInstruction.`preprocessInstruction(ExecutionContext ec)`
    `Instruction` | CPInstruction.`preprocessInstruction(ExecutionContext ec)`
    `void` | DnnCPInstruction.`processBatchNorm2dBackwardInstruction(ExecutionContext ec)`
    `void` | DnnCPInstruction.`processBatchNorm2dInstruction(ExecutionContext ec)`
    `void` | DnnCPInstruction.`processBiasAddInstruction(ExecutionContext ec)`
    `void` | DnnCPInstruction.`processBiasMultiplyInstruction(ExecutionContext ec)`
    `void` | AggregateBinaryCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryMatrixScalarCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ScalarBuiltinNaryCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ParamservBuiltinCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ScalarAppendCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixIndexingCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryFrameMatrixCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryMatrixMatrixCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ReshapeCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MMTSJCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | SqlCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | EvalNaryCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | SpoofCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MMChainCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | TernaryCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | QuantilePickCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | AggregateUnaryCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | FunctionCallCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixAppendCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | QuaternaryCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | UnaryScalarCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | FrameIndexingCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | UnaryMatrixCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | DnnCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | QuantileSortCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | UaggOuterChainCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MultiReturnBuiltinCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | UnaryFrameCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ParameterizedBuiltinCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CompressionCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | VariableCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | FrameAppendCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CentralMomentCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | PMMJCPInstruction.`processInstruction(ExecutionContext ec)`
    `abstract void` | CPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryTensorTensorCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | AggregateTernaryCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryScalarScalarCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ListAppendRemoveCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | StringInitCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixBuiltinNaryCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MultiReturnParameterizedBuiltinCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | DataGenCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ReorgCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CtableCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryFrameFrameCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CovarianceCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ListIndexingCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryFrameScalarCPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | DnnCPInstruction.`processReluBackwardInstruction(ExecutionContext ec)`
    `static void` | VariableCPInstruction.`processRmvarInstruction(ExecutionContext ec, String varname)` Remove variable instruction externalized as a static function in order to allow various cleanup procedures to use the same codepath as the actual rmVar instruction

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.instructions.cpfile

    Methods in org.apache.sysds.runtime.instructions.cpfile with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `void` | MatrixIndexingCPFileInstruction.`processInstruction(ExecutionContext ec)`

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.instructions.fed

    Methods in org.apache.sysds.runtime.instructions.fed with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static Instruction` | FEDInstructionUtils.`checkAndReplaceCP(Instruction inst, ExecutionContext ec)`
    `static Instruction` | FEDInstructionUtils.`checkAndReplaceSP(Instruction inst, ExecutionContext ec)`
    `FederatedResponse` | MultiReturnParameterizedBuiltinFEDInstruction.CreateFrameEncoder.`execute(ExecutionContext ec, Data... data)`
    `FederatedResponse` | MultiReturnParameterizedBuiltinFEDInstruction.ExecuteFrameEncoder.`execute(ExecutionContext ec, Data... data)`
    `FederatedResponse` | ParameterizedBuiltinFEDInstruction.DecodeMatrix.`execute(ExecutionContext ec, Data... data)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | ComputationFEDInstruction.`getLineageItem(ExecutionContext ec)`
    `CacheableData<?>` | ParameterizedBuiltinFEDInstruction.`getTarget(ExecutionContext ec)`
    `Instruction` | FEDInstruction.`preprocessInstruction(ExecutionContext ec)`
    `void` | AggregateBinaryFEDInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MMChainFEDInstruction.`processInstruction(ExecutionContext ec)`
    `void` | AppendFEDInstruction.`processInstruction(ExecutionContext ec)`
    `void` | TsmmFEDInstruction.`processInstruction(ExecutionContext ec)`
    `void` | AggregateUnaryFEDInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryMatrixMatrixFEDInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MultiReturnParameterizedBuiltinFEDInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ParameterizedBuiltinFEDInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ReorgFEDInstruction.`processInstruction(ExecutionContext ec)`
    `void` | InitFEDInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryMatrixScalarFEDInstruction.`processInstruction(ExecutionContext ec)`

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.instructions.gpu

    Methods in org.apache.sysds.runtime.instructions.gpu with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `void` | GPUInstruction.`postprocessInstruction(ExecutionContext ec)`
    `Instruction` | GPUInstruction.`preprocessInstruction(ExecutionContext ec)`
    `void` | DnnGPUInstruction.`processBatchNorm2dBackwardInstruction(ExecutionContext ec)`
    `void` | MatrixMatrixRelationalBinaryGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | DnnGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixReshapeGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixAppendGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixMatrixBuiltinGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixBuiltinGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ScalarMatrixArithmeticGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixMatrixAxpyGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | AggregateUnaryGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MMTSJGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ReorgGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixIndexingGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ScalarMatrixRelationalBinaryGPUInstruction.`processInstruction(ExecutionContext ec)`
    `abstract void` | GPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ScalarMatrixBuiltinGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | AggregateBinaryGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixMatrixArithmeticGPUInstruction.`processInstruction(ExecutionContext ec)`
    `void` | DnnGPUInstruction.`processReLUBackwardInstruction(ExecutionContext ec)`

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.instructions.spark

    Methods in org.apache.sysds.runtime.instructions.spark with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | WriteSPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | ComputationSPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | RandSPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | MatrixIndexingSPInstruction.`getLineageItem(ExecutionContext ec)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | BuiltinNarySPInstruction.`getLineageItem(ExecutionContext ec)`
    `void` | SPInstruction.`postprocessInstruction(ExecutionContext ec)`
    `Instruction` | SPInstruction.`preprocessInstruction(ExecutionContext ec)`
    `void` | ReorgSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CtableSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryFrameFrameSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | DnnSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | PmmSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryTensorTensorSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryFrameScalarSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinUaggChainSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CompressionSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | WriteSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | UnaryFrameSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryMatrixBVectorSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixReshapeSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CSVReblockSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | SpoofSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | UnaryMatrixSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryMatrixScalarSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CumulativeAggregateSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MapmmSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | UaggOuterChainSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | FrameAppendRSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CumulativeOffsetSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ParameterizedBuiltinSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | AppendGAlignedSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CastSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | QuaternarySPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CpmmSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ReblockSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixAppendMSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | RmmSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | TernarySPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | AggregateTernarySPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MultiReturnParameterizedBuiltinSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | FrameIndexingSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixAppendRSPInstruction.`processInstruction(ExecutionContext ec)`
    `abstract void` | SPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | RandSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | Tsmm2SPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryFrameMatrixSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryMatrixMatrixSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | ZipmmSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | QuantilePickSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BinaryTensorTensorBroadcastSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | AppendGSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CovarianceSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CentralMomentSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MapmmChainSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | MatrixIndexingSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | QuantileSortSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | FrameAppendMSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | AggregateUnarySPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | TsmmSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | PMapmmSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | CheckpointSPInstruction.`processInstruction(ExecutionContext ec)`
    `void` | BuiltinNarySPInstruction.`processInstruction(ExecutionContext ec)`

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.lineage

    Methods in org.apache.sysds.runtime.lineage with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static void` | LineageItemUtils.`addAllDataLineage(ExecutionContext ec)`
    `static LineageDedupBlock` | LineageDedupUtils.`computeDedupBlock(ProgramBlock fpb, ExecutionContext ec)`
    `static long` | LineageDedupUtils.`computeNumPaths(ProgramBlock fpb, ExecutionContext ec)`
    `void` | Lineage.`createDedupPatch(ProgramBlock pb, ExecutionContext ec)`
    `static boolean` | LineageRewriteReuse.`executeRewrites(Instruction curr, ExecutionContext ec)`
    `static LineageItem[]` | LineageItemUtils.`getLineage(ExecutionContext ec, CPOperand... operands)`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | LineageTraceable.`getLineageItem(ExecutionContext ec)` Obtain lineage trace of an instruction with a single output.
    `static LineageItem[]` | LineageItemUtils.`getLineageItemInputstoSB(ArrayList<String> inputs, ExecutionContext ec)`
    `default org.apache.commons.lang3.tuple.Pair<String,LineageItem>[]` | LineageTraceable.`getLineageItems(ExecutionContext ec)` Obtain lineage trace of an instruction with multiple outputs.
    `void` | Lineage.`initializeDedupBlock(ProgramBlock pb, ExecutionContext ec)`
    `static LineageDedupBlock` | LineageDedupUtils.`initializeDedupBlock(ProgramBlock fpb, ExecutionContext ec)`
    `static boolean` | LineageCacheConfig.`isReusable(Instruction inst, ExecutionContext ec)`
    `static String` | LineageDedupUtils.`mergeExplainDedupBlocks(ExecutionContext ec)`
    `static long` | LineageDedupUtils.`numPathsInPBs(ArrayList<ProgramBlock> pbs, ExecutionContext ec)`
    `static void` | LineageCache.`putMatrix(Instruction inst, ExecutionContext ec, long computetime)`
    `static void` | LineageCache.`putValue(Instruction inst, ExecutionContext ec, long starttime)`
    `static void` | LineageCache.`putValue(List<DataIdentifier> outputs, LineageItem[] liInputs, String name, ExecutionContext ec, long computetime)`
    `static void` | LineageItemUtils.`replaceDagLeaves(ExecutionContext ec, LineageItem root, CPOperand[] newLeaves)`
    `static void` | LineageDedupUtils.`replaceLineage(ExecutionContext ec)`
    `static boolean` | LineageCache.`reuse(Instruction inst, ExecutionContext ec)`
    `static boolean` | LineageCache.`reuse(List<String> outNames, List<DataIdentifier> outParams, int numOutputs, LineageItem[] liInputs, String name, ExecutionContext ec)`
    `static void` | LineageDedupUtils.`setNewDedupPatch(LineageDedupBlock ldb, ProgramBlock fpb, ExecutionContext ec)`
    `void` | LineageDedupBlock.`setNumPathsInPBs(ArrayList<ProgramBlock> pbs, ExecutionContext ec)`
    `void` | Lineage.`trace(Instruction inst, ExecutionContext ec)`
    `void` | LineageMap.`trace(Instruction inst, ExecutionContext ec)`
    `void` | LineageDedupBlock.`traceBasicProgramBlock(BasicProgramBlock bpb, ExecutionContext ec, Collection<Map.Entry<Long,LineageMap>> paths)`
    `void` | Lineage.`traceCurrentDedupPath(ProgramBlock pb, ExecutionContext ec)`
    `void` | LineageDedupBlock.`traceIfProgramBlock(IfProgramBlock ipb, ExecutionContext ec, Collection<Map.Entry<Long,LineageMap>> paths)`
    `void` | LineageDedupBlock.`traceProgramBlock(ProgramBlock pb, ExecutionContext ec, Collection<Map.Entry<Long,LineageMap>> paths)`
    `void` | LineageDedupBlock.`traceProgramBlocks(ArrayList<ProgramBlock> pbs, ExecutionContext ec)`

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.matrix.data

    Methods in org.apache.sysds.runtime.matrix.data with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static void` | LibMatrixCUDA.`abs(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "abs" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`acos(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "acos" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`asin(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "asin" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`atan(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "atan" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`axpy(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName, double constant)` Performs daxpy operation
    `static void` | LibMatrixCUDA.`cbind(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName)`
    `static void` | LibMatrixCUDA.`ceil(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "ceil" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`cos(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "cos" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`cosh(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "cosh" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`cumulativeScan(ExecutionContext ec, GPUContext gCtx, String instName, String kernelFunction, MatrixObject in, String outputName)` Cumulative scan
    `static void` | LibMatrixCUDA.`cumulativeSumProduct(ExecutionContext ec, GPUContext gCtx, String instName, String kernelFunction, MatrixObject in, String outputName)` Cumulative sum-product kernel cascade invokation
    `static void` | LibMatrixCUDA.`denseTranspose(ExecutionContext ec, GPUContext gCtx, String instName, jcuda.Pointer A, jcuda.Pointer C, long numRowsA, long numColsA)` Computes C = t(A)
    `static void` | LibMatrixCUDA.`exp(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "exp" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`floor(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "floor" operation on a matrix on the GPU
    `static MatrixObject` | LibMatrixCUDA.`getDenseMatrixOutputForGPUInstruction(ExecutionContext ec, String instName, String name, long numRows, long numCols)` Helper method to get the output block (allocated on the GPU) Also records performance information into `Statistics`
    `static void` | LibMatrixCUDA.`log(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "log" operation on a matrix on the GPU
    `static void` | LibMatrixCuDNN.`lstm(ExecutionContext ec, GPUContext gCtx, String instName, jcuda.Pointer X, jcuda.Pointer wPointer, jcuda.Pointer out0, jcuda.Pointer c0, boolean return_sequences, String outputName, String cyName, int N, int M, int D, int T)` Computes the forward pass for an LSTM layer with M neurons.
    `static void` | LibMatrixCuDNN.`lstmBackward(ExecutionContext ec, GPUContext gCtx, String instName, jcuda.Pointer x, jcuda.Pointer hx, jcuda.Pointer cx, jcuda.Pointer wPointer, String doutName, String dcyName, String dxName, String dwName, String dbName, String dhxName, String dcxName, boolean return_sequences, int N, int M, int D, int T)`
    `static MatrixObject` | LibMatrixCuMatMult.`matmult(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject left, MatrixObject right, String outputName, boolean isLeftTransposed, boolean isRightTransposed)` Matrix multiply on GPU Examines sparsity and shapes and routes call to appropriate method from cuBLAS or cuSparse C = op(A) x op(B) The user is expected to call ec.releaseMatrixOutputForGPUInstruction(outputName);
    `static void` | LibMatrixCUDA.`matmultTSMM(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject left, String outputName, boolean isLeftTransposed)` Performs tsmm, A %*% A' or A' %*% A, on GPU by exploiting cublasDsyrk(...)
    `static void` | LibMatrixCUDA.`matrixMatrixArithmetic(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName, boolean isLeftTransposed, boolean isRightTransposed, BinaryOperator op)` Performs elementwise arithmetic operation specified by op of two input matrices in1 and in2
    `static void` | LibMatrixCUDA.`matrixMatrixRelational(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName, BinaryOperator op)` Performs elementwise operation relational specified by op of two input matrices in1 and in2
    `static void` | LibMatrixCUDA.`matrixScalarArithmetic(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName, boolean isInputTransposed, ScalarOperator op)` Entry point to perform elementwise matrix-scalar arithmetic operation specified by op
    `static void` | LibMatrixCUDA.`matrixScalarOp(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName, boolean isInputTransposed, ScalarOperator op)` Utility to do matrix-scalar operation kernel
    `static void` | LibMatrixCUDA.`matrixScalarRelational(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName, ScalarOperator op)` Entry point to perform elementwise matrix-scalar relational operation specified by op
    `static void` | LibMatrixCUDA.`rbind(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName)`
    `static void` | LibMatrixCuDNN.`relu(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName)` Performs the relu operation on the GPU.
    `static void` | LibMatrixCUDA.`round(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "round" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`sigmoid(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "sigmoid" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`sign(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "sign" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`sin(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "sin" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`sinh(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "sinh" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`sliceOperations(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, IndexRange ixrange, String outputName)` Method to perform rightIndex operation for a given lower and upper bounds in row and column dimensions.
    `static void` | LibMatrixCuDNN.`softmax(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "softmax" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`solve(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, MatrixObject in2, String outputName)` Implements the "solve" function for systemds Ax = B (A is of size m*n, B is of size m*1, x is of size n*1)
    `static void` | LibMatrixCUDA.`sqrt(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "sqrt" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`tan(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "tan" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`tanh(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String outputName)` Performs an "tanh" operation on a matrix on the GPU
    `static void` | LibMatrixCUDA.`transpose(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in, String outputName)` Transposes the input matrix using cublasDgeam
    `static void` | LibMatrixCUDA.`unaryAggregate(ExecutionContext ec, GPUContext gCtx, String instName, MatrixObject in1, String output, AggregateUnaryOperator op)` Entry point to perform Unary aggregate operations on the GPU.

    Constructors in org.apache.sysds.runtime.matrix.data with parameters of type ExecutionContext
    Constructor and Description
    `LibMatrixCuDNNRnnAlgorithm(ExecutionContext ec, GPUContext gCtx, String instName, String rnnMode, int N, int T, int M, int D, boolean isTraining, jcuda.Pointer w)`

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.privacy

    Methods in org.apache.sysds.runtime.privacy with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static void` | PrivacyPropagator.`postProcessInstruction(Instruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessBinaryCPInstruction(BinaryCPInstruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessBuiltinNary(BuiltinNaryCPInstruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessCPInstructionFineGrained(CPInstruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessExternal(FunctionCallCPInstruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessInstruction(Instruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessInstructionSimple(Instruction inst, ExecutionContext ec)` Throw exception if privacy constraints are activated or return instruction if privacy is not activated
    `static Instruction` | PrivacyPropagator.`preprocessMultiReturn(ComputationCPInstruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessParameterizedBuiltin(ParameterizedBuiltinCPInstruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessQuaternary(QuaternaryCPInstruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessTernaryCPInstruction(ComputationCPInstruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessUnaryCPInstruction(UnaryCPInstruction inst, ExecutionContext ec)`
    `static Instruction` | PrivacyPropagator.`preprocessVariableCPInstruction(VariableCPInstruction inst, ExecutionContext ec)`

  - ### Uses of ExecutionContext in org.apache.sysds.runtime.util

    Methods in org.apache.sysds.runtime.util that return ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static ExecutionContext` | ProgramConverter.`createDeepCopyExecutionContext(ExecutionContext ec)` Creates a deep copy of the given execution context.

    Methods in org.apache.sysds.runtime.util with parameters of type ExecutionContext
    Modifier and Type | Method and Description
    --- | ---
    `static ExecutionContext` | ProgramConverter.`createDeepCopyExecutionContext(ExecutionContext ec)` Creates a deep copy of the given execution context.
    `static int[]` | DataConverter.`getTensorDimensions(ExecutionContext ec, CPOperand dims)`

Copyright © 2020 The Apache Software Foundation. All rights reserved.