org.apache.sysds.parser

## Class ParForStatementBlock

- java.lang.Object
- - org.apache.sysds.parser.LiveVariableAnalysis
  - - org.apache.sysds.parser.StatementBlock
    - - org.apache.sysds.parser.ForStatementBlock
      - - org.apache.sysds.parser.ParForStatementBlock

All Implemented Interfaces:
  ParseInfo

    public class ParForStatementBlock
    extends ForStatementBlock

This ParForStatementBlock is essentially identical to a ForStatementBlock, except an extended validate for checking/setting optional parfor parameters and running the loop dependency analysis.

### Nested Class Summary

Nested Classes
`static class` `ParForStatementBlock.ResultVar`

### Field Summary

Fields
`static String` `CHECK`
`static String` `DATA_PARTITIONER`
`static String` `EXEC_MODE`
`static String` `INTERAL_FN_INDEX_COL`
`static String` `INTERAL_FN_INDEX_ROW`
`static String` `OPT_LOG`
`static String` `OPT_MODE`
`static String` `PAR`
`static String` `PROFILE`
`static String` `RESULT_MERGE`
`static String` `TASK_PARTITIONER`
`static String` `TASK_SIZE`

### Constructor Summary

Constructors
Constructor and Description
`ParForStatementBlock()`

### Method Summary

All Methods Instance Methods Concrete Methods
`ParForProgramBlock.PartitionFormat` `determineDataPartitionFormat(String var)` Determines the PDataPartitioningFormat for read-only parent variables according to the access pattern of that variable within the parfor statement block.
`long` `getID()`
`List<String>` `getReadOnlyParentMatrixVars()`
`ArrayList<ParForStatementBlock.ResultVar>` `getResultVariables()`
`VariableSet` `validate(DMLProgram dmlProg, VariableSet ids, HashMap<String,ConstIdentifier> constVars, boolean conditional)`

### Methods inherited from class org.apache.sysds.parser.ForStatementBlock

`analyze, getFromHops, getFromLops, getIncrementHops, getIncrementLops, getInputstoSB, getIterPredicate, getToHops, getToLops, initializebackwardLV, initializeforwardLV, performConstantPropagation, requiresFromRecompilation, requiresIncrementRecompilation, requiresPredicateRecompilation, requiresToRecompilation, setFromHops, setFromLops, setIncrementHops, setIncrementLops, setToHops, setToLops, updatePredicateRecompilationFlags`

### Methods inherited from class org.apache.sysds.parser.StatementBlock

`addStatement, addStatementBlock, getBeginColumn, getBeginLine, getConstIn, getConstOut, getDMLProg, getEndColumn, getEndLine, getFilename, getHops, getLops, getName, getNumStatements, getOutputNamesofSB, getOutputsofSB, getSBID, getStatement, getStatements, getText, getUpdateInPlaceVars, isMergeableFunctionCallBlock, isNondeterministic, isRewritableFunctionCall, isSplitDag, mergeable, mergeFunctionCalls, mergeStatementBlocks, printBlockErrorLocation, printErrorLocation, printWarningLocation, raiseValidateError, raiseValidateError, requiresRecompilation, rewriteFunctionCallStatements, rHoistFunctionCallsFromExpressions, rHoistFunctionCallsFromExpressions, rHoistFunctionCallsFromExpressions, setBeginColumn, setBeginLine, setDMLProg, setEndColumn, setEndLine, setFilename, setHops, setLops, setNondeterministic, setParseInfo, setSplitDag, setStatementFormatType, setStatementFormatType, setStatements, setText, setUpdateInPlaceVars, toString, updateRecompilationFlag`

### Methods inherited from class org.apache.sysds.parser.LiveVariableAnalysis

`getGen, getKill, getWarn, liveIn, liveOut, setGen, setKill, setLiveIn, setLiveOut, setReadVariables, setUpdatedVariables, updateLiveVariablesOut, variablesRead, variablesUpdated`

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

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

### Methods inherited from interface org.apache.sysds.parser.ParseInfo

`ctxAndFilenameToParseInfo`

### Field Detail

#### CHECK

    public static final String CHECK

See Also:
  Constant Field Values

#### PAR

    public static final String PAR

See Also:
  Constant Field Values

#### TASK_PARTITIONER

    public static final String TASK_PARTITIONER

See Also:
  Constant Field Values

#### TASK_SIZE

    public static final String TASK_SIZE

See Also:
  Constant Field Values

#### DATA_PARTITIONER

    public static final String DATA_PARTITIONER

See Also:
  Constant Field Values

#### RESULT_MERGE

    public static final String RESULT_MERGE

See Also:
  Constant Field Values

#### EXEC_MODE

    public static final String EXEC_MODE

See Also:
  Constant Field Values

#### OPT_MODE

    public static final String OPT_MODE

See Also:
  Constant Field Values

#### OPT_LOG

    public static final String OPT_LOG

See Also:
  Constant Field Values

#### PROFILE

    public static final String PROFILE

See Also:
  Constant Field Values

#### INTERAL_FN_INDEX_ROW

    public static final String INTERAL_FN_INDEX_ROW

See Also:
  Constant Field Values

#### INTERAL_FN_INDEX_COL

    public static final String INTERAL_FN_INDEX_COL

See Also:
  Constant Field Values

### Constructor Detail

#### ParForStatementBlock

    public ParForStatementBlock()

### Method Detail

#### getID

    public long getID()

#### getResultVariables

    public ArrayList<ParForStatementBlock.ResultVar> getResultVariables()

#### validate

    public VariableSet validate(DMLProgram dmlProg,
                                VariableSet ids,
                                HashMap<String,ConstIdentifier> constVars,
                                boolean conditional)

Overrides:
  `validate` in class `ForStatementBlock`

#### getReadOnlyParentMatrixVars

    public List<String> getReadOnlyParentMatrixVars()

#### determineDataPartitionFormat

    public ParForProgramBlock.PartitionFormat determineDataPartitionFormat(String var)

Determines the PDataPartitioningFormat for read-only parent variables according to the access pattern of that variable within the parfor statement block. Row-wise or column wise partitioning is only suggested if we see pure row-wise or column-wise access patterns.

Parameters:
  `var` - variables
Returns:
  partition format