[SYSTEMML-2293] Fix missing recompile in constrained parfor optimizer This patch fixes a missing recompilation flag in the constrained parfor optimizer when forcing a certain execution mode. In many cases this was hidden by subsequent compilation for the parallelism of individual operations but this is not guaranteed (i.e., a statement block might only include single-threaded operators).
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/d74bda4c Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/d74bda4c Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/d74bda4c Branch: refs/heads/master Commit: d74bda4c3474cff0296f792a7c136859d38d8348 Parents: 18d98b6 Author: Matthias Boehm <[email protected]> Authored: Mon Apr 30 18:11:00 2018 -0700 Committer: Matthias Boehm <[email protected]> Committed: Mon Apr 30 19:47:43 2018 -0700 ---------------------------------------------------------------------- .../runtime/controlprogram/parfor/opt/OptimizerConstrained.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/d74bda4c/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java index deedf29..f523cdc 100644 --- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java +++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java @@ -139,7 +139,7 @@ public class OptimizerConstrained extends OptimizerRuleBased if( flagRecompMR ){ //rewrite 5: set operations exec type rewriteSetOperationsExecType( pn, flagRecompMR ); - M1 = _cost.getEstimate(TestMeasure.MEMORY_USAGE, pn); //reestimate + M1 = _cost.getEstimate(TestMeasure.MEMORY_USAGE, pn); //reestimate } // rewrite 6: data colocation @@ -259,7 +259,6 @@ public class OptimizerConstrained extends OptimizerRuleBased .getAbstractPlanMapping().getMappedProg(n.getID())[1]; PExecMode mode = PExecMode.LOCAL; - if (n.getExecType()==ExecType.MR) { mode = PExecMode.REMOTE_MR; } @@ -267,6 +266,8 @@ public class OptimizerConstrained extends OptimizerRuleBased mode = PExecMode.REMOTE_SPARK; } + ret = ((mode == PExecMode.REMOTE_MR || + mode == PExecMode.REMOTE_SPARK) && !n.isCPOnly() ); pfpb.setExecMode( mode ); LOG.debug(getOptMode()+" OPT: forced 'set execution strategy' - result="+mode ); }
