[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 <[email protected]>
Authored: Tue Aug 15 18:17:38 2017 -0700
Committer: Matthias Boehm <[email protected]>
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;

Reply via email to