Repository: systemml Updated Branches: refs/heads/master bd34292d4 -> 07650acf2
[SYSTEMML-2479] Fix MNC sparsity estimator reshape operations This patch fixes various smaller correctness issues of MNC sketch propagation for reshape operations, adds a related test, and finally removes the invalid skipping of estimation tests. Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/07650acf Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/07650acf Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/07650acf Branch: refs/heads/master Commit: 07650acf25a7ffb3d9663c622be0ae82778c0db0 Parents: bd34292 Author: Matthias Boehm <[email protected]> Authored: Sat Oct 20 20:25:29 2018 +0200 Committer: Matthias Boehm <[email protected]> Committed: Sat Oct 20 20:27:16 2018 +0200 ---------------------------------------------------------------------- .../sysml/hops/estim/EstimatorBitsetMM.java | 1 - .../hops/estim/EstimatorMatrixHistogram.java | 52 ++++++------ .../org/apache/sysml/hops/estim/MMNode.java | 28 ++++++- .../functions/estim/MNCReshapeTest.java | 83 ++++++++++++++++++++ .../functions/estim/OpBindChainTest.java | 3 - .../integration/functions/estim/OpBindTest.java | 3 - .../functions/estim/OpElemWChainTest.java | 3 - .../functions/estim/OpElemWTest.java | 3 - .../functions/estim/OpSingleTest.java | 3 - .../functions/estim/OuterProductTest.java | 3 - .../functions/estim/SelfProductTest.java | 3 - .../estim/SquaredProductChainTest.java | 3 - .../functions/estim/SquaredProductTest.java | 3 - .../functions/estim/ZPackageSuite.java | 1 + 14 files changed, 140 insertions(+), 52 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java b/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java index 8802e9c..99354fd 100644 --- a/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java +++ b/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java @@ -406,7 +406,6 @@ public class EstimatorBitsetMM extends SparsityEstimator } } - @SuppressWarnings("unused") public static class BitsetMatrix2 extends BitsetMatrix { private BitSet[] _data; http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/main/java/org/apache/sysml/hops/estim/EstimatorMatrixHistogram.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/estim/EstimatorMatrixHistogram.java b/src/main/java/org/apache/sysml/hops/estim/EstimatorMatrixHistogram.java index 52cca3d..83d918a 100644 --- a/src/main/java/org/apache/sysml/hops/estim/EstimatorMatrixHistogram.java +++ b/src/main/java/org/apache/sysml/hops/estim/EstimatorMatrixHistogram.java @@ -24,7 +24,7 @@ import java.util.Random; import java.util.stream.IntStream; import org.apache.commons.lang.ArrayUtils; -import org.apache.directory.api.util.exception.NotImplementedException; +import org.apache.commons.lang.NotImplementedException; import org.apache.sysml.hops.OptimizerUtils; import org.apache.sysml.runtime.matrix.MatrixCharacteristics; import org.apache.sysml.runtime.matrix.data.DenseBlock; @@ -58,22 +58,22 @@ public class EstimatorMatrixHistogram extends SparsityEstimator //recursive histogram computation of non-leaf nodes if( !root.getLeft().isLeaf() ) estim(root.getLeft()); //obtain synopsis - if( !root.getRight().isLeaf() ) + if( root.getRight()!=null && !root.getRight().isLeaf() ) estim(root.getRight()); //obtain synopsis MatrixHistogram h1 = !root.getLeft().isLeaf() ? (MatrixHistogram)root.getLeft().getSynopsis() : new MatrixHistogram(root.getLeft().getData(), _useExcepts); - MatrixHistogram h2 = !root.getRight().isLeaf() ? + MatrixHistogram h2 = root.getRight() != null ? !root.getRight().isLeaf() ? (MatrixHistogram)root.getRight().getSynopsis() : - new MatrixHistogram(root.getRight().getData(), _useExcepts); + new MatrixHistogram(root.getRight().getData(), _useExcepts) : null; //estimate output sparsity based on input histograms - double ret = estimIntern(h1, h2, root.getOp()); - MatrixHistogram outMap = MatrixHistogram.deriveOutputHistogram(h1, h2, ret, root.getOp()); + double ret = estimIntern(h1, h2, root.getOp(), root.getMisc()); + MatrixHistogram outMap = MatrixHistogram + .deriveOutputHistogram(h1, h2, ret, root.getOp(), root.getMisc()); root.setSynopsis(outMap); return root.setMatrixCharacteristics(new MatrixCharacteristics( outMap.getRows(), outMap.getCols(), outMap.getNonZeros())); - } @Override @@ -89,7 +89,7 @@ public class EstimatorMatrixHistogram extends SparsityEstimator MatrixHistogram h1 = new MatrixHistogram(m1, _useExcepts); MatrixHistogram h2 = (m1 == m2) ? //self product h1 : new MatrixHistogram(m2, _useExcepts); - return estimIntern(h1, h2, op); + return estimIntern(h1, h2, op, null); } @Override @@ -97,10 +97,10 @@ public class EstimatorMatrixHistogram extends SparsityEstimator if( isExactMetadataOp(op) ) return estimExactMetaData(m1.getMatrixCharacteristics(), null, op).getSparsity(); MatrixHistogram h1 = new MatrixHistogram(m1, _useExcepts); - return estimIntern(h1, null, op); + return estimIntern(h1, null, op, null); } - private double estimIntern(MatrixHistogram h1, MatrixHistogram h2, OpCode op) { + private double estimIntern(MatrixHistogram h1, MatrixHistogram h2, OpCode op, long[] misc) { double msize = (double)h1.getRows()*h1.getCols(); switch (op) { case MM: @@ -312,13 +312,21 @@ public class EstimatorMatrixHistogram extends SparsityEstimator return cNnz.length; } + public int[] getRowCounts() { + return rNnz; + } + + public int[] getColCounts() { + return cNnz; + } + public long getNonZeros() { return getRows() < getCols() ? IntStream.range(0, getRows()).mapToLong(i-> rNnz[i]).sum() : IntStream.range(0, getCols()).mapToLong(i-> cNnz[i]).sum(); } - public static MatrixHistogram deriveOutputHistogram(MatrixHistogram h1, MatrixHistogram h2, double spOut, OpCode op) { + public static MatrixHistogram deriveOutputHistogram(MatrixHistogram h1, MatrixHistogram h2, double spOut, OpCode op, long[] misc) { switch(op) { case MM: return deriveMMHistogram(h1, h2, spOut); case MULT: return deriveMultHistogram(h1, h2); @@ -329,8 +337,7 @@ public class EstimatorMatrixHistogram extends SparsityEstimator case EQZERO: return deriveEq0Histogram(h1); case DIAG: return deriveDiagHistogram(h1); case TRANS: return deriveTransHistogram(h1); - case RESHAPE: return deriveReshapeHistogram(h1, h1.getRows(), h1.getCols()); - //FIXME: reshape requires additional meta data from MM node + case RESHAPE: return deriveReshapeHistogram(h1, (int)misc[0], (int)misc[1]); default: throw new NotImplementedException(); } @@ -493,11 +500,10 @@ public class EstimatorMatrixHistogram extends SparsityEstimator rMaxNnz = Math.max(rMaxNnz, h1.rNnz[i]/scale); } //aggregate column counts - for(int j=0; j<n; j+=scale) - for(int j2=0; j2<scale; j2++) - cNnz[j2] += h1.cNnz[j]; - for(int j2=0; j2<scale; j2++) - cMaxNnz = Math.max(cMaxNnz, cNnz[j2]); + for(int j=0; j<n; j++) + cNnz[j%cols] += h1.cNnz[j]; + for(int j=0; j<cols; j++) + cMaxNnz = Math.max(cMaxNnz, cNnz[j]); } else if ( h1.getRows() % rows == 0 ) { //N->1 rows int scale = h1.getRows()/rows; @@ -508,11 +514,11 @@ public class EstimatorMatrixHistogram extends SparsityEstimator cMaxNnz = Math.max(cMaxNnz, h1.cNnz[i]/scale); } //aggregate row counts - for(int j=0; j<m; j+=scale) - for(int j2=0; j2<scale; j2++) - rNnz[j2] += h1.rNnz[j]; - for(int j2=0; j2<scale; j2++) - rMaxNnz = Math.max(rMaxNnz, rNnz[j2]); + for(int i=0, pos=0; i<m; i+=scale, pos++) + for(int i2=0; i2<scale; i2++) + rNnz[pos] += h1.rNnz[i+i2]; + for(int i=0; i<rows; i++) + rMaxNnz = Math.max(rMaxNnz, rNnz[i]); } return new MatrixHistogram(rNnz, null, cNnz, null, rMaxNnz, cMaxNnz); } http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/main/java/org/apache/sysml/hops/estim/MMNode.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/estim/MMNode.java b/src/main/java/org/apache/sysml/hops/estim/MMNode.java index 542449a..d508f82 100644 --- a/src/main/java/org/apache/sysml/hops/estim/MMNode.java +++ b/src/main/java/org/apache/sysml/hops/estim/MMNode.java @@ -20,6 +20,7 @@ package org.apache.sysml.hops.estim; import org.apache.sysml.hops.estim.SparsityEstimator.OpCode; +import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.matrix.MatrixCharacteristics; import org.apache.sysml.runtime.matrix.data.MatrixBlock; @@ -35,6 +36,7 @@ public class MMNode private final MatrixCharacteristics _mc; private Object _synops = null; private final OpCode _op; + private final long[] _misc; public MMNode(MatrixBlock in) { _m1 = null; @@ -42,14 +44,28 @@ public class MMNode _data = in; _mc = in.getMatrixCharacteristics(); _op = null; + _misc = null; } - public MMNode(MMNode left, MMNode right, OpCode op) { + public MMNode(MMNode left, MMNode right, OpCode op, long[] misc) { _m1 = left; _m2 = right; _data = null; _mc = new MatrixCharacteristics(-1, -1, -1, -1); _op = op; + _misc = misc; + } + + public MMNode(MMNode left, MMNode right, OpCode op) { + this(left, right, op, null); + } + + public MMNode(MMNode left, OpCode op) { + this(left, null, op); + } + + public MMNode(MMNode left, OpCode op, long[] misc) { + this(left, null, op, misc); } public int getRows() { @@ -60,6 +76,16 @@ public class MMNode return (int)_mc.getCols(); } + public long[] getMisc() { + return _misc; + } + + public long getMisc(int pos) { + if( _misc == null ) + throw new DMLRuntimeException("Extra meta data not available."); + return _misc[pos]; + } + public MatrixCharacteristics getMatrixCharacteristics() { return _mc; } http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/MNCReshapeTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/estim/MNCReshapeTest.java b/src/test/java/org/apache/sysml/test/integration/functions/estim/MNCReshapeTest.java new file mode 100644 index 0000000..7e9b1a5 --- /dev/null +++ b/src/test/java/org/apache/sysml/test/integration/functions/estim/MNCReshapeTest.java @@ -0,0 +1,83 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.apache.sysml.test.integration.functions.estim; + +import org.junit.Assert; +import org.junit.Test; +import org.apache.sysml.hops.estim.EstimatorMatrixHistogram.MatrixHistogram; +import org.apache.sysml.hops.estim.SparsityEstimator.OpCode; +import org.apache.sysml.runtime.matrix.data.LibMatrixReorg; +import org.apache.sysml.runtime.matrix.data.MatrixBlock; +import org.apache.sysml.test.integration.AutomatedTestBase; + +public class MNCReshapeTest extends AutomatedTestBase +{ + @Override + public void setUp() { + //do nothing + } + + @Test + public void testMNCReshapeN1() { + runMNCReshapeTest(1000, 100, 200, 500); + } + + @Test + public void testMNCReshape1N() { + runMNCReshapeTest(100, 1000, 500, 200); + } + + private void runMNCReshapeTest(int m, int n, int m2, int n2) { + MatrixBlock in = createStructuredInput(m, n, m2, n2); + MatrixBlock out = LibMatrixReorg.reshape(in, new MatrixBlock(m2, n2, false), m2, n2, true); + + MatrixHistogram hIn = new MatrixHistogram(in, false); + MatrixHistogram hOut = MatrixHistogram.deriveOutputHistogram( + hIn, null, in.getSparsity(), OpCode.RESHAPE, new long[] {m2,n2}); + + MatrixHistogram hExpect = new MatrixHistogram(out, false); + + //expected exact sparsity, even with sketch propagation + if( m % m2 == 0 ) + Assert.assertArrayEquals(hExpect.getRowCounts(), hOut.getRowCounts()); + if( n % n2 == 0 ) + Assert.assertArrayEquals(hExpect.getColCounts(), hOut.getColCounts()); + } + + private MatrixBlock createStructuredInput(int m, int n, int m2, int n2) { + if( n % n2 == 0 ) { //1:N + MatrixBlock tmp = createStructuredInput(n, m, n2, m2); + return LibMatrixReorg.transpose(tmp, new MatrixBlock(m, n, false)); + } + else if( m % m2 == 0 ) { //N:1 + MatrixBlock tmp = new MatrixBlock(m, n, false); + int L = m/m2; + for(int i=0; i<m; i+=L) { + for( int k=0; k<L; k++ ) + for(int j=0; j<n/(k+1); j++ ) //j=i/100 + tmp.quickSetValue(i+k, j, 1); + } + return tmp; + } + else { + throw new RuntimeException("Unsupported general case."); + } + } +} http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindChainTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindChainTest.java b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindChainTest.java index 38d7164..2d87e21 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindChainTest.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindChainTest.java @@ -124,9 +124,6 @@ public class OpBindChainTest extends AutomatedTestBase private void runSparsityEstimateTest(SparsityEstimator estim, int m, int k, int n, double[] sp, OpCode op) { - if(shouldSkipTest()) - return; - MatrixBlock m1; MatrixBlock m2; MatrixBlock m3 = new MatrixBlock(); http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindTest.java b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindTest.java index 03a823d..c04458b 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindTest.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindTest.java @@ -134,9 +134,6 @@ public class OpBindTest extends AutomatedTestBase private void runSparsityEstimateTest(SparsityEstimator estim, int m, int k, int n, double[] sp, OpCode op) { - if(shouldSkipTest()) - return; - MatrixBlock m1; MatrixBlock m2; MatrixBlock m3 = new MatrixBlock(); http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWChainTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWChainTest.java b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWChainTest.java index b784915..6d69b69 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWChainTest.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWChainTest.java @@ -118,9 +118,6 @@ public class OpElemWChainTest extends AutomatedTestBase private void runSparsityEstimateTest(SparsityEstimator estim, int m, int n, double[] sp, OpCode op) { - if(shouldSkipTest()) - return; - MatrixBlock m1 = MatrixBlock.randOperations(m, n, sp[0], 1, 1, "uniform", 3); MatrixBlock m2 = MatrixBlock.randOperations(m, n, sp[1], 1, 1, "uniform", 5); MatrixBlock m3 = MatrixBlock.randOperations(n, m, sp[1], 1, 1, "uniform", 7); http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWTest.java b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWTest.java index 9df813b..69a7325 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWTest.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWTest.java @@ -129,9 +129,6 @@ public class OpElemWTest extends AutomatedTestBase } private void runSparsityEstimateTest(SparsityEstimator estim, int m, int n, double[] sp, OpCode op) { - if(shouldSkipTest()) - return; - MatrixBlock m1 = MatrixBlock.randOperations(m, n, sp[0], 1, 1, "uniform", 3); MatrixBlock m2 = MatrixBlock.randOperations(m, n, sp[1], 1, 1, "uniform", 7); MatrixBlock m3 = new MatrixBlock(); http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OpSingleTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpSingleTest.java b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpSingleTest.java index fab3e19..fa567ed 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpSingleTest.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpSingleTest.java @@ -232,9 +232,6 @@ public class OpSingleTest extends AutomatedTestBase // } private void runSparsityEstimateTest(SparsityEstimator estim, int m, int k, double sp, OpCode op) { - if(shouldSkipTest()) - return; - MatrixBlock m1 = MatrixBlock.randOperations(m, k, sp, 1, 1, "uniform", 3); MatrixBlock m2 = new MatrixBlock(); double est = 0; http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OuterProductTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/estim/OuterProductTest.java b/src/test/java/org/apache/sysml/test/integration/functions/estim/OuterProductTest.java index f23ee2e..70ea63b 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/estim/OuterProductTest.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/estim/OuterProductTest.java @@ -140,9 +140,6 @@ public class OuterProductTest extends AutomatedTestBase } private void runSparsityEstimateTest(SparsityEstimator estim, int m, int k, int n, double[] sp) { - if(shouldSkipTest()) - return; - MatrixBlock m1 = MatrixBlock.randOperations(m, k, sp[0], 1, 1, "uniform", 3); MatrixBlock m2 = MatrixBlock.randOperations(k, n, sp[1], 1, 1, "uniform", 3); MatrixBlock m3 = m1.aggregateBinaryOperations(m1, m2, http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/SelfProductTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/estim/SelfProductTest.java b/src/test/java/org/apache/sysml/test/integration/functions/estim/SelfProductTest.java index d46f55b..702514e 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/estim/SelfProductTest.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/estim/SelfProductTest.java @@ -141,9 +141,6 @@ public class SelfProductTest extends AutomatedTestBase } private void runSparsityEstimateTest(SparsityEstimator estim, int n, double sp) { - if(shouldSkipTest()) - return; - MatrixBlock m1 = MatrixBlock.randOperations(m, n, sp, 1, 1, "uniform", 3); MatrixBlock m3 = m1.aggregateBinaryOperations(m1, m1, new MatrixBlock(), InstructionUtils.getMatMultOperator(1)); http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductChainTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductChainTest.java b/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductChainTest.java index aae753e..7d97150 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductChainTest.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductChainTest.java @@ -138,9 +138,6 @@ public class SquaredProductChainTest extends AutomatedTestBase } private void runSparsityEstimateTest(SparsityEstimator estim, int m, int k, int n, int n2, double[] sp) { - if(shouldSkipTest()) - return; - MatrixBlock m1 = MatrixBlock.randOperations(m, k, sp[0], 1, 1, "uniform", 1); MatrixBlock m2 = MatrixBlock.randOperations(k, n, sp[1], 1, 1, "uniform", 2); MatrixBlock m3 = MatrixBlock.randOperations(n, n2, sp[2], 1, 1, "uniform", 3); http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductTest.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductTest.java b/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductTest.java index 7269612..51eb5d6 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductTest.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductTest.java @@ -156,9 +156,6 @@ public class SquaredProductTest extends AutomatedTestBase } private void runSparsityEstimateTest(SparsityEstimator estim, int m, int k, int n, double[] sp) { - if(shouldSkipTest()) - return; - MatrixBlock m1 = MatrixBlock.randOperations(m, k, sp[0], 1, 1, "uniform", 3); MatrixBlock m2 = MatrixBlock.randOperations(k, n, sp[1], 1, 1, "uniform", 7); MatrixBlock m3 = m1.aggregateBinaryOperations(m1, m2, http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test_suites/java/org/apache/sysml/test/integration/functions/estim/ZPackageSuite.java ---------------------------------------------------------------------- diff --git a/src/test_suites/java/org/apache/sysml/test/integration/functions/estim/ZPackageSuite.java b/src/test_suites/java/org/apache/sysml/test/integration/functions/estim/ZPackageSuite.java index 3cf152b..4a77ab5 100644 --- a/src/test_suites/java/org/apache/sysml/test/integration/functions/estim/ZPackageSuite.java +++ b/src/test_suites/java/org/apache/sysml/test/integration/functions/estim/ZPackageSuite.java @@ -26,6 +26,7 @@ import org.junit.runners.Suite; * won't run two of them at once. */ @RunWith(Suite.class) @Suite.SuiteClasses({ + MNCReshapeTest.class, OpBindChainTest.class, OpBindTest.class, OpElemWChainTest.class,
