You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2017/08/16 18:01:05 UTC
[2/3] systemml git commit: [SYSTEMML-1842] Fix lost compression flag
on HOP DAG recompile/codegen
[SYSTEMML-1842] Fix lost compression flag on HOP DAG recompile/codegen
This patch fixes an issue of dynamic recompilation, which lost the
compression flag - set by the respective rewrite - during HOP DAG
recompilation (w/ DAG deep copy) or code generation (w/ runtime
integration).
Furthermore, this patch also hardens the compression and codegen
compression tests to explicitly check for executed compress
instructions.
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/e84e07a8
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/e84e07a8
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/e84e07a8
Branch: refs/heads/master
Commit: e84e07a81c408f0061b0576ca911d4fce12cb8d3
Parents: 86edac1
Author: Matthias Boehm <mb...@gmail.com>
Authored: Tue Aug 15 18:17:38 2017 -0700
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Tue Aug 15 18:17:38 2017 -0700
----------------------------------------------------------------------
src/main/java/org/apache/sysml/hops/Hop.java | 1 +
.../runtime/codegen/SpoofOuterProduct.java | 95 ++++++++++----------
.../codegen/CompressedCellwiseTest.java | 2 +
.../codegen/CompressedMultiAggregateTest.java | 2 +
.../codegen/CompressedOuterProductTest.java | 2 +
.../codegen/CompressedRowAggregateTest.java | 2 +
.../functions/compress/CompressedL2SVM.java | 4 +
.../functions/compress/CompressedLinregCG.java | 4 +
8 files changed, 64 insertions(+), 48 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/systemml/blob/e84e07a8/src/main/java/org/apache/sysml/hops/Hop.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/Hop.java b/src/main/java/org/apache/sysml/hops/Hop.java
index be4c7e4..bfbdbaf 100644
--- a/src/main/java/org/apache/sysml/hops/Hop.java
+++ b/src/main/java/org/apache/sysml/hops/Hop.java
@@ -1787,6 +1787,7 @@ public abstract class Hop
_requiresRecompile = that._requiresRecompile;
_requiresReblock = that._requiresReblock;
_requiresCheckpoint = that._requiresCheckpoint;
+ _requiresCompression = that._requiresCompression;
_outputEmptyBlocks = that._outputEmptyBlocks;
_beginLine = that._beginLine;
http://git-wip-us.apache.org/repos/asf/systemml/blob/e84e07a8/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java b/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java
index c49201a..442755d 100644
--- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java
+++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java
@@ -47,7 +47,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator
LEFT_OUTER_PRODUCT,
RIGHT_OUTER_PRODUCT,
CELLWISE_OUTER_PRODUCT, // (e.g., X*log(sigmoid(-(U%*%t(V))))) )
- AGG_OUTER_PRODUCT // (e.g.,sum(X*log(U%*%t(V)+eps))) )
+ AGG_OUTER_PRODUCT // (e.g.,sum(X*log(U%*%t(V)+eps))) )
}
protected OutProdType _outerProductType;
@@ -86,7 +86,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator
//core sequential execute
final int m = inputs.get(0).getNumRows();
- final int n = inputs.get(0).getNumColumns();
+ final int n = inputs.get(0).getNumColumns();
final int k = inputs.get(1).getNumColumns(); // rank
MatrixBlock a = inputs.get(0);
@@ -103,7 +103,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator
}
@Override
- public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, int numThreads)
+ public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, int numThreads)
throws DMLRuntimeException
{
//sanity check
@@ -119,14 +119,14 @@ public abstract class SpoofOuterProduct extends SpoofOperator
//core sequential execute
final int m = inputs.get(0).getNumRows();
- final int n = inputs.get(0).getNumColumns();
+ final int n = inputs.get(0).getNumColumns();
final int k = inputs.get(1).getNumColumns(); // rank
double sum = 0;
try
{
ExecutorService pool = Executors.newFixedThreadPool(k);
- ArrayList<ParOuterProdAggTask> tasks = new ArrayList<ParOuterProdAggTask>();
+ ArrayList<ParOuterProdAggTask> tasks = new ArrayList<ParOuterProdAggTask>();
//create tasks (for wdivmm-left, parallelization over columns;
//for wdivmm-right, parallelization over rows; both ensure disjoint results)
int numThreads2 = UtilFunctions.roundToNext(Math.min(8*k,m/32), k);
@@ -144,10 +144,10 @@ public abstract class SpoofOuterProduct extends SpoofOperator
throw new DMLRuntimeException(e);
}
- return new DoubleObject(sum);
+ return new DoubleObject(sum);
}
- public void execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out)
+ public void execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out)
throws DMLRuntimeException
{
//sanity check
@@ -169,7 +169,6 @@ public abstract class SpoofOuterProduct extends SpoofOperator
}
else {
//if left outerproduct gives a value of k*n instead of n*k, change it back to n*k and then transpose the output
- //if(_outerProductType == OutProdType.LEFT_OUTER_PRODUCT && out.getNumRows() == inputs.get(2).getNumColumns() && out.getNumColumns() == inputs.get(2).getNumRows())
if(_outerProductType == OutProdType.LEFT_OUTER_PRODUCT )
out.reset(inputs.get(0).getNumColumns(), inputs.get(1).getNumColumns(), false); // n*k
else if(_outerProductType == OutProdType.RIGHT_OUTER_PRODUCT )
@@ -188,16 +187,17 @@ public abstract class SpoofOuterProduct extends SpoofOperator
//core sequential execute
final int m = inputs.get(0).getNumRows();
- final int n = inputs.get(0).getNumColumns();
+ final int n = inputs.get(0).getNumColumns();
final int k = inputs.get(1).getNumColumns(); // rank
MatrixBlock a = inputs.get(0);
switch(_outerProductType) {
- case LEFT_OUTER_PRODUCT:
+ case LEFT_OUTER_PRODUCT:
case RIGHT_OUTER_PRODUCT:
if( a instanceof CompressedMatrixBlock )
- executeCompressed((CompressedMatrixBlock)a, ab[0], ab[1], b, scalars, out.getDenseBlock(), m, n, k, _outerProductType, 0, m, 0, n);
+ executeCompressed((CompressedMatrixBlock)a, ab[0], ab[1], b, scalars, out.getDenseBlock(),
+ m, n, k, _outerProductType, 0, m, 0, ((CompressedMatrixBlock)a).getNumColGroups());
else if( !a.isInSparseFormat() )
executeDense(a.getDenseBlock(), ab[0], ab[1], b, scalars, out.getDenseBlock(), m, n, k, _outerProductType, 0, m, 0, n);
else
@@ -251,7 +251,6 @@ public abstract class SpoofOuterProduct extends SpoofOperator
else
{
//if left outerproduct gives a value of k*n instead of n*k, change it back to n*k and then transpose the output
- //if(_outerProductType == OutProdType.LEFT_OUTER_PRODUCT && out.getNumRows() == inputs.get(2).getNumColumns() && out.getNumColumns() == inputs.get(2).getNumRows())
if( _outerProductType == OutProdType.LEFT_OUTER_PRODUCT )
out.reset(inputs.get(0).getNumColumns(),inputs.get(1).getNumColumns(), false); // n*k
else if( _outerProductType == OutProdType.RIGHT_OUTER_PRODUCT )
@@ -266,7 +265,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator
//core sequential execute
final int m = inputs.get(0).getNumRows();
- final int n = inputs.get(0).getNumColumns();
+ final int n = inputs.get(0).getNumColumns();
final int k = inputs.get(1).getNumColumns(); // rank
MatrixBlock a = inputs.get(0);
@@ -274,7 +273,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator
try
{
ExecutorService pool = Executors.newFixedThreadPool(numThreads);
- ArrayList<ParExecTask> tasks = new ArrayList<ParExecTask>();
+ ArrayList<ParExecTask> tasks = new ArrayList<ParExecTask>();
//create tasks (for wdivmm-left, parallelization over columns;
//for wdivmm-right, parallelization over rows; both ensure disjoint results)
@@ -310,7 +309,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator
}
//post-processing
- if( a instanceof CompressedMatrixBlock ) {
+ if( a instanceof CompressedMatrixBlock ) {
if( out.isInSparseFormat() && _outerProductType == OutProdType.CELLWISE_OUTER_PRODUCT )
out.sortSparseRows();
else if( _outerProductType == OutProdType.LEFT_OUTER_PRODUCT )
@@ -319,8 +318,8 @@ public abstract class SpoofOuterProduct extends SpoofOperator
out.examSparsity();
}
- private void executeDense(double[] a, double[] u, double[] v, double[][] b, double[] scalars,
- double[] c, int m, int n, int k, OutProdType type, int rl, int ru, int cl, int cu )
+ private void executeDense(double[] a, double[] u, double[] v, double[][] b, double[] scalars,
+ double[] c, int m, int n, int k, OutProdType type, int rl, int ru, int cl, int cu )
{
//approach: iterate over non-zeros of w, selective mm computation
//cache-conscious blocking: due to blocksize constraint (default 1000),
@@ -330,10 +329,10 @@ public abstract class SpoofOuterProduct extends SpoofOperator
int cix = 0;
//blocked execution
for( int bi = rl; bi < ru; bi+=blocksizeIJ )
- for( int bj = cl, bimin = Math.min(ru, bi+blocksizeIJ); bj < cu; bj+=blocksizeIJ )
+ for( int bj = cl, bimin = Math.min(ru, bi+blocksizeIJ); bj < cu; bj+=blocksizeIJ )
{
int bjmin = Math.min(cu, bj+blocksizeIJ);
-
+
//core computation
for( int i=bi, ix=bi*n, uix=bi*k; i<bimin; i++, ix+=n, uix+=k )
for( int j=bj, vix=bj*k; j<bjmin; j++, vix+=k)
@@ -344,34 +343,34 @@ public abstract class SpoofOuterProduct extends SpoofOperator
}
}
- private void executeCellwiseDense(double[] a, double[] u, double[] v, double[][] b, double[] scalars,
- double[] c, int m, int n, int k, OutProdType type, int rl, int ru, int cl, int cu )
+ private void executeCellwiseDense(double[] a, double[] u, double[] v, double[][] b, double[] scalars,
+ double[] c, int m, int n, int k, OutProdType type, int rl, int ru, int cl, int cu )
{
//approach: iterate over non-zeros of w, selective mm computation
//cache-conscious blocking: due to blocksize constraint (default 1000),
- //a blocksize of 16 allows to fit blocks of UV into L2 cache (256KB)
+ //a blocksize of 16 allows to fit blocks of UV into L2 cache (256KB)
- final int blocksizeIJ = 16; //u/v block (max at typical L2 size)
+ final int blocksizeIJ = 16; //u/v block (max at typical L2 size)
//blocked execution
for( int bi = rl; bi < ru; bi+=blocksizeIJ )
- for( int bj = cl, bimin = Math.min(ru, bi+blocksizeIJ); bj < cu; bj+=blocksizeIJ )
+ for( int bj = cl, bimin = Math.min(ru, bi+blocksizeIJ); bj < cu; bj+=blocksizeIJ )
{
int bjmin = Math.min(cu, bj+blocksizeIJ);
-
+
//core computation
for( int i=bi, ix=bi*n, uix=bi*k; i<bimin; i++, ix+=n, uix+=k )
for( int j=bj, vix=bj*k; j<bjmin; j++, vix+=k)
if( a[ix+j] != 0 ) {
//int cix = (type == OutProdType.LEFT_OUTER_PRODUCT) ? vix : uix;
if(type == OutProdType.CELLWISE_OUTER_PRODUCT)
- c[ix+j] = genexecCellwise( a[ix+j], u, uix, v, vix, b, scalars, m, n, k, i, j );
+ c[ix+j] = genexecCellwise( a[ix+j], u, uix, v, vix, b, scalars, m, n, k, i, j );
else
- c[0] += genexecCellwise( a[ix+j], u, uix, v, vix, b, scalars, m, n, k, i, j);
+ c[0] += genexecCellwise( a[ix+j], u, uix, v, vix, b, scalars, m, n, k, i, j);
}
}
}
- private void executeSparse(SparseBlock sblock, double[] u, double[] v, double[][] b, double[] scalars,
+ private void executeSparse(SparseBlock sblock, double[] u, double[] v, double[][] b, double[] scalars,
double[] c, int m, int n, int k, long nnz, OutProdType type, int rl, int ru, int cl, int cu)
{
boolean left = (_outerProductType== OutProdType.LEFT_OUTER_PRODUCT);
@@ -394,7 +393,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator
}
//blocked execution over column blocks
- for( int bj = cl; bj < cu; bj+=blocksizeJ )
+ for( int bj = cl; bj < cu; bj+=blocksizeJ )
{
int bjmin = Math.min(cu, bj+blocksizeJ);
//core wdivmm block matrix mult
@@ -404,11 +403,11 @@ public abstract class SpoofOuterProduct extends SpoofOperator
int wpos = sblock.pos(i);
int wlen = sblock.size(i);
int[] wix = sblock.indexes(i);
- double[] wval = sblock.values(i);
-
+ double[] wval = sblock.values(i);
+
int index = wpos + curk[i-bi];
for( ; index<wpos+wlen && wix[index]<bjmin; index++ ) {
- genexecDense(wval[index], u, uix, v, wix[index]*k, b, scalars, c,
+ genexecDense(wval[index], u, uix, v, wix[index]*k, b, scalars, c,
(left ? wix[index]*k : uix), m, n, k, i, wix[index]);
}
curk[i-bi] = index - wpos;
@@ -420,8 +419,8 @@ public abstract class SpoofOuterProduct extends SpoofOperator
private void executeCellwiseSparse(SparseBlock sblock, double[] u, double[] v, double[][] b, double[] scalars,
MatrixBlock out, int m, int n, int k, long nnz, OutProdType type, int rl, int ru, int cl, int cu )
{
- final int blocksizeIJ = (int) (8L*m*n/nnz);
- int[] curk = new int[Math.min(blocksizeIJ, ru-rl)];
+ final int blocksizeIJ = (int) (8L*m*n/nnz);
+ int[] curk = new int[Math.min(blocksizeIJ, ru-rl)];
if( !out.isInSparseFormat() ) //DENSE
{
@@ -442,7 +441,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator
int index = wpos + curk[i-bi];
for( ; index<wpos+wlen && wix[index]<bjmin; index++ ) {
if(type == OutProdType.CELLWISE_OUTER_PRODUCT)
- c[wix[index]] = genexecCellwise( wval[index], u, uix, v, wix[index]*k, b, scalars, m, n, k, i, wix[index] );
+ c[wix[index]] = genexecCellwise( wval[index], u, uix, v, wix[index]*k, b, scalars, m, n, k, i, wix[index] );
else
c[0] += genexecCellwise( wval[index], u, uix, v, wix[index]*k, b, scalars, m, n, k, i, wix[index]);
}
@@ -469,8 +468,8 @@ public abstract class SpoofOuterProduct extends SpoofOperator
double[] wval = sblock.values(i);
int index = wpos + curk[i-bi];
for( ; index<wpos+wlen && wix[index]<bjmin; index++ ) {
- c.append(i, wix[index], genexecCellwise( wval[index], u, uix, v,
- wix[index]*k, b, scalars, m, n, k, i, wix[index] ));
+ c.append(i, wix[index], genexecCellwise( wval[index], u, uix, v,
+ wix[index]*k, b, scalars, m, n, k, i, wix[index] ));
}
curk[i-bi] = index - wpos;
}
@@ -484,19 +483,19 @@ public abstract class SpoofOuterProduct extends SpoofOperator
{
boolean left = (_outerProductType==OutProdType.LEFT_OUTER_PRODUCT);
- Iterator<IJV> iter = !left ? a.getIterator(rl, ru, false) :
+ Iterator<IJV> iter = !left ? a.getIterator(rl, ru, false) :
a.getIterator(rl, ru, cl, cu, false); //cl/cu -> colgroups
while( iter.hasNext() ) {
IJV cell = iter.next();
int uix = cell.getI() * k;
int vix = cell.getJ() * k;
- genexecDense(cell.getV(), u, uix, v, vix, b, scalars, c,
+ genexecDense(cell.getV(), u, uix, v, vix, b, scalars, c,
left ? vix : uix, m, n, k, cell.getI(), cell.getJ());
}
}
- private void executeCellwiseCompressed(CompressedMatrixBlock a, double[] u, double[] v, double[][] b, double[] scalars,
- MatrixBlock out, int m, int n, int k, OutProdType type, int rl, int ru, int cl, int cu )
+ private void executeCellwiseCompressed(CompressedMatrixBlock a, double[] u, double[] v, double[][] b, double[] scalars,
+ MatrixBlock out, int m, int n, int k, OutProdType type, int rl, int ru, int cl, int cu )
{
double[] c = out.getDenseBlock();
SparseBlock csblock = out.getSparseBlock();
@@ -509,11 +508,11 @@ public abstract class SpoofOuterProduct extends SpoofOperator
if( type == OutProdType.CELLWISE_OUTER_PRODUCT ) {
if( out.isInSparseFormat() ) {
csblock.allocate(cell.getI());
- csblock.append(cell.getI(), cell.getJ(),
+ csblock.append(cell.getI(), cell.getJ(),
genexecCellwise(cell.getV(), u, uix, v, vix, b, scalars, m, n, k, cell.getI(), cell.getJ()));
}
else {
- c[cell.getI()*n+cell.getJ()] =
+ c[cell.getI()*n+cell.getJ()] =
genexecCellwise(cell.getV(), u, uix, v, vix, b, scalars, m, n, k, cell.getI(), cell.getJ());
}
}
@@ -523,12 +522,12 @@ public abstract class SpoofOuterProduct extends SpoofOperator
}
}
- protected abstract void genexecDense( double a, double[] u, int ui, double[] v, int vi, double[][] b,
+ protected abstract void genexecDense( double a, double[] u, int ui, double[] v, int vi, double[][] b,
double[] scalars, double[] c, int ci, int m, int n, int k, int rowIndex, int colIndex);
- protected abstract double genexecCellwise( double a, double[] u, int ui, double[] v, int vi, double[][] b,
+ protected abstract double genexecCellwise( double a, double[] u, int ui, double[] v, int vi, double[][] b,
double[] scalars, int m, int n, int k, int rowIndex, int colIndex);
-
+
private class ParExecTask implements Callable<Long>
{
private final MatrixBlock _a;
@@ -567,7 +566,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator
public Long call() throws DMLRuntimeException {
switch(_type)
{
- case LEFT_OUTER_PRODUCT:
+ case LEFT_OUTER_PRODUCT:
case RIGHT_OUTER_PRODUCT:
if( _a instanceof CompressedMatrixBlock )
executeCompressed((CompressedMatrixBlock)_a, _u, _v, _b, _scalars, _c.getDenseBlock(), _rlen, _clen, _k, _type, _rl, _ru, _cl, _cu);
@@ -583,7 +582,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator
executeCellwiseDense(_a.getDenseBlock(), _u, _v, _b, _scalars, _c.getDenseBlock(), _rlen, _clen, _k, _type, _rl, _ru, _cl, _cu);
else
executeCellwiseSparse(_a.getSparseBlock(), _u, _v, _b, _scalars, _c, _rlen, _clen, _k, _a.getNonZeros(), _type, _rl, _ru, _cl, _cu);
- break;
+ break;
case AGG_OUTER_PRODUCT:
throw new DMLRuntimeException("Wrong codepath for aggregate outer product.");
}
http://git-wip-us.apache.org/repos/asf/systemml/blob/e84e07a8/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedCellwiseTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedCellwiseTest.java b/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedCellwiseTest.java
index 417905d..f84ec75 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedCellwiseTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedCellwiseTest.java
@@ -308,6 +308,8 @@ public class CompressedCellwiseTest extends AutomatedTestBase
TestUtils.compareMatrices(dmlfile, rfile, eps, "Stat-DML", "Stat-R");
Assert.assertTrue(heavyHittersContainsSubString("spoofCell")
|| heavyHittersContainsSubString("sp_spoofCell"));
+ Assert.assertTrue(heavyHittersContainsSubString("compress")
+ || heavyHittersContainsSubString("sp_compress"));
}
finally {
rtplatform = platformOld;
http://git-wip-us.apache.org/repos/asf/systemml/blob/e84e07a8/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedMultiAggregateTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedMultiAggregateTest.java b/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedMultiAggregateTest.java
index 4a16694..82f6178 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedMultiAggregateTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedMultiAggregateTest.java
@@ -308,6 +308,8 @@ public class CompressedMultiAggregateTest extends AutomatedTestBase
TestUtils.compareMatrices(dmlfile, rfile, eps, "Stat-DML", "Stat-R");
Assert.assertTrue(heavyHittersContainsSubString("spoofMA")
|| heavyHittersContainsSubString("sp_spoofMA"));
+ Assert.assertTrue(heavyHittersContainsSubString("compress")
+ || heavyHittersContainsSubString("sp_compress"));
}
finally {
rtplatform = platformOld;
http://git-wip-us.apache.org/repos/asf/systemml/blob/e84e07a8/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedOuterProductTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedOuterProductTest.java b/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedOuterProductTest.java
index 1f641f9..a71294a 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedOuterProductTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedOuterProductTest.java
@@ -243,6 +243,8 @@ public class CompressedOuterProductTest extends AutomatedTestBase
TestUtils.compareMatrices(dmlfile, rfile, eps, "Stat-DML", "Stat-R");
Assert.assertTrue(heavyHittersContainsSubString("spoofOP", 4)
|| heavyHittersContainsSubString("sp_spoofOP", 4));
+ Assert.assertTrue(heavyHittersContainsSubString("compress")
+ || heavyHittersContainsSubString("sp_compress"));
}
finally {
rtplatform = platformOld;
http://git-wip-us.apache.org/repos/asf/systemml/blob/e84e07a8/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedRowAggregateTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedRowAggregateTest.java b/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedRowAggregateTest.java
index 27f1b7c..330dd47 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedRowAggregateTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/codegen/CompressedRowAggregateTest.java
@@ -243,6 +243,8 @@ public class CompressedRowAggregateTest extends AutomatedTestBase
TestUtils.compareMatrices(dmlfile, rfile, eps, "Stat-DML", "Stat-R");
Assert.assertTrue(heavyHittersContainsSubString("spoofRA", 2)
|| heavyHittersContainsSubString("sp_spoofRA", 2));
+ Assert.assertTrue(heavyHittersContainsSubString("compress")
+ || heavyHittersContainsSubString("sp_compress"));
}
finally {
rtplatform = platformOld;
http://git-wip-us.apache.org/repos/asf/systemml/blob/e84e07a8/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedL2SVM.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedL2SVM.java b/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedL2SVM.java
index 9dab4a6..00a62d7 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedL2SVM.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedL2SVM.java
@@ -30,6 +30,7 @@ import org.apache.sysml.runtime.matrix.data.MatrixValue.CellIndex;
import org.apache.sysml.test.integration.AutomatedTestBase;
import org.apache.sysml.test.integration.TestConfiguration;
import org.apache.sysml.test.utils.TestUtils;
+import org.junit.Assert;
import org.junit.Test;
/**
@@ -127,6 +128,9 @@ public class CompressedL2SVM extends AutomatedTestBase
HashMap<CellIndex, Double> dmlfile = readDMLMatrixFromHDFS("w");
HashMap<CellIndex, Double> rfile = readRMatrixFromFS("w");
TestUtils.compareMatrices(dmlfile, rfile, eps, "Stat-DML", "Stat-R");
+
+ Assert.assertTrue(heavyHittersContainsSubString("compress")
+ || heavyHittersContainsSubString("sp_compress"));
}
finally {
rtplatform = platformOld;
http://git-wip-us.apache.org/repos/asf/systemml/blob/e84e07a8/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedLinregCG.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedLinregCG.java b/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedLinregCG.java
index 170442c..be62544 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedLinregCG.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedLinregCG.java
@@ -31,6 +31,7 @@ import org.apache.sysml.runtime.matrix.data.MatrixValue.CellIndex;
import org.apache.sysml.test.integration.AutomatedTestBase;
import org.apache.sysml.test.integration.TestConfiguration;
import org.apache.sysml.test.utils.TestUtils;
+import org.junit.Assert;
import org.junit.Test;
/**
@@ -135,6 +136,9 @@ public class CompressedLinregCG extends AutomatedTestBase
HashMap<CellIndex, Double> dmlfile = readDMLMatrixFromHDFS("w");
HashMap<CellIndex, Double> rfile = readRMatrixFromFS("w");
TestUtils.compareMatrices(dmlfile, rfile, eps, "Stat-DML", "Stat-R");
+
+ Assert.assertTrue(heavyHittersContainsSubString("compress")
+ || heavyHittersContainsSubString("sp_compress"));
}
finally {
rtplatform = platformOld;