[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 );
                }

Reply via email to