You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemds.apache.org by se...@apache.org on 2022/05/16 10:16:48 UTC

[systemds] branch main updated: [MINOR] Add Forced ExecType for FED DataOp And Add FedOut to Explain

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 <sw...@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 ){