You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by ar...@apache.org on 2020/05/20 23:01:01 UTC

[systemml] branch master updated: [SYSTEMDS-74]Fix partial rewrites with new lineageitem constructors.

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

arnabp20 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/systemml.git


The following commit(s) were added to refs/heads/master by this push:
     new 0dc1d16  [SYSTEMDS-74]Fix partial rewrites with new lineageitem constructors.
0dc1d16 is described below

commit 0dc1d16694a9fd7b56583b53566eab724d74a4db
Author: arnabp <ar...@tugraz.at>
AuthorDate: Thu May 21 00:51:03 2020 +0200

    [SYSTEMDS-74]Fix partial rewrites with new lineageitem constructors.
---
 .../sysds/runtime/lineage/LineageRewriteReuse.java | 22 +++++++++++-----------
 .../scripts/functions/lineage/RewriteTest3.dml     | 10 +++++-----
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/src/main/java/org/apache/sysds/runtime/lineage/LineageRewriteReuse.java b/src/main/java/org/apache/sysds/runtime/lineage/LineageRewriteReuse.java
index 8544388..7c67423 100644
--- a/src/main/java/org/apache/sysds/runtime/lineage/LineageRewriteReuse.java
+++ b/src/main/java/org/apache/sysds/runtime/lineage/LineageRewriteReuse.java
@@ -650,7 +650,7 @@ public class LineageRewriteReuse
 				//for (LineageItem input : source.getInputs()) {
 				// create tsmm lineage on top of the input of last append
 				LineageItem input1 = source.getInputs()[0];
-				LineageItem tmp = new LineageItem("toProbe", curr.getOpcode(), new LineageItem[] {input1});
+				LineageItem tmp = new LineageItem(curr.getOpcode(), new LineageItem[] {input1});
 				if (LineageCache.probe(tmp)) 
 					inCache.put("lastMatrix", LineageCache.getMatrix(tmp));
 				// look for the appended column in cache
@@ -682,7 +682,7 @@ public class LineageRewriteReuse
 					return false;
 				// create tsmm lineage on top of the input of last append
 				LineageItem input1 = source.getInputs()[0];
-				LineageItem tmp = new LineageItem("toProbe", curr.getOpcode(), new LineageItem[] {input1});
+				LineageItem tmp = new LineageItem(curr.getOpcode(), new LineageItem[] {input1});
 				if (LineageCache.probe(tmp)) 
 					inCache.put("lastMatrix", LineageCache.getMatrix(tmp));
 			}
@@ -703,7 +703,7 @@ public class LineageRewriteReuse
 			if (source.getOpcode().equalsIgnoreCase("rbind")) {
 				// create tsmm lineage on top of the input of last append
 				LineageItem input1 = source.getInputs()[0];
-				LineageItem tmp = new LineageItem("toProbe", curr.getOpcode(), new LineageItem[] {input1});
+				LineageItem tmp = new LineageItem(curr.getOpcode(), new LineageItem[] {input1});
 				if (LineageCache.probe(tmp)) 
 					inCache.put("lastMatrix", LineageCache.getMatrix(tmp));
 				// look for the appended column in cache
@@ -730,8 +730,8 @@ public class LineageRewriteReuse
 				LineageItem input = source.getInputs()[0];
 				if (input.getOpcode().equalsIgnoreCase("cbind")) {
 					LineageItem L2appin1 = input.getInputs()[0]; 
-					LineageItem tmp = new LineageItem("comb", "cbind", new LineageItem[] {L2appin1, source.getInputs()[1]});
-					LineageItem toProbe = new LineageItem("toProbe", curr.getOpcode(), new LineageItem[] {tmp});
+					LineageItem tmp = new LineageItem("cbind", new LineageItem[] {L2appin1, source.getInputs()[1]});
+					LineageItem toProbe = new LineageItem(curr.getOpcode(), new LineageItem[] {tmp});
 					if (LineageCache.probe(toProbe)) 
 						inCache.put("lastMatrix", LineageCache.getMatrix(toProbe));
 					// look for the appended column in cache
@@ -757,7 +757,7 @@ public class LineageRewriteReuse
 			if (left.getOpcode().equalsIgnoreCase("rbind")){
 				LineageItem leftSource = left.getInputs()[0]; //left inpur of rbind = X
 				// create ba+* lineage on top of the input of last append
-				LineageItem tmp = new LineageItem("toProbe", curr.getOpcode(), new LineageItem[] {leftSource, right});
+				LineageItem tmp = new LineageItem(curr.getOpcode(), new LineageItem[] {leftSource, right});
 				if (LineageCache.probe(tmp))
 					inCache.put("lastMatrix", LineageCache.getMatrix(tmp));
 				// look for the appended column in cache
@@ -782,7 +782,7 @@ public class LineageRewriteReuse
 			if (right.getOpcode().equalsIgnoreCase("cbind")) {
 				LineageItem rightSource = right.getInputs()[0]; //left inpur of rbind = X
 				// create ba+* lineage on top of the input of last append
-				LineageItem tmp = new LineageItem("toProbe", curr.getOpcode(), new LineageItem[] {left, rightSource});
+				LineageItem tmp = new LineageItem(curr.getOpcode(), new LineageItem[] {left, rightSource});
 				if (LineageCache.probe(tmp))
 					inCache.put("lastMatrix", LineageCache.getMatrix(tmp));
 				// look for the appended column in cache
@@ -813,7 +813,7 @@ public class LineageRewriteReuse
 				if (!((DataGenCPInstruction)ins).isOnesCol())
 					return false;
 				// create ba+* lineage on top of the input of last append
-				LineageItem tmp = new LineageItem("toProbe", curr.getOpcode(), new LineageItem[] {left, rightSource1});
+				LineageItem tmp = new LineageItem(curr.getOpcode(), new LineageItem[] {left, rightSource1});
 				if (LineageCache.probe(tmp))
 					inCache.put("lastMatrix", LineageCache.getMatrix(tmp));
 			}
@@ -835,7 +835,7 @@ public class LineageRewriteReuse
 				LineageItem leftSource = left.getInputs()[0]; //left inpur of rbind = X
 				LineageItem rightSource = right.getInputs()[0]; //right inpur of rbind = Y 
 				// create * lineage on top of the input of last append
-				LineageItem tmp = new LineageItem("toProbe", curr.getOpcode(), new LineageItem[] {leftSource, rightSource});
+				LineageItem tmp = new LineageItem(curr.getOpcode(), new LineageItem[] {leftSource, rightSource});
 				if (LineageCache.probe(tmp))
 					inCache.put("lastMatrix", LineageCache.getMatrix(tmp));
 				// look for the appended rows in cache
@@ -862,7 +862,7 @@ public class LineageRewriteReuse
 				LineageItem leftSource = left.getInputs()[0]; //left inpur of cbind = X
 				LineageItem rightSource = right.getInputs()[0]; //right inpur of cbind = Y 
 				// create * lineage on top of the input of last append
-				LineageItem tmp = new LineageItem("toProbe", curr.getOpcode(), new LineageItem[] {leftSource, rightSource});
+				LineageItem tmp = new LineageItem(curr.getOpcode(), new LineageItem[] {leftSource, rightSource});
 				if (LineageCache.probe(tmp))
 					inCache.put("lastMatrix", LineageCache.getMatrix(tmp));
 				// look for the appended columns in cache
@@ -892,7 +892,7 @@ public class LineageRewriteReuse
 			if (target.getOpcode().equalsIgnoreCase("cbind")) {
 				// create groupedagg lineage on top of the input of last append
 				LineageItem input1 = target.getInputs()[0];
-				LineageItem tmp = new LineageItem("toProbe", curr.getOpcode(), 
+				LineageItem tmp = new LineageItem(curr.getOpcode(), 
 						new LineageItem[] {input1, groups, weights, fn, ngroups});
 				if (LineageCache.probe(tmp)) 
 					inCache.put("lastMatrix", LineageCache.getMatrix(tmp));
diff --git a/src/test/scripts/functions/lineage/RewriteTest3.dml b/src/test/scripts/functions/lineage/RewriteTest3.dml
index 1e72529..a3da294 100644
--- a/src/test/scripts/functions/lineage/RewriteTest3.dml
+++ b/src/test/scripts/functions/lineage/RewriteTest3.dml
@@ -23,15 +23,15 @@ X = read($1);
 
 sum = 0;
 tmp = X[,1];
-tmp1 = matrix(0, rows=nrow(X), cols=1);
+tmp1 = matrix(0, rows=nrow(X), cols=0);
 R = matrix(0, 1, ncol(X));
+ones_n = matrix(1, rows=nrow(X), cols=1);
 
-for (i in 2:ncol(X)) {
-  Res1 = t(tmp1) %*% tmp1;
+for (i in 1:ncol(X)) {
   tmp = cbind(tmp, X[,i]);
-  while(FALSE) {};
-  ones_n = matrix(1, rows=nrow(X), cols=1);
   tmp1 = cbind(tmp, ones_n);
+  Res1 = t(tmp1) %*% tmp1;
+  while(FALSE) {};
   R[1,i] = sum(Res1);
   sum = sum + sum(Res1);
 }