Package org.apache.sysds.hops.rewrite
Class RewriteInjectSparkLoopCheckpointing
- java.lang.Object
-
- org.apache.sysds.hops.rewrite.StatementBlockRewriteRule
-
- org.apache.sysds.hops.rewrite.RewriteInjectSparkLoopCheckpointing
-
public class RewriteInjectSparkLoopCheckpointing extends StatementBlockRewriteRule
Rule: Insert checkpointing operations for caching purposes. Currently, we follow a heuristic of checkpointing (1) all variables used read-only in loops, and (2) intermediates used by multiple consumers. TODO (2) implement injection for multiple consumers (local and global).
-
-
Constructor Summary
Constructors Constructor Description RewriteInjectSparkLoopCheckpointing(boolean checkParForContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
createsSplitDag()
Indicates if the rewrite potentially splits dags, which is used for phase ordering of rewrites.List<StatementBlock>
rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)
Handle an arbitrary statement block.List<StatementBlock>
rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)
Handle a list of statement blocks.-
Methods inherited from class org.apache.sysds.hops.rewrite.StatementBlockRewriteRule
createCutVarName
-
-
-
-
Method Detail
-
createsSplitDag
public boolean createsSplitDag()
Description copied from class:StatementBlockRewriteRule
Indicates if the rewrite potentially splits dags, which is used for phase ordering of rewrites.- Specified by:
createsSplitDag
in classStatementBlockRewriteRule
- Returns:
- true if dag splits are possible.
-
rewriteStatementBlock
public List<StatementBlock> rewriteStatementBlock(StatementBlock sb, ProgramRewriteStatus status)
Description copied from class:StatementBlockRewriteRule
Handle an arbitrary statement block. Specific type constraints have to be ensured within the individual rewrites. If a rewrite does not apply to individual blocks, it should simply return the input block.- Specified by:
rewriteStatementBlock
in classStatementBlockRewriteRule
- Parameters:
sb
- statement blockstatus
- program rewrite status- Returns:
- list of statement blocks
-
rewriteStatementBlocks
public List<StatementBlock> rewriteStatementBlocks(List<StatementBlock> sbs, ProgramRewriteStatus sate)
Description copied from class:StatementBlockRewriteRule
Handle a list of statement blocks. Specific type constraints have to be ensured within the individual rewrites. If a rewrite does not require sequence access, it should simply return the input list of statement blocks.- Specified by:
rewriteStatementBlocks
in classStatementBlockRewriteRule
- Parameters:
sbs
- list of statement blockssate
- program rewrite status- Returns:
- list of statement blocks
-
-