org.apache.sysds.runtime.instructions.gpu

## Class GPUInstruction

- java.lang.Object
- - org.apache.sysds.runtime.instructions.Instruction
  - - org.apache.sysds.runtime.instructions.gpu.GPUInstruction

- All Implemented Interfaces:
    LineageTraceable
  Direct Known Subclasses:
    AggregateBinaryGPUInstruction, AggregateUnaryGPUInstruction, ArithmeticBinaryGPUInstruction, BuiltinBinaryGPUInstruction, BuiltinUnaryGPUInstruction, DnnGPUInstruction, MatrixAppendGPUInstruction, MatrixIndexingGPUInstruction, MatrixReshapeGPUInstruction, MMTSJGPUInstruction, RelationalBinaryGPUInstruction, ReorgGPUInstruction, SpoofCUDAInstruction

      public abstract class GPUInstruction
      extends Instruction
      implements LineageTraceable

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `GPUInstruction.GPUINSTRUCTION_TYPE`

    - ### Nested classes/interfaces inherited from class org.apache.sysds.runtime.instructions.Instruction

      `Instruction.IType`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `CPOperand` | `_input1`
    `CPOperand` | `_input2`
    `CPOperand` | `_output`
    `static String` | `MISC_TIMER_ABS_KERNEL`
    `static String` | `MISC_TIMER_ACOS_KERNEL`
    `static String` | `MISC_TIMER_ACTIVATION_FORWARD_LIB`
    `static String` | `MISC_TIMER_ALLOCATE`
    `static String` | `MISC_TIMER_ALLOCATE_DENSE_OUTPUT`
    `static String` | `MISC_TIMER_ALLOCATE_SPARSE_OUTPUT`
    `static String` | `MISC_TIMER_ASIN_KERNEL`
    `static String` | `MISC_TIMER_ATAN_KERNEL`
    `static String` | `MISC_TIMER_BIAS_ADD_LIB`
    `static String` | `MISC_TIMER_CBIND_KERNEL`
    `static String` | `MISC_TIMER_CEIL_KERNEL`
    `static String` | `MISC_TIMER_COLUMN_TO_ROW_MAJOR`
    `static String` | `MISC_TIMER_COMPARE_AND_SET_KERNEL`
    `static String` | `MISC_TIMER_CONVOLUTION_BACKWARD_DATA_LIB`
    `static String` | `MISC_TIMER_CONVOLUTION_BACKWARD_FILTER_LIB`
    `static String` | `MISC_TIMER_CONVOLUTION_FORWARD_LIB`
    `static String` | `MISC_TIMER_COS_KERNEL`
    `static String` | `MISC_TIMER_COSH_KERNEL`
    `static String` | `MISC_TIMER_CUDA_FREE`
    `static String` | `MISC_TIMER_CUDA_SYNC`
    `static String` | `MISC_TIMER_CUDNN_CLEANUP`
    `static String` | `MISC_TIMER_CUDNN_INIT`
    `static String` | `MISC_TIMER_CUMULATIVE_SCAN_KERNEL`
    `static String` | `MISC_TIMER_CUMULATIVE_SUMPROD_KERNEL`
    `static String` | `MISC_TIMER_DAXPY_LIB`
    `static String` | `MISC_TIMER_DAXPY_MV_KERNEL`
    `static String` | `MISC_TIMER_DENSE_DGEAM_LIB`
    `static String` | `MISC_TIMER_DENSE_DOT_LIB`
    `static String` | `MISC_TIMER_DENSE_IM2COL_KERNEL`
    `static String` | `MISC_TIMER_DENSE_MATRIX_DENSE_MATRIX_LIB`
    `static String` | `MISC_TIMER_DENSE_MATRIX_DENSE_VECTOR_LIB`
    `static String` | `MISC_TIMER_DENSE_REORG_KNPQ_KERNEL`
    `static String` | `MISC_TIMER_DENSE_TO_SPARSE`
    `static String` | `MISC_TIMER_DENSE_VECTOR_DENSE_MATRIX_LIB`
    `static String` | `MISC_TIMER_DEVICE_TO_DEVICE`
    `static String` | `MISC_TIMER_DEVICE_TO_HOST`
    `static String` | `MISC_TIMER_EVICT`
    `static String` | `MISC_TIMER_EXP_KERNEL`
    `static String` | `MISC_TIMER_FILL_KERNEL`
    `static String` | `MISC_TIMER_FLOOR_KERNEL`
    `static String` | `MISC_TIMER_HOST_TO_DEVICE`
    `static String` | `MISC_TIMER_LOG_KERNEL`
    `static String` | `MISC_TIMER_MATRIX_MATRIX_CELLWISE_OP_KERNEL`
    `static String` | `MISC_TIMER_MATRIX_SCALAR_OP_KERNEL`
    `static String` | `MISC_TIMER_MAXPOOLING_BACKWARD_LIB`
    `static String` | `MISC_TIMER_MAXPOOLING_FORWARD_LIB`
    `static String` | `MISC_TIMER_OBJECT_CLONE`
    `static String` | `MISC_TIMER_ORMQR`
    `static String` | `MISC_TIMER_QR`
    `static String` | `MISC_TIMER_QR_BUFFER`
    `static String` | `MISC_TIMER_RBIND_KERNEL`
    `static String` | `MISC_TIMER_REDUCE_ALL_KERNEL`
    `static String` | `MISC_TIMER_REDUCE_COL_KERNEL`
    `static String` | `MISC_TIMER_REDUCE_ROW_KERNEL`
    `static String` | `MISC_TIMER_RELU_BACKWARD_KERNEL`
    `static String` | `MISC_TIMER_RELU_KERNEL`
    `static String` | `MISC_TIMER_REUSE`
    `static String` | `MISC_TIMER_RIX_DENSE_OP`
    `static String` | `MISC_TIMER_RIX_SPARSE_DENSE_OP_NNZ`
    `static String` | `MISC_TIMER_RIX_SPARSE_DENSE_OP_ROWWISE`
    `static String` | `MISC_TIMER_ROUND_KERNEL`
    `static String` | `MISC_TIMER_ROW_TO_COLUMN_MAJOR`
    `static String` | `MISC_TIMER_SET_ZERO`
    `static String` | `MISC_TIMER_SIGMOID_KERNEL`
    `static String` | `MISC_TIMER_SIGN_KERNEL`
    `static String` | `MISC_TIMER_SIN_KERNEL`
    `static String` | `MISC_TIMER_SINH_KERNEL`
    `static String` | `MISC_TIMER_SPARSE_ALLOCATE_LIB`
    `static String` | `MISC_TIMER_SPARSE_DGEAM_LIB`
    `static String` | `MISC_TIMER_SPARSE_IM2COL_KERNEL`
    `static String` | `MISC_TIMER_SPARSE_MATRIX_DENSE_MATRIX_LIB`
    `static String` | `MISC_TIMER_SPARSE_MATRIX_DENSE_VECTOR_LIB`
    `static String` | `MISC_TIMER_SPARSE_MATRIX_SPARSE_MATRIX_LIB`
    `static String` | `MISC_TIMER_SPARSE_TO_DENSE`
    `static String` | `MISC_TIMER_SQRT_KERNEL`
    `static String` | `MISC_TIMER_SYRK_LIB`
    `static String` | `MISC_TIMER_TAN_KERNEL`
    `static String` | `MISC_TIMER_TANH_KERNEL`
    `static String` | `MISC_TIMER_TRANSPOSE_LIB`
    `static String` | `MISC_TIMER_TRSM`
    `static String` | `MISC_TIMER_UPPER_TO_LOWER_TRIANGLE_KERNEL`

    - ### Fields inherited from class org.apache.sysds.runtime.instructions.Instruction

      `DATATYPE_PREFIX, FEDERATED_INST_PREFIX, GPU_INST_PREFIX, INSTRUCTION_DELIM, LITERAL_PREFIX, OPERAND_DELIM, SP_INST_PREFIX, VALUETYPE_PREFIX`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `GPUInstruction.GPUINSTRUCTION_TYPE` | `getGPUInstructionType()`
    `String` | `getGraphString()`
    `org.apache.commons.lang3.tuple.Pair<String,LineageItem>` | `getLineageItem(ExecutionContext ec)` Obtain lineage trace of an instruction with a single output.
    `Instruction.IType` | `getType()`
    `void` | `postprocessInstruction(ExecutionContext ec)` This method should be used for any tear down after executing this instruction.
    `Instruction` | `preprocessInstruction(ExecutionContext ec)` This method should be used for any setup before executing this instruction.
    `abstract void` | `processInstruction(ExecutionContext ec)` This method should be used to execute the instruction.
    `boolean` | `requiresLabelUpdate()`

    - ### Methods inherited from class org.apache.sysds.runtime.instructions.Instruction

      `getBeginColumn, getBeginLine, getEndColumn, getEndLine, getExtendedOpcode, getFilename, getInstID, getInstructionString, getLineNum, getOpcode, getOperator, getPrivacyConstraint, printMe, setInstID, setLocation, setLocation, setLocation, setLocation, setPrivacyConstraint, setPrivacyConstraint, toString, updateInstructionThreadID`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.sysds.runtime.lineage.LineageTraceable

      `getLineageItems, hasSingleLineage`

- - ### Field Detail

    - #### _output

          public final CPOperand _output

    - #### _input1

          public final CPOperand _input1

    - #### _input2

          public final CPOperand _input2

    - #### MISC_TIMER_HOST_TO_DEVICE

          public static final String MISC_TIMER_HOST_TO_DEVICE

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DEVICE_TO_HOST

          public static final String MISC_TIMER_DEVICE_TO_HOST

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DEVICE_TO_DEVICE

          public static final String MISC_TIMER_DEVICE_TO_DEVICE

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SPARSE_TO_DENSE

          public static final String MISC_TIMER_SPARSE_TO_DENSE

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DENSE_TO_SPARSE

          public static final String MISC_TIMER_DENSE_TO_SPARSE

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ROW_TO_COLUMN_MAJOR

          public static final String MISC_TIMER_ROW_TO_COLUMN_MAJOR

      See Also:
        Constant Field Values

    - #### MISC_TIMER_COLUMN_TO_ROW_MAJOR

          public static final String MISC_TIMER_COLUMN_TO_ROW_MAJOR

      See Also:
        Constant Field Values

    - #### MISC_TIMER_OBJECT_CLONE

          public static final String MISC_TIMER_OBJECT_CLONE

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CUDA_SYNC

          public static final String MISC_TIMER_CUDA_SYNC

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CUDA_FREE

          public static final String MISC_TIMER_CUDA_FREE

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ALLOCATE

          public static final String MISC_TIMER_ALLOCATE

      See Also:
        Constant Field Values

    - #### MISC_TIMER_EVICT

          public static final String MISC_TIMER_EVICT

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ALLOCATE_DENSE_OUTPUT

          public static final String MISC_TIMER_ALLOCATE_DENSE_OUTPUT

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ALLOCATE_SPARSE_OUTPUT

          public static final String MISC_TIMER_ALLOCATE_SPARSE_OUTPUT

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SET_ZERO

          public static final String MISC_TIMER_SET_ZERO

      See Also:
        Constant Field Values

    - #### MISC_TIMER_REUSE

          public static final String MISC_TIMER_REUSE

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SPARSE_ALLOCATE_LIB

          public static final String MISC_TIMER_SPARSE_ALLOCATE_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DENSE_DOT_LIB

          public static final String MISC_TIMER_DENSE_DOT_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DENSE_VECTOR_DENSE_MATRIX_LIB

          public static final String MISC_TIMER_DENSE_VECTOR_DENSE_MATRIX_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DENSE_MATRIX_DENSE_VECTOR_LIB

          public static final String MISC_TIMER_DENSE_MATRIX_DENSE_VECTOR_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DENSE_MATRIX_DENSE_MATRIX_LIB

          public static final String MISC_TIMER_DENSE_MATRIX_DENSE_MATRIX_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SPARSE_MATRIX_DENSE_VECTOR_LIB

          public static final String MISC_TIMER_SPARSE_MATRIX_DENSE_VECTOR_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SPARSE_MATRIX_SPARSE_MATRIX_LIB

          public static final String MISC_TIMER_SPARSE_MATRIX_SPARSE_MATRIX_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SPARSE_MATRIX_DENSE_MATRIX_LIB

          public static final String MISC_TIMER_SPARSE_MATRIX_DENSE_MATRIX_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SYRK_LIB

          public static final String MISC_TIMER_SYRK_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DAXPY_LIB

          public static final String MISC_TIMER_DAXPY_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_QR_BUFFER

          public static final String MISC_TIMER_QR_BUFFER

      See Also:
        Constant Field Values

    - #### MISC_TIMER_QR

          public static final String MISC_TIMER_QR

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ORMQR

          public static final String MISC_TIMER_ORMQR

      See Also:
        Constant Field Values

    - #### MISC_TIMER_TRSM

          public static final String MISC_TIMER_TRSM

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SPARSE_DGEAM_LIB

          public static final String MISC_TIMER_SPARSE_DGEAM_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DENSE_DGEAM_LIB

          public static final String MISC_TIMER_DENSE_DGEAM_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_TRANSPOSE_LIB

          public static final String MISC_TIMER_TRANSPOSE_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_MATRIX_MATRIX_CELLWISE_OP_KERNEL

          public static final String MISC_TIMER_MATRIX_MATRIX_CELLWISE_OP_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_COMPARE_AND_SET_KERNEL

          public static final String MISC_TIMER_COMPARE_AND_SET_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_EXP_KERNEL

          public static final String MISC_TIMER_EXP_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SQRT_KERNEL

          public static final String MISC_TIMER_SQRT_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ROUND_KERNEL

          public static final String MISC_TIMER_ROUND_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ABS_KERNEL

          public static final String MISC_TIMER_ABS_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_LOG_KERNEL

          public static final String MISC_TIMER_LOG_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_FLOOR_KERNEL

          public static final String MISC_TIMER_FLOOR_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CEIL_KERNEL

          public static final String MISC_TIMER_CEIL_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SIN_KERNEL

          public static final String MISC_TIMER_SIN_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_COS_KERNEL

          public static final String MISC_TIMER_COS_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_TAN_KERNEL

          public static final String MISC_TIMER_TAN_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SINH_KERNEL

          public static final String MISC_TIMER_SINH_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_COSH_KERNEL

          public static final String MISC_TIMER_COSH_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_TANH_KERNEL

          public static final String MISC_TIMER_TANH_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ASIN_KERNEL

          public static final String MISC_TIMER_ASIN_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ACOS_KERNEL

          public static final String MISC_TIMER_ACOS_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ATAN_KERNEL

          public static final String MISC_TIMER_ATAN_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SIGN_KERNEL

          public static final String MISC_TIMER_SIGN_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SIGMOID_KERNEL

          public static final String MISC_TIMER_SIGMOID_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CBIND_KERNEL

          public static final String MISC_TIMER_CBIND_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_RBIND_KERNEL

          public static final String MISC_TIMER_RBIND_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DAXPY_MV_KERNEL

          public static final String MISC_TIMER_DAXPY_MV_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_UPPER_TO_LOWER_TRIANGLE_KERNEL

          public static final String MISC_TIMER_UPPER_TO_LOWER_TRIANGLE_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_FILL_KERNEL

          public static final String MISC_TIMER_FILL_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_MATRIX_SCALAR_OP_KERNEL

          public static final String MISC_TIMER_MATRIX_SCALAR_OP_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_REDUCE_ALL_KERNEL

          public static final String MISC_TIMER_REDUCE_ALL_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_REDUCE_ROW_KERNEL

          public static final String MISC_TIMER_REDUCE_ROW_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_REDUCE_COL_KERNEL

          public static final String MISC_TIMER_REDUCE_COL_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_RIX_DENSE_OP

          public static final String MISC_TIMER_RIX_DENSE_OP

      See Also:
        Constant Field Values

    - #### MISC_TIMER_RIX_SPARSE_DENSE_OP_ROWWISE

          public static final String MISC_TIMER_RIX_SPARSE_DENSE_OP_ROWWISE

      See Also:
        Constant Field Values

    - #### MISC_TIMER_RIX_SPARSE_DENSE_OP_NNZ

          public static final String MISC_TIMER_RIX_SPARSE_DENSE_OP_NNZ

      See Also:
        Constant Field Values

    - #### MISC_TIMER_ACTIVATION_FORWARD_LIB

          public static final String MISC_TIMER_ACTIVATION_FORWARD_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CONVOLUTION_FORWARD_LIB

          public static final String MISC_TIMER_CONVOLUTION_FORWARD_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CONVOLUTION_BACKWARD_FILTER_LIB

          public static final String MISC_TIMER_CONVOLUTION_BACKWARD_FILTER_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CONVOLUTION_BACKWARD_DATA_LIB

          public static final String MISC_TIMER_CONVOLUTION_BACKWARD_DATA_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_MAXPOOLING_FORWARD_LIB

          public static final String MISC_TIMER_MAXPOOLING_FORWARD_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_MAXPOOLING_BACKWARD_LIB

          public static final String MISC_TIMER_MAXPOOLING_BACKWARD_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_BIAS_ADD_LIB

          public static final String MISC_TIMER_BIAS_ADD_LIB

      See Also:
        Constant Field Values

    - #### MISC_TIMER_RELU_BACKWARD_KERNEL

          public static final String MISC_TIMER_RELU_BACKWARD_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_RELU_KERNEL

          public static final String MISC_TIMER_RELU_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CUDNN_INIT

          public static final String MISC_TIMER_CUDNN_INIT

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CUDNN_CLEANUP

          public static final String MISC_TIMER_CUDNN_CLEANUP

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DENSE_IM2COL_KERNEL

          public static final String MISC_TIMER_DENSE_IM2COL_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_SPARSE_IM2COL_KERNEL

          public static final String MISC_TIMER_SPARSE_IM2COL_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_DENSE_REORG_KNPQ_KERNEL

          public static final String MISC_TIMER_DENSE_REORG_KNPQ_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CUMULATIVE_SCAN_KERNEL

          public static final String MISC_TIMER_CUMULATIVE_SCAN_KERNEL

      See Also:
        Constant Field Values

    - #### MISC_TIMER_CUMULATIVE_SUMPROD_KERNEL

          public static final String MISC_TIMER_CUMULATIVE_SUMPROD_KERNEL

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getType

          public Instruction.IType getType()

      Specified by:
        `getType` in class `Instruction`

    - #### getGPUInstructionType

          public GPUInstruction.GPUINSTRUCTION_TYPE getGPUInstructionType()

    - #### requiresLabelUpdate

          public boolean requiresLabelUpdate()

      Overrides:
        `requiresLabelUpdate` in class `Instruction`

    - #### getGraphString

          public String getGraphString()

      Overrides:
        `getGraphString` in class `Instruction`

    - #### preprocessInstruction

          public Instruction preprocessInstruction(ExecutionContext ec)

      Description copied from class: `Instruction`
      This method should be used for any setup before executing this instruction. Overwriting methods should first call the super method and subsequently do their custom setup.
      Overrides:
        `preprocessInstruction` in class `Instruction`
      Parameters:
        `ec` - execution context
      Returns:
        instruction

    - #### processInstruction

          public abstract void processInstruction(ExecutionContext ec)

      Description copied from class: `Instruction`
      This method should be used to execute the instruction.
      Specified by:
        `processInstruction` in class `Instruction`
      Parameters:
        `ec` - execution context

    - #### postprocessInstruction

          public void postprocessInstruction(ExecutionContext ec)

      Description copied from class: `Instruction`
      This method should be used for any tear down after executing this instruction. Overwriting methods should first do their custom tear down and subsequently call the super method.
      Overrides:
        `postprocessInstruction` in class `Instruction`
      Parameters:
        `ec` - execution context

    - #### getLineageItem

          public org.apache.commons.lang3.tuple.Pair<String,LineageItem> getLineageItem(ExecutionContext ec)

      Description copied from interface: `LineageTraceable`
      Obtain lineage trace of an instruction with a single output.
      Specified by:
        `getLineageItem` in interface `LineageTraceable`
      Parameters:
        `ec` - execution context w/ live variables
      Returns:
        pair of (output variable name, output lineage item)

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