This is an automated email from the ASF dual-hosted git repository.

sebwrede pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/systemds.git


The following commit(s) were added to refs/heads/main by this push:
     new 17b7a368ef [MINOR] Add Forced ExecType for FED DataOp And Add FedOut 
to Explain
17b7a368ef is described below

commit 17b7a368ef25c93e2b1ac69c57b4389997a78dd1
Author: sebwrede <swr...@know-center.at>
AuthorDate: Mon May 16 11:01:46 2022 +0200

    [MINOR] Add Forced ExecType for FED DataOp And Add FedOut to Explain
    
    Closes #1614.
---
 src/main/java/org/apache/sysds/hops/DataOp.java      | 2 ++
 src/main/java/org/apache/sysds/hops/Hop.java         | 4 ++++
 src/main/java/org/apache/sysds/hops/cost/HopRel.java | 5 ++++-
 src/main/java/org/apache/sysds/utils/Explain.java    | 4 ++++
 4 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sysds/hops/DataOp.java 
b/src/main/java/org/apache/sysds/hops/DataOp.java
index 6035d59f87..42c51e452b 100644
--- a/src/main/java/org/apache/sysds/hops/DataOp.java
+++ b/src/main/java/org/apache/sysds/hops/DataOp.java
@@ -496,6 +496,8 @@ public class DataOp extends Hop {
                        }
                        
                        _etype = letype;
+                       if ( _etypeForced == ExecType.FED )
+                               _etype = _etypeForced;
                }
 
                return _etype;
diff --git a/src/main/java/org/apache/sysds/hops/Hop.java 
b/src/main/java/org/apache/sysds/hops/Hop.java
index e1e4fcc8d4..7bdb5a424e 100644
--- a/src/main/java/org/apache/sysds/hops/Hop.java
+++ b/src/main/java/org/apache/sysds/hops/Hop.java
@@ -975,6 +975,10 @@ public abstract class Hop implements ParseInfo {
                return _privacyConstraint;
        }
 
+       public FederatedOutput getFederatedOutput(){
+               return _federatedOutput;
+       }
+
        public boolean hasFederatedOutput(){
                return _federatedOutput == FederatedOutput.FOUT;
        }
diff --git a/src/main/java/org/apache/sysds/hops/cost/HopRel.java 
b/src/main/java/org/apache/sysds/hops/cost/HopRel.java
index 70785950ca..427fe1f209 100644
--- a/src/main/java/org/apache/sysds/hops/cost/HopRel.java
+++ b/src/main/java/org/apache/sysds/hops/cost/HopRel.java
@@ -20,11 +20,13 @@
 package org.apache.sysds.hops.cost;
 
 import org.apache.sysds.api.DMLException;
+import org.apache.sysds.common.Types;
 import org.apache.sysds.common.Types.ExecType;
 import org.apache.sysds.hops.Hop;
 import org.apache.sysds.hops.fedplanner.FTypes;
 import org.apache.sysds.hops.fedplanner.FTypes.FType;
 import org.apache.sysds.hops.fedplanner.MemoTable;
+import org.apache.sysds.hops.rewrite.HopRewriteUtils;
 import org.apache.sysds.runtime.instructions.fed.FEDInstruction;
 import 
org.apache.sysds.runtime.instructions.fed.FEDInstruction.FederatedOutput;
 
@@ -109,7 +111,8 @@ public class HopRel {
        }
 
        private void setExecType(){
-               if ( 
inputDependency.stream().anyMatch(HopRel::hasFederatedOutput) )
+               if ( 
inputDependency.stream().anyMatch(HopRel::hasFederatedOutput)
+                       || HopRewriteUtils.isData(hopRef, 
Types.OpOpData.FEDERATED))
                        execType = ExecType.FED;
        }
 
diff --git a/src/main/java/org/apache/sysds/utils/Explain.java 
b/src/main/java/org/apache/sysds/utils/Explain.java
index c8e5902511..589f23a845 100644
--- a/src/main/java/org/apache/sysds/utils/Explain.java
+++ b/src/main/java/org/apache/sysds/utils/Explain.java
@@ -69,6 +69,7 @@ import 
org.apache.sysds.runtime.instructions.spark.ReblockSPInstruction;
 import org.apache.sysds.runtime.instructions.spark.SPInstruction;
 import org.apache.sysds.runtime.lineage.LineageItem;
 import org.apache.sysds.runtime.lineage.LineageItemUtils;
+import 
org.apache.sysds.runtime.instructions.fed.FEDInstruction.FederatedOutput;
 
 public class Explain
 {
@@ -612,6 +613,9 @@ public class Explain
                if (hop.getExecType() != null)
                        sb.append(", " + hop.getExecType());
 
+               if ( hop.getFederatedOutput() != FederatedOutput.NONE )
+                       sb.append(" 
").append(hop.getFederatedOutput()).append(" ");
+
                if ( MEMO_TABLE != null && MEMO_TABLE.containsHop(hop) ){
                        List<String> fedAlts = 
MEMO_TABLE.getFedOutAlternatives(hop);
                        if ( fedAlts != null ){

Reply via email to