Package org.apache.sysds.runtime.instructions.ooc

# Class OOCInstruction

java.lang.Object
org.apache.sysds.runtime.instructions.Instruction
org.apache.sysds.runtime.instructions.ooc.OOCInstruction

Direct Known Subclasses:
  `ComputationOOCInstruction`

public abstract class OOCInstruction extends Instruction

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`OOCInstruction.OOCMatrixBlockTracker`
Tracks blocks and their counts to enable early emission once all blocks for a given index are processed.
`static enum`
`OOCInstruction.OOCType`

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

`Instruction.IType`

## Field Summary

Fields
Modifier and Type
Field
Description
`final int`
`_callerId`
`static final boolean`
`ALLOW_PIPELINING`
`static final ExecutorService`
`COMPUTE_EXECUTOR`

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

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

## Method Summary

Modifier and Type
Method
Description
`static int`
`getComputeBackpressureThreshold()`
`static int`
`getComputeInFlight()`
`String`
`getGraphString()`
`OOCInstruction.OOCType`
`getOOCInstructionType()`
`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, printMe, setInstID, setLocation, setLocation, setLocation, setLocation, toString, updateInstructionThreadID`

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

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

## Field Details

### ALLOW_PIPELINING

public static final boolean ALLOW_PIPELINING

See Also:
  - Constant Field Values

### COMPUTE_EXECUTOR

public static final ExecutorService COMPUTE_EXECUTOR

### _callerId

public final int _callerId

## Method Details

### getComputeInFlight

public static int getComputeInFlight()

### getComputeBackpressureThreshold

public static int getComputeBackpressureThreshold()

### getType

public Instruction.IType getType()

Specified by:
  `getType` in class `Instruction`

### getOOCInstructionType

public OOCInstruction.OOCType getOOCInstructionType()

### 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