public class Recompiler extends Object
Modifier and Type | Class and Description |
---|---|
static class |
Recompiler.ResetType |
Constructor and Description |
---|
Recompiler() |
Modifier and Type | Method and Description |
---|---|
static boolean |
checkCPCheckpoint(DataCharacteristics dc) |
static boolean |
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 Hop |
deepCopyHopsDag(Hop hops)
Deep copy of hops dags for parallel recompilation.
|
static ArrayList<Hop> |
deepCopyHopsDag(List<Hop> hops)
Deep copy of hops dags for parallel recompilation.
|
static void |
executeInMemoryFrameReblock(ExecutionContext ec,
String varin,
String varout) |
static void |
executeInMemoryMatrixReblock(ExecutionContext ec,
String varin,
String varout) |
static void |
extractDAGOutputStatistics(ArrayList<Hop> hops,
LocalVariableMap vars) |
static void |
extractDAGOutputStatistics(ArrayList<Hop> hops,
LocalVariableMap vars,
boolean overwrite) |
static void |
extractDAGOutputStatistics(Hop hop,
LocalVariableMap vars,
boolean overwrite) |
static void |
rClearLops(Hop hop)
Clearing lops for a given hops includes to (1) remove the reference
to constructed lops and (2) clear the exec type (for consistency).
|
static ArrayList<Instruction> |
recompileHopsDag(Hop hop,
ExecutionContext ec,
RecompileStatus status,
boolean inplace,
boolean replaceLit,
long tid) |
static ArrayList<Instruction> |
recompileHopsDag(Hop hop,
LocalVariableMap vars,
RecompileStatus status,
boolean inplace,
boolean replaceLit,
long tid) |
static ArrayList<Instruction> |
recompileHopsDag(StatementBlock sb,
ArrayList<Hop> hops,
ExecutionContext ec,
RecompileStatus status,
boolean inplace,
boolean replaceLit,
long tid) |
static ArrayList<Instruction> |
recompileHopsDag(StatementBlock sb,
ArrayList<Hop> hops,
LocalVariableMap vars,
RecompileStatus status,
boolean inplace,
boolean replaceLit,
long tid) |
static ArrayList<Instruction> |
recompileHopsDag2Forced(Hop hop,
long tid,
LopProperties.ExecType et) |
static ArrayList<Instruction> |
recompileHopsDag2Forced(StatementBlock sb,
ArrayList<Hop> hops,
long tid,
LopProperties.ExecType et) |
static ArrayList<Instruction> |
recompileHopsDagInstructions(Hop hop) |
static ArrayList<Instruction> |
recompileHopsDagInstructions(StatementBlock sb,
ArrayList<Hop> hops) |
static void |
recompileProgramBlockHierarchy(ArrayList<ProgramBlock> pbs,
LocalVariableMap vars,
long tid,
Recompiler.ResetType resetRecompile) |
static void |
recompileProgramBlockHierarchy2Forced(ArrayList<ProgramBlock> pbs,
long tid,
HashSet<String> fnStack,
LopProperties.ExecType et)
Method to recompile program block hierarchy to forced execution time.
|
static void |
recompileProgramBlockInstructions(ProgramBlock pb)
This method does NO full program block recompile (no stats update, no rewrites, no recursion) but
only regenerates lops and instructions.
|
static LocalVariableMap |
reconcileUpdatedCallVarsIf(LocalVariableMap oldCallVars,
LocalVariableMap callVarsIf,
LocalVariableMap callVarsElse,
StatementBlock sb) |
static RecompileStatus |
reconcileUpdatedCallVarsIf(RecompileStatus oldStatus,
RecompileStatus callStatusIf,
RecompileStatus callStatusElse,
StatementBlock sb) |
static boolean |
reconcileUpdatedCallVarsLoops(LocalVariableMap oldCallVars,
LocalVariableMap callVars,
StatementBlock sb) |
static boolean |
reconcileUpdatedCallVarsLoops(RecompileStatus oldCallStatus,
RecompileStatus callStatus,
StatementBlock sb) |
static void |
reinitRecompiler()
Re-initializes the recompiler according to the current optimizer flags.
|
static void |
removeUpdatedScalars(LocalVariableMap callVars,
StatementBlock sb)
Remove any scalar variables from the variable map if the variable
is updated in this block.
|
static boolean |
requiresRecompilation(ArrayList<Hop> hops) |
static boolean |
requiresRecompilation(Hop hop) |
static int |
rGetMaxParallelism(Hop hop) |
static int |
rGetMaxParallelism(List<Hop> hops) |
static void |
rReplaceLiterals(Hop hop,
ExecutionContext ec,
boolean scalarsOnly)
public interface to package local literal replacement
|
static void |
rReplaceLiterals(Hop hop,
LocalVariableMap vars,
boolean scalarsOnly) |
static void |
rSetExecType(Hop hop,
LopProperties.ExecType etype) |
static void |
rSetMaxParallelism(Hop hop,
int k) |
static void |
rSetMaxParallelism(List<Hop> hops,
int k) |
static void |
rUpdateFunctionNames(Hop hop,
long pid) |
static void |
rUpdateStatistics(Hop hop,
LocalVariableMap vars) |
static void |
updateFunctionNames(ArrayList<Hop> hops,
long pid) |
public static void reinitRecompiler()
public static ArrayList<Instruction> recompileHopsDag(StatementBlock sb, ArrayList<Hop> hops, ExecutionContext ec, RecompileStatus status, boolean inplace, boolean replaceLit, long tid)
public static ArrayList<Instruction> recompileHopsDag(StatementBlock sb, ArrayList<Hop> hops, LocalVariableMap vars, RecompileStatus status, boolean inplace, boolean replaceLit, long tid)
public static ArrayList<Instruction> recompileHopsDag(Hop hop, ExecutionContext ec, RecompileStatus status, boolean inplace, boolean replaceLit, long tid)
public static ArrayList<Instruction> recompileHopsDag(Hop hop, LocalVariableMap vars, RecompileStatus status, boolean inplace, boolean replaceLit, long tid)
public static ArrayList<Instruction> recompileHopsDag2Forced(StatementBlock sb, ArrayList<Hop> hops, long tid, LopProperties.ExecType et)
public static ArrayList<Instruction> recompileHopsDag2Forced(Hop hop, long tid, LopProperties.ExecType et)
public static ArrayList<Instruction> recompileHopsDagInstructions(StatementBlock sb, ArrayList<Hop> hops)
public static ArrayList<Instruction> recompileHopsDagInstructions(Hop hop)
public static void recompileProgramBlockHierarchy(ArrayList<ProgramBlock> pbs, LocalVariableMap vars, long tid, Recompiler.ResetType resetRecompile)
public static void recompileProgramBlockHierarchy2Forced(ArrayList<ProgramBlock> pbs, long tid, HashSet<String> fnStack, LopProperties.ExecType et)
pbs
- list of program blockstid
- thread idfnStack
- function stacket
- execution typepublic static void recompileProgramBlockInstructions(ProgramBlock pb) throws IOException
pb
- program blockIOException
- if IOException occurspublic static boolean requiresRecompilation(Hop hop)
public static ArrayList<Hop> deepCopyHopsDag(List<Hop> hops)
hops
- list of high-level operatorspublic static Hop deepCopyHopsDag(Hop hops)
hops
- high-level operatorpublic static void rUpdateFunctionNames(Hop hop, long pid)
public static boolean reconcileUpdatedCallVarsLoops(LocalVariableMap oldCallVars, LocalVariableMap callVars, StatementBlock sb)
public static boolean reconcileUpdatedCallVarsLoops(RecompileStatus oldCallStatus, RecompileStatus callStatus, StatementBlock sb)
public static LocalVariableMap reconcileUpdatedCallVarsIf(LocalVariableMap oldCallVars, LocalVariableMap callVarsIf, LocalVariableMap callVarsElse, StatementBlock sb)
public static RecompileStatus reconcileUpdatedCallVarsIf(RecompileStatus oldStatus, RecompileStatus callStatusIf, RecompileStatus callStatusElse, StatementBlock sb)
public static void removeUpdatedScalars(LocalVariableMap callVars, StatementBlock sb)
callVars
- Map of variables eligible for propagation.sb
- DML statement block.public static void extractDAGOutputStatistics(ArrayList<Hop> hops, LocalVariableMap vars)
public static void extractDAGOutputStatistics(ArrayList<Hop> hops, LocalVariableMap vars, boolean overwrite)
public static void extractDAGOutputStatistics(Hop hop, LocalVariableMap vars, boolean overwrite)
public static void rClearLops(Hop hop)
hop
- high-level operatorpublic static void rUpdateStatistics(Hop hop, LocalVariableMap vars)
public static void rReplaceLiterals(Hop hop, ExecutionContext ec, boolean scalarsOnly)
hop
- high-level operatorec
- Execution contextscalarsOnly
- if true, replace only scalar variables but no matrix operations;
if false, apply full literal replacementpublic static void rReplaceLiterals(Hop hop, LocalVariableMap vars, boolean scalarsOnly)
public static void rSetExecType(Hop hop, LopProperties.ExecType etype)
public static int rGetMaxParallelism(Hop hop)
public static void rSetMaxParallelism(Hop hop, int k)
public static boolean checkCPReblock(ExecutionContext ec, String varin)
ec
- execution contextvarin
- variablepublic static boolean checkCPCheckpoint(DataCharacteristics dc)
public static void executeInMemoryMatrixReblock(ExecutionContext ec, String varin, String varout)
public static void executeInMemoryFrameReblock(ExecutionContext ec, String varin, String varout)
Copyright © 2020 The Apache Software Foundation. All rights reserved.