[SYSTEMML-2159] Extended codegen tests for FA and FNR heuristics Closes #742.
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/41e3325f Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/41e3325f Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/41e3325f Branch: refs/heads/master Commit: 41e3325fea56a4923afd0623220cda42604327e2 Parents: 437e9d6 Author: chamathabeysinghe <[email protected]> Authored: Thu Mar 8 19:45:27 2018 -0800 Committer: Matthias Boehm <[email protected]> Committed: Thu Mar 8 19:45:28 2018 -0800 ---------------------------------------------------------------------- .../functions/codegenalg/AlgorithmARIMA.java | 42 ++- .../codegenalg/AlgorithmAutoEncoder.java | 104 ++++++-- .../functions/codegenalg/AlgorithmDatagen.java | 146 +++++++++-- .../functions/codegenalg/AlgorithmGLM.java | 206 +++++++++++---- .../functions/codegenalg/AlgorithmKMeans.java | 226 ++++++++++++++-- .../functions/codegenalg/AlgorithmL2SVM.java | 85 +++++- .../functions/codegenalg/AlgorithmLinregCG.java | 203 ++++++++++++--- .../functions/codegenalg/AlgorithmMDABivar.java | 45 +++- .../functions/codegenalg/AlgorithmMLogreg.java | 259 ++++++++++++++++--- .../functions/codegenalg/AlgorithmMSVM.java | 92 +++++-- .../functions/codegenalg/AlgorithmPNMF.java | 58 ++++- .../codegenalg/AlgorithmStepwiseRegression.java | 109 +++++--- .../SystemML-config-codegen-fuse-all.xml | 28 ++ ...stemML-config-codegen-fuse-no-redundancy.xml | 28 ++ 14 files changed, 1353 insertions(+), 278 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/41e3325f/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmARIMA.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmARIMA.java b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmARIMA.java index 6a7edcd..8f7e791 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmARIMA.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmARIMA.java @@ -31,9 +31,17 @@ import org.apache.sysml.test.integration.applications.ArimaTest; public class AlgorithmARIMA extends ArimaTest { private final static String LOCAL_TEST_DIR = "functions/codegenalg/"; - private final static String TEST_CONF = "SystemML-config-codegen.xml"; - private final static File TEST_CONF_FILE = new File(SCRIPT_DIR + LOCAL_TEST_DIR, TEST_CONF); - + private final static String TEST_CONF_DEFAULT = "SystemML-config-codegen.xml"; + private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + LOCAL_TEST_DIR, TEST_CONF_DEFAULT); + private final static String TEST_CONF_FUSE_ALL = "SystemML-config-codegen-fuse-all.xml"; + private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + LOCAL_TEST_DIR, TEST_CONF_FUSE_ALL); + private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemML-config-codegen-fuse-no-redundancy.xml"; + private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + LOCAL_TEST_DIR, + TEST_CONF_FUSE_NO_REDUNDANCY); + + private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY } + private TestType currentTestType = TestType.DEFAULT; + public AlgorithmARIMA(int m, int p, int d, int q, int P, int D, int Q, int s, int include_mean, int useJacobi) { super(m, p, d, q, P, D, Q, s, include_mean, useJacobi); TEST_CLASS_DIR = TEST_DIR + AlgorithmARIMA.class.getSimpleName() + "/"; @@ -41,12 +49,36 @@ public class AlgorithmARIMA extends ArimaTest @Test public void testArimaDml() { + testArima(ScriptType.DML, TestType.DEFAULT); + } + + @Test + public void testArimaDmlFuseAll() { + testArima(ScriptType.DML, TestType.FUSE_ALL); + } + + @Test + public void testArimaDmlFuseNoRedundancy() { + testArima(ScriptType.DML, TestType.FUSE_NO_REDUNDANCY); + } + + private void testArima(ScriptType scriptType, TestType testType){ + currentTestType = testType; testArima(ScriptType.DML); } @Override protected File getConfigTemplateFile() { - System.out.println("This test case overrides default configuration with " + TEST_CONF_FILE.getPath()); - return TEST_CONF_FILE; + String message = "This test case overrides default configuration with "; + if(currentTestType == TestType.FUSE_ALL){ + System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath()); + return TEST_CONF_FILE_FUSE_ALL; + } else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){ + System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath()); + return TEST_CONF_FILE_FUSE_NO_REDUNDANCY; + } else { + System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath()); + return TEST_CONF_FILE_DEFAULT; + } } } http://git-wip-us.apache.org/repos/asf/systemml/blob/41e3325f/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmAutoEncoder.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmAutoEncoder.java b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmAutoEncoder.java index 04c81c9..e02e044 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmAutoEncoder.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmAutoEncoder.java @@ -36,8 +36,15 @@ public class AlgorithmAutoEncoder extends AutomatedTestBase private final static String TEST_NAME1 = "Algorithm_AutoEncoder"; private final static String TEST_DIR = "functions/codegenalg/"; private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmAutoEncoder.class.getSimpleName() + "/"; - private final static String TEST_CONF = "SystemML-config-codegen.xml"; - private final static File TEST_CONF_FILE = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF); + private final static String TEST_CONF_DEFAULT = "SystemML-config-codegen.xml"; + private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT); + private final static String TEST_CONF_FUSE_ALL = "SystemML-config-codegen-fuse-all.xml"; + private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL); + private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemML-config-codegen-fuse-no-redundancy.xml"; + private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR, + TEST_CONF_FUSE_NO_REDUNDANCY); + + private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY } private final static int rows = 2468; private final static int cols = 784; @@ -49,76 +56,118 @@ public class AlgorithmAutoEncoder extends AutomatedTestBase private final static int H2 = 2; private final static double epochs = 2; + private TestType currentTestType = TestType.DEFAULT; + @Override public void setUp() { TestUtils.clearAssertionInformation(); addTestConfiguration(TEST_NAME1, new TestConfiguration(TEST_CLASS_DIR, TEST_NAME1, new String[] { "w" })); } + //Note: limited cases for SPARK, as lazy evaluation + //causes very long execution time for this algorithm + @Test public void testAutoEncoder256DenseCP() { - runGLMTest(256, false, false, ExecType.CP); + runAutoEncoderTest(256, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testAutoEncoder256DenseRewritesCP() { - runGLMTest(256, false, true, ExecType.CP); + runAutoEncoderTest(256, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testAutoEncoder256SparseCP() { - runGLMTest(256, true, false, ExecType.CP); + runAutoEncoderTest(256, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testAutoEncoder256SparseRewritesCP() { - runGLMTest(256, true, true, ExecType.CP); + runAutoEncoderTest(256, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testAutoEncoder512DenseCP() { - runGLMTest(512, false, false, ExecType.CP); + runAutoEncoderTest(512, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testAutoEncoder512DenseRewritesCP() { - runGLMTest(512, false, true, ExecType.CP); + runAutoEncoderTest(512, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testAutoEncoder512SparseCP() { - runGLMTest(512, true, false, ExecType.CP); + runAutoEncoderTest(512, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testAutoEncoder512SparseRewritesCP() { - runGLMTest(512, true, true, ExecType.CP); + runAutoEncoderTest(512, true, true, ExecType.CP, TestType.DEFAULT); } - //Note: limited cases for SPARK, as lazy evaluation - //causes very long execution time for this algorithm - @Test public void testAutoEncoder256DenseRewritesSpark() { - runGLMTest(256, false, true, ExecType.SPARK); + runAutoEncoderTest(256, false, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testAutoEncoder256SparseRewritesSpark() { - runGLMTest(256, true, true, ExecType.SPARK); + runAutoEncoderTest(256, true, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testAutoEncoder512DenseRewritesSpark() { - runGLMTest(512, false, true, ExecType.SPARK); + runAutoEncoderTest(512, false, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testAutoEncoder512SparseRewritesSpark() { - runGLMTest(512, true, true, ExecType.SPARK); + runAutoEncoderTest(512, true, true, ExecType.SPARK, TestType.DEFAULT); } - - private void runGLMTest(int batchsize, boolean sparse, boolean rewrites, ExecType instType) + + @Test + public void testAutoEncoder512DenseRewritesCPFuseAll() { + runAutoEncoderTest(512, false, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testAutoEncoder512SparseRewritesCPFuseAll() { + runAutoEncoderTest(512, true, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testAutoEncoder512DenseRewritesSparkFuseAll() { + runAutoEncoderTest(512, false, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testAutoEncoder512SparseRewritesSparkFuseAll() { + runAutoEncoderTest(512, true, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testAutoEncoder512DenseRewritesCPFuseNoRedundancy() { + runAutoEncoderTest(512, false, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testAutoEncoder512SparseRewritesCPFuseNoRedundancy() { + runAutoEncoderTest(512, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testAutoEncoder512DenseRewritesSparkFuseNoRedundancy() { + runAutoEncoderTest(512, false, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testAutoEncoder512SparseRewritesSparkFuseNoRedundancy() { + runAutoEncoderTest(512, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + private void runAutoEncoderTest(int batchsize, boolean sparse, boolean rewrites, ExecType instType, TestType testType) { boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION; RUNTIME_PLATFORM platformOld = rtplatform; @@ -127,7 +176,9 @@ public class AlgorithmAutoEncoder extends AutomatedTestBase case SPARK: rtplatform = RUNTIME_PLATFORM.SPARK; break; default: rtplatform = RUNTIME_PLATFORM.HYBRID_SPARK; break; } - + + currentTestType = testType; + boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG; if( rtplatform == RUNTIME_PLATFORM.SPARK || rtplatform == RUNTIME_PLATFORM.HYBRID_SPARK ) DMLScript.USE_LOCAL_SPARK_CONFIG = true; @@ -174,7 +225,16 @@ public class AlgorithmAutoEncoder extends AutomatedTestBase @Override protected File getConfigTemplateFile() { // Instrumentation in this test's output log to show custom configuration file used for template. - System.out.println("This test case overrides default configuration with " + TEST_CONF_FILE.getPath()); - return TEST_CONF_FILE; + String message = "This test case overrides default configuration with "; + if(currentTestType == TestType.FUSE_ALL){ + System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath()); + return TEST_CONF_FILE_FUSE_ALL; + } else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){ + System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath()); + return TEST_CONF_FILE_FUSE_NO_REDUNDANCY; + } else { + System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath()); + return TEST_CONF_FILE_DEFAULT; + } } } http://git-wip-us.apache.org/repos/asf/systemml/blob/41e3325f/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmDatagen.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmDatagen.java b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmDatagen.java index d006276..d77f478 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmDatagen.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmDatagen.java @@ -36,19 +36,28 @@ public class AlgorithmDatagen extends AutomatedTestBase private final static String TEST_NAME1 = "Algorithm_Datagen"; private final static String TEST_DIR = "functions/codegenalg/"; private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmDatagen.class.getSimpleName() + "/"; - private final static String TEST_CONF = "SystemML-config-codegen.xml"; - private final static File TEST_CONF_FILE = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF); - + private final static String TEST_CONF_DEFAULT = "SystemML-config-codegen.xml"; + private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT); + private final static String TEST_CONF_FUSE_ALL = "SystemML-config-codegen-fuse-all.xml"; + private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL); + private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemML-config-codegen-fuse-no-redundancy.xml"; + private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR, + TEST_CONF_FUSE_NO_REDUNDANCY); + + private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY } + private final static int rows = 2468; private final static int cols = 200; private final static double sparsity1 = 0.9; //dense private final static double sparsity2 = 0.1; //sparse - + public enum DatagenType { LINREG, LOGREG, } + + private TestType currentTestType = TestType.DEFAULT; @Override public void setUp() { @@ -58,85 +67,165 @@ public class AlgorithmDatagen extends AutomatedTestBase @Test public void testDatagenLinregDenseRewritesCP() { - runStepwiseTest(DatagenType.LINREG, false, true, ExecType.CP); + runStepwiseTest(DatagenType.LINREG, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testDatagenLinregSparseRewritesCP() { - runStepwiseTest(DatagenType.LINREG, true, true, ExecType.CP); + runStepwiseTest(DatagenType.LINREG, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testDatagenLinregDenseNoRewritesCP() { - runStepwiseTest(DatagenType.LINREG, false, false, ExecType.CP); + runStepwiseTest(DatagenType.LINREG, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testDatagenLinregSparseNoRewritesCP() { - runStepwiseTest(DatagenType.LINREG, true, false, ExecType.CP); + runStepwiseTest(DatagenType.LINREG, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testDatagenLogregDenseRewritesCP() { - runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.CP); + runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testDatagenLogregSparseRewritesCP() { - runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.CP); + runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testDatagenLogregDenseNoRewritesCP() { - runStepwiseTest(DatagenType.LOGREG, false, false, ExecType.CP); + runStepwiseTest(DatagenType.LOGREG, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testDatagenLogregSparseNoRewritesCP() { - runStepwiseTest(DatagenType.LOGREG, true, false, ExecType.CP); + runStepwiseTest(DatagenType.LOGREG, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testDatagenLinregDenseRewritesSP() { - runStepwiseTest(DatagenType.LINREG, false, true, ExecType.SPARK); + runStepwiseTest(DatagenType.LINREG, false, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testDatagenLinregSparseRewritesSP() { - runStepwiseTest(DatagenType.LINREG, true, true, ExecType.SPARK); + runStepwiseTest(DatagenType.LINREG, true, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testDatagenLinregDenseNoRewritesSP() { - runStepwiseTest(DatagenType.LINREG, false, false, ExecType.SPARK); + runStepwiseTest(DatagenType.LINREG, false, false, ExecType.SPARK, TestType.DEFAULT); } @Test public void testDatagenLinregSparseNoRewritesSP() { - runStepwiseTest(DatagenType.LINREG, true, false, ExecType.SPARK); + runStepwiseTest(DatagenType.LINREG, true, false, ExecType.SPARK, TestType.DEFAULT); } @Test public void testDatagenLogregDenseRewritesSP() { - runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.SPARK); + runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testDatagenLogregSparseRewritesSP() { - runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.SPARK); + runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testDatagenLogregDenseNoRewritesSP() { - runStepwiseTest(DatagenType.LOGREG, false, false, ExecType.SPARK); + runStepwiseTest(DatagenType.LOGREG, false, false, ExecType.SPARK, TestType.DEFAULT); } @Test public void testDatagenLogregSparseNoRewritesSP() { - runStepwiseTest(DatagenType.LOGREG, true, false, ExecType.SPARK); + runStepwiseTest(DatagenType.LOGREG, true, false, ExecType.SPARK, TestType.DEFAULT); + } + + @Test + public void testDatagenLinregDenseRewritesCPFuseAll() { + runStepwiseTest(DatagenType.LINREG, false, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testDatagenLinregSparseRewritesCPFuseAll() { + runStepwiseTest(DatagenType.LINREG, true, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testDatagenLogregDenseRewritesCPFuseAll() { + runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testDatagenLogregSparseRewritesCPFuseAll() { + runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testDatagenLinregDenseRewritesSPFuseAll() { + runStepwiseTest(DatagenType.LINREG, false, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testDatagenLinregSparseRewritesSPFuseAll() { + runStepwiseTest(DatagenType.LINREG, true, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testDatagenLogregDenseRewritesSPFuseAll() { + runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testDatagenLogregSparseRewritesSPFuseAll() { + runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testDatagenLinregDenseRewritesCPFuseNoRedundancy() { + runStepwiseTest(DatagenType.LINREG, false, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testDatagenLinregSparseRewritesCPFuseNoRedundancy() { + runStepwiseTest(DatagenType.LINREG, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testDatagenLogregDenseRewritesCPFuseNoRedundancy() { + runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testDatagenLogregSparseRewritesCPFuseNoRedundancy() { + runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testDatagenLinregDenseRewritesSPFuseNoRedundancy() { + runStepwiseTest(DatagenType.LINREG, false, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testDatagenLinregSparseRewritesSPFuseNoRedundancy() { + runStepwiseTest(DatagenType.LINREG, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testDatagenLogregDenseRewritesSPFuseNoRedundancy() { + runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testDatagenLogregSparseRewritesSPFuseNoRedundancy() { + runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); } - private void runStepwiseTest( DatagenType type, boolean sparse, boolean rewrites, ExecType instType) + private void runStepwiseTest( DatagenType type, boolean sparse, boolean rewrites, ExecType instType, TestType testType) { boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION; RUNTIME_PLATFORM platformOld = rtplatform; @@ -144,7 +233,7 @@ public class AlgorithmDatagen extends AutomatedTestBase case SPARK: rtplatform = RUNTIME_PLATFORM.SPARK; break; default: rtplatform = RUNTIME_PLATFORM.HYBRID_SPARK; break; } - + currentTestType = testType; boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG; if( rtplatform == RUNTIME_PLATFORM.SPARK || rtplatform == RUNTIME_PLATFORM.HYBRID_SPARK ) DMLScript.USE_LOCAL_SPARK_CONFIG = true; @@ -193,7 +282,16 @@ public class AlgorithmDatagen extends AutomatedTestBase @Override protected File getConfigTemplateFile() { // Instrumentation in this test's output log to show custom configuration file used for template. - System.out.println("This test case overrides default configuration with " + TEST_CONF_FILE.getPath()); - return TEST_CONF_FILE; + String message = "This test case overrides default configuration with "; + if(currentTestType == TestType.FUSE_ALL){ + System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath()); + return TEST_CONF_FILE_FUSE_ALL; + } else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){ + System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath()); + return TEST_CONF_FILE_FUSE_NO_REDUNDANCY; + } else { + System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath()); + return TEST_CONF_FILE_DEFAULT; + } } } http://git-wip-us.apache.org/repos/asf/systemml/blob/41e3325f/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmGLM.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmGLM.java b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmGLM.java index 603e146..0acecc7 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmGLM.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmGLM.java @@ -36,9 +36,16 @@ public class AlgorithmGLM extends AutomatedTestBase private final static String TEST_NAME1 = "Algorithm_GLM"; private final static String TEST_DIR = "functions/codegenalg/"; private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmGLM.class.getSimpleName() + "/"; - private final static String TEST_CONF = "SystemML-config-codegen.xml"; - private final static File TEST_CONF_FILE = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF); - + private final static String TEST_CONF_DEFAULT = "SystemML-config-codegen.xml"; + private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT); + private final static String TEST_CONF_FUSE_ALL = "SystemML-config-codegen-fuse-all.xml"; + private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL); + private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemML-config-codegen-fuse-no-redundancy.xml"; + private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR, + TEST_CONF_FUSE_NO_REDUNDANCY); + + private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY } + //private final static double eps = 1e-5; private final static int rows = 2468; @@ -50,13 +57,15 @@ public class AlgorithmGLM extends AutomatedTestBase private final static int intercept = 0; private final static double epsilon = 0.000000001; private final static double maxiter = 5; //inner/outer - + public enum GLMType { POISSON_LOG, GAMMA_LOG, BINOMIAL_PROBIT, } + private TestType currentTestType = TestType.DEFAULT; + @Override public void setUp() { TestUtils.clearAssertionInformation(); @@ -65,125 +74,215 @@ public class AlgorithmGLM extends AutomatedTestBase @Test public void testGLMPoissonDenseRewritesCP() { - runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.CP); + runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMPoissonSparseRewritesCP() { - runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.CP); + runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMPoissonDenseCP() { - runGLMTest(GLMType.POISSON_LOG, false, false, ExecType.CP); + runGLMTest(GLMType.POISSON_LOG, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMPoissonSparseCP() { - runGLMTest(GLMType.POISSON_LOG, false, true, ExecType.CP); + runGLMTest(GLMType.POISSON_LOG, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMGammaDenseRewritesCP() { - runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.CP); + runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMGammaSparseRewritesCP() { - runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.CP); + runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMGammaDenseCP() { - runGLMTest(GLMType.GAMMA_LOG, false, false, ExecType.CP); + runGLMTest(GLMType.GAMMA_LOG, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMGammaSparseCP() { - runGLMTest(GLMType.GAMMA_LOG, false, true, ExecType.CP); + runGLMTest(GLMType.GAMMA_LOG, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMBinomialDenseRewritesCP() { - runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.CP); + runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMBinomialSparseRewritesCP() { - runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.CP); + runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMBinomialDenseCP() { - runGLMTest(GLMType.BINOMIAL_PROBIT, false, false, ExecType.CP); + runGLMTest(GLMType.BINOMIAL_PROBIT, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMBinomialSparseCP() { - runGLMTest(GLMType.BINOMIAL_PROBIT, false, true, ExecType.CP); + runGLMTest(GLMType.BINOMIAL_PROBIT, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testGLMPoissonDenseRewritesSP() { - runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.SPARK); + runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.SPARK, TestType.DEFAULT); } @Test public void testGLMPoissonSparseRewritesSP() { - runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.SPARK); + runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.SPARK, TestType.DEFAULT); } @Test - public void testGLMPoissonDenseSP() { - runGLMTest(GLMType.POISSON_LOG, false, false, ExecType.SPARK); + public void testGLMGammaDenseRewritesSP() { + runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.SPARK, TestType.DEFAULT); } @Test - public void testGLMPoissonSparseSP() { - runGLMTest(GLMType.POISSON_LOG, false, true, ExecType.SPARK); + public void testGLMGammaSparseRewritesSP() { + runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.SPARK, TestType.DEFAULT); } @Test - public void testGLMGammaDenseRewritesSP() { - runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.SPARK); + public void testGLMBinomialDenseRewritesSP() { + runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.SPARK, TestType.DEFAULT); } @Test - public void testGLMGammaSparseRewritesSP() { - runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.SPARK); + public void testGLMBinomialSparseRewritesSP() { + runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.SPARK, TestType.DEFAULT); } - + @Test - public void testGLMGammaDenseSP() { - runGLMTest(GLMType.GAMMA_LOG, false, false, ExecType.SPARK); + public void testGLMPoissonDenseRewritesCPFuseAll() { + runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.CP, TestType.FUSE_ALL); } - + @Test - public void testGLMGammaSparseSP() { - runGLMTest(GLMType.GAMMA_LOG, false, true, ExecType.SPARK); + public void testGLMPoissonSparseRewritesCPFuseAll() { + runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.CP, TestType.FUSE_ALL); } - + @Test - public void testGLMBinomialDenseRewritesSP() { - runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.SPARK); + public void testGLMGammaDenseRewritesCPFuseAll() { + runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.CP, TestType.FUSE_ALL); } - + @Test - public void testGLMBinomialSparseRewritesSP() { - runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.SPARK); + public void testGLMGammaSparseRewritesCPFuseAll() { + runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.CP, TestType.FUSE_ALL); } - + @Test - public void testGLMBinomialDenseSP() { - runGLMTest(GLMType.BINOMIAL_PROBIT, false, false, ExecType.SPARK); + public void testGLMBinomialDenseRewritesCPFuseAll() { + runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.CP, TestType.FUSE_ALL); } - + @Test - public void testGLMBinomialSparseSP() { - runGLMTest(GLMType.BINOMIAL_PROBIT, false, true, ExecType.SPARK); + public void testGLMBinomialSparseRewritesCPFuseAll() { + runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.CP, TestType.FUSE_ALL); } - - private void runGLMTest( GLMType type, boolean rewrites, boolean sparse, ExecType instType) + + @Test + public void testGLMPoissonDenseRewritesSPFuseAll() { + runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testGLMPoissonSparseRewritesSPFuseAll() { + runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testGLMGammaDenseRewritesSPFuseAll() { + runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testGLMGammaSparseRewritesSPFuseAll() { + runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testGLMBinomialDenseRewritesSPFuseAll() { + runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testGLMBinomialSparseRewritesSPFuseAll() { + runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testGLMPoissonDenseRewritesCPFuseNoRedundancy() { + runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMPoissonSparseRewritesCPFuseNoRedundancy() { + runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMGammaDenseRewritesCPFuseNoRedundancy() { + runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMGammaSparseRewritesCPFuseNoRedundancy() { + runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMBinomialDenseRewritesCPFuseNoRedundancy() { + runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMBinomialSparseRewritesCPFuseNoRedundancy() { + runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMPoissonDenseRewritesSPFuseNoRedundancy() { + runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMPoissonSparseRewritesSPFuseNoRedundancy() { + runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMGammaDenseRewritesSPFuseNoRedundancy() { + runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMGammaSparseRewritesSPFuseNoRedundancy() { + runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMBinomialDenseRewritesSPFuseNoRedundancy() { + runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testGLMBinomialSparseRewritesSPFuseNoRedundancy() { + runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + private void runGLMTest( GLMType type, boolean rewrites, boolean sparse, ExecType instType, TestType testType) { boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION; RUNTIME_PLATFORM platformOld = rtplatform; @@ -192,7 +291,7 @@ public class AlgorithmGLM extends AutomatedTestBase case SPARK: rtplatform = RUNTIME_PLATFORM.SPARK; break; default: rtplatform = RUNTIME_PLATFORM.HYBRID_SPARK; break; } - + currentTestType = testType; boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG; if( rtplatform == RUNTIME_PLATFORM.SPARK || rtplatform == RUNTIME_PLATFORM.HYBRID_SPARK ) DMLScript.USE_LOCAL_SPARK_CONFIG = true; @@ -260,7 +359,16 @@ public class AlgorithmGLM extends AutomatedTestBase @Override protected File getConfigTemplateFile() { // Instrumentation in this test's output log to show custom configuration file used for template. - System.out.println("This test case overrides default configuration with " + TEST_CONF_FILE.getPath()); - return TEST_CONF_FILE; + String message = "This test case overrides default configuration with "; + if(currentTestType == TestType.FUSE_ALL){ + System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath()); + return TEST_CONF_FILE_FUSE_ALL; + } else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){ + System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath()); + return TEST_CONF_FILE_FUSE_NO_REDUNDANCY; + } else { + System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath()); + return TEST_CONF_FILE_DEFAULT; + } } } http://git-wip-us.apache.org/repos/asf/systemml/blob/41e3325f/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmKMeans.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmKMeans.java b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmKMeans.java index f04d684..f1930ba 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmKMeans.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmKMeans.java @@ -32,13 +32,20 @@ import org.apache.sysml.test.integration.TestConfiguration; import org.apache.sysml.test.utils.TestUtils; public class AlgorithmKMeans extends AutomatedTestBase -{ +{ private final static String TEST_NAME1 = "Algorithm_KMeans"; private final static String TEST_DIR = "functions/codegenalg/"; private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmKMeans.class.getSimpleName() + "/"; - private final static String TEST_CONF = "SystemML-config-codegen.xml"; - private final static File TEST_CONF_FILE = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF); - + private final static String TEST_CONF_DEFAULT = "SystemML-config-codegen.xml"; + private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT); + private final static String TEST_CONF_FUSE_ALL = "SystemML-config-codegen-fuse-all.xml"; + private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL); + private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemML-config-codegen-fuse-no-redundancy.xml"; + private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR, + TEST_CONF_FUSE_NO_REDUNDANCY); + + private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY } + //private final static double eps = 1e-5; private final static int rows = 3972; @@ -50,6 +57,8 @@ public class AlgorithmKMeans extends AutomatedTestBase private final static double epsilon = 0.000000001; private final static double maxiter = 10; + private TestType currentTestType = TestType.DEFAULT; + @Override public void setUp() { TestUtils.clearAssertionInformation(); @@ -58,85 +67,245 @@ public class AlgorithmKMeans extends AutomatedTestBase @Test public void testKMeansDenseBinSingleRewritesCP() { - runKMeansTest(TEST_NAME1, true, false, 2, 1, ExecType.CP); + runKMeansTest(TEST_NAME1, true, false, 2, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansSparseBinSingleRewritesCP() { - runKMeansTest(TEST_NAME1, true, true, 2, 1, ExecType.CP); + runKMeansTest(TEST_NAME1, true, true, 2, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansDenseBinSingleCP() { - runKMeansTest(TEST_NAME1, false, false, 2, 1, ExecType.CP); + runKMeansTest(TEST_NAME1, false, false, 2, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansSparseBinSingleCP() { - runKMeansTest(TEST_NAME1, false, true, 2, 1, ExecType.CP); + runKMeansTest(TEST_NAME1, false, true, 2, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansDenseBinMultiRewritesCP() { - runKMeansTest(TEST_NAME1, true, false, 2, 10, ExecType.CP); + runKMeansTest(TEST_NAME1, true, false, 2, 10, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansSparseBinMultiRewritesCP() { - runKMeansTest(TEST_NAME1, true, true, 2, 10, ExecType.CP); + runKMeansTest(TEST_NAME1, true, true, 2, 10, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansDenseBinMultiCP() { - runKMeansTest(TEST_NAME1, false, false, 2, 10, ExecType.CP); + runKMeansTest(TEST_NAME1, false, false, 2, 10, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansSparseBinMultiCP() { - runKMeansTest(TEST_NAME1, false, true, 2, 10, ExecType.CP); + runKMeansTest(TEST_NAME1, false, true, 2, 10, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansDenseMulSingleRewritesCP() { - runKMeansTest(TEST_NAME1, true, false, 20, 1, ExecType.CP); + runKMeansTest(TEST_NAME1, true, false, 20, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansSparseMulSingleRewritesCP() { - runKMeansTest(TEST_NAME1, true, true, 20, 1, ExecType.CP); + runKMeansTest(TEST_NAME1, true, true, 20, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansDenseMulSingleCP() { - runKMeansTest(TEST_NAME1, false, false, 20, 1, ExecType.CP); + runKMeansTest(TEST_NAME1, false, false, 20, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansSparseMulSingleCP() { - runKMeansTest(TEST_NAME1, false, true, 20, 1, ExecType.CP); + runKMeansTest(TEST_NAME1, false, true, 20, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansDenseMulMultiRewritesCP() { - runKMeansTest(TEST_NAME1, true, false, 20, 10, ExecType.CP); + runKMeansTest(TEST_NAME1, true, false, 20, 10, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansSparseMulMultiRewritesCP() { - runKMeansTest(TEST_NAME1, true, true, 20, 10, ExecType.CP); + runKMeansTest(TEST_NAME1, true, true, 20, 10, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansDenseMulMultiCP() { - runKMeansTest(TEST_NAME1, false, false, 20, 10, ExecType.CP); + runKMeansTest(TEST_NAME1, false, false, 20, 10, ExecType.CP, TestType.DEFAULT); } @Test public void testKMeansSparseMulMultiCP() { - runKMeansTest(TEST_NAME1, false, true, 20, 10, ExecType.CP); + runKMeansTest(TEST_NAME1, false, true, 20, 10, ExecType.CP, TestType.DEFAULT); + } + + @Test + public void testKMeansDenseBinSingleRewritesCPFuseAll() { + runKMeansTest(TEST_NAME1, true, false, 2, 1, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansSparseBinSingleRewritesCPFuseAll() { + runKMeansTest(TEST_NAME1, true, true, 2, 1, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansDenseBinSingleCPFuseAll() { + runKMeansTest(TEST_NAME1, false, false, 2, 1, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansSparseBinSingleCPFuseAll() { + runKMeansTest(TEST_NAME1, false, true, 2, 1, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansDenseBinMultiRewritesCPFuseAll() { + runKMeansTest(TEST_NAME1, true, false, 2, 10, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansSparseBinMultiRewritesCPFuseAll() { + runKMeansTest(TEST_NAME1, true, true, 2, 10, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansDenseBinMultiCPFuseAll() { + runKMeansTest(TEST_NAME1, false, false, 2, 10, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansSparseBinMultiCPFuseAll() { + runKMeansTest(TEST_NAME1, false, true, 2, 10, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansDenseMulSingleRewritesCPFuseAll() { + runKMeansTest(TEST_NAME1, true, false, 20, 1, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansSparseMulSingleRewritesCPFuseAll() { + runKMeansTest(TEST_NAME1, true, true, 20, 1, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansDenseMulSingleCPFuseAll() { + runKMeansTest(TEST_NAME1, false, false, 20, 1, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansSparseMulSingleCPFuseAll() { + runKMeansTest(TEST_NAME1, false, true, 20, 1, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansDenseMulMultiRewritesCPFuseAll() { + runKMeansTest(TEST_NAME1, true, false, 20, 10, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansSparseMulMultiRewritesCPFuseAll() { + runKMeansTest(TEST_NAME1, true, true, 20, 10, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansDenseMulMultiCPFuseAll() { + runKMeansTest(TEST_NAME1, false, false, 20, 10, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansSparseMulMultiCPFuseAll() { + runKMeansTest(TEST_NAME1, false, true, 20, 10, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testKMeansDenseBinSingleRewritesCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, true, false, 2, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansSparseBinSingleRewritesCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, true, true, 2, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansDenseBinSingleCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, false, false, 2, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansSparseBinSingleCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, false, true, 2, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansDenseBinMultiRewritesCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, true, false, 2, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansSparseBinMultiRewritesCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, true, true, 2, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansDenseBinMultiCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, false, false, 2, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansSparseBinMultiCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, false, true, 2, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansDenseMulSingleRewritesCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, true, false, 20, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansSparseMulSingleRewritesCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, true, true, 20, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansDenseMulSingleCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, false, false, 20, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansSparseMulSingleCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, false, true, 20, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansDenseMulMultiRewritesCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, true, false, 20, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansSparseMulMultiRewritesCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, true, true, 20, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansDenseMulMultiCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, false, false, 20, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testKMeansSparseMulMultiCPFuseNoRedundancy() { + runKMeansTest(TEST_NAME1, false, true, 20, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); } - private void runKMeansTest( String testname, boolean rewrites, boolean sparse, int centroids, int runs, ExecType instType) + private void runKMeansTest( String testname, boolean rewrites, boolean sparse, int centroids, int runs, ExecType instType, TestType testType) { boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION; RUNTIME_PLATFORM platformOld = rtplatform; @@ -145,7 +314,7 @@ public class AlgorithmKMeans extends AutomatedTestBase case SPARK: rtplatform = RUNTIME_PLATFORM.SPARK; break; default: rtplatform = RUNTIME_PLATFORM.HYBRID_SPARK; break; } - + currentTestType = testType; boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG; if( rtplatform == RUNTIME_PLATFORM.SPARK || rtplatform == RUNTIME_PLATFORM.HYBRID_SPARK ) DMLScript.USE_LOCAL_SPARK_CONFIG = true; @@ -191,7 +360,16 @@ public class AlgorithmKMeans extends AutomatedTestBase @Override protected File getConfigTemplateFile() { // Instrumentation in this test's output log to show custom configuration file used for template. - System.out.println("This test case overrides default configuration with " + TEST_CONF_FILE.getPath()); - return TEST_CONF_FILE; + String message = "This test case overrides default configuration with "; + if(currentTestType == TestType.FUSE_ALL){ + System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath()); + return TEST_CONF_FILE_FUSE_ALL; + } else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){ + System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath()); + return TEST_CONF_FILE_FUSE_NO_REDUNDANCY; + } else { + System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath()); + return TEST_CONF_FILE_DEFAULT; + } } } http://git-wip-us.apache.org/repos/asf/systemml/blob/41e3325f/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmL2SVM.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmL2SVM.java b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmL2SVM.java index 7666d8f..dbffb40 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmL2SVM.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmL2SVM.java @@ -38,8 +38,15 @@ public class AlgorithmL2SVM extends AutomatedTestBase private final static String TEST_NAME1 = "Algorithm_L2SVM"; private final static String TEST_DIR = "functions/codegenalg/"; private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmL2SVM.class.getSimpleName() + "/"; - private final static String TEST_CONF = "SystemML-config-codegen.xml"; - private final static File TEST_CONF_FILE = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF); + private final static String TEST_CONF_DEFAULT = "SystemML-config-codegen.xml"; + private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT); + private final static String TEST_CONF_FUSE_ALL = "SystemML-config-codegen-fuse-all.xml"; + private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL); + private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemML-config-codegen-fuse-no-redundancy.xml"; + private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR, + TEST_CONF_FUSE_NO_REDUNDANCY); + + private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY } private final static double eps = 1e-5; @@ -54,6 +61,8 @@ public class AlgorithmL2SVM extends AutomatedTestBase private final static double epsilon = 0.000000001; private final static double maxiter = 10; + private TestType currentTestType = TestType.DEFAULT; + @Override public void setUp() { TestUtils.clearAssertionInformation(); @@ -62,45 +71,85 @@ public class AlgorithmL2SVM extends AutomatedTestBase @Test public void testL2SVMDenseRewritesCP() { - runL2SVMTest(TEST_NAME1, true, false, ExecType.CP); + runL2SVMTest(TEST_NAME1, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testL2SVMSparseRewritesCP() { - runL2SVMTest(TEST_NAME1, true, true, ExecType.CP); + runL2SVMTest(TEST_NAME1, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testL2SVMDenseCP() { - runL2SVMTest(TEST_NAME1, false, false, ExecType.CP); + runL2SVMTest(TEST_NAME1, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testL2SVMSparseCP() { - runL2SVMTest(TEST_NAME1, false, true, ExecType.CP); + runL2SVMTest(TEST_NAME1, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testL2SVMDenseRewritesSP() { - runL2SVMTest(TEST_NAME1, true, false, ExecType.SPARK); + runL2SVMTest(TEST_NAME1, true, false, ExecType.SPARK, TestType.DEFAULT); } @Test public void testL2SVMSparseRewritesSP() { - runL2SVMTest(TEST_NAME1, true, true, ExecType.SPARK); + runL2SVMTest(TEST_NAME1, true, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testL2SVMDenseSP() { - runL2SVMTest(TEST_NAME1, false, false, ExecType.SPARK); + runL2SVMTest(TEST_NAME1, false, false, ExecType.SPARK, TestType.DEFAULT); } @Test public void testL2SVMSparseSP() { - runL2SVMTest(TEST_NAME1, false, true, ExecType.SPARK); + runL2SVMTest(TEST_NAME1, false, true, ExecType.SPARK, TestType.DEFAULT); + } + + @Test + public void testL2SVMDenseRewritesCPFuseAll() { + runL2SVMTest(TEST_NAME1, true, false, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testL2SVMSparseRewritesCPFuseAll() { + runL2SVMTest(TEST_NAME1, true, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testL2SVMDenseRewritesSPFuseAll() { + runL2SVMTest(TEST_NAME1, true, false, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testL2SVMSparseRewritesSPFuseAll() { + runL2SVMTest(TEST_NAME1, true, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testL2SVMDenseRewritesCPFuseNoRedundancy() { + runL2SVMTest(TEST_NAME1, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testL2SVMSparseRewritesCPFuseNoRedundancy() { + runL2SVMTest(TEST_NAME1, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testL2SVMDenseRewritesSPFuseNoRedundancy() { + runL2SVMTest(TEST_NAME1, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testL2SVMSparseRewritesSPFuseNoRedundancy() { + runL2SVMTest(TEST_NAME1, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); } - private void runL2SVMTest( String testname, boolean rewrites, boolean sparse, ExecType instType) + private void runL2SVMTest( String testname, boolean rewrites, boolean sparse, ExecType instType, TestType testType) { boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION; RUNTIME_PLATFORM platformOld = rtplatform; @@ -109,6 +158,7 @@ public class AlgorithmL2SVM extends AutomatedTestBase case SPARK: rtplatform = RUNTIME_PLATFORM.SPARK; break; default: rtplatform = RUNTIME_PLATFORM.HYBRID_SPARK; break; } + currentTestType = testType; boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG; if( rtplatform == RUNTIME_PLATFORM.SPARK || rtplatform == RUNTIME_PLATFORM.HYBRID_SPARK ) @@ -162,7 +212,16 @@ public class AlgorithmL2SVM extends AutomatedTestBase @Override protected File getConfigTemplateFile() { // Instrumentation in this test's output log to show custom configuration file used for template. - System.out.println("This test case overrides default configuration with " + TEST_CONF_FILE.getPath()); - return TEST_CONF_FILE; + String message = "This test case overrides default configuration with "; + if(currentTestType == TestType.FUSE_ALL){ + System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath()); + return TEST_CONF_FILE_FUSE_ALL; + } else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){ + System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath()); + return TEST_CONF_FILE_FUSE_NO_REDUNDANCY; + } else { + System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath()); + return TEST_CONF_FILE_DEFAULT; + } } } http://git-wip-us.apache.org/repos/asf/systemml/blob/41e3325f/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmLinregCG.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmLinregCG.java b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmLinregCG.java index 3031df0..a7cbb79 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmLinregCG.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmLinregCG.java @@ -38,14 +38,22 @@ public class AlgorithmLinregCG extends AutomatedTestBase private final static String TEST_NAME1 = "Algorithm_LinregCG"; private final static String TEST_DIR = "functions/codegenalg/"; private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmLinregCG.class.getSimpleName() + "/"; - private final static String TEST_CONF = "SystemML-config-codegen.xml"; - private final static File TEST_CONF_FILE = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF); - + private final static String TEST_CONF_DEFAULT = "SystemML-config-codegen.xml"; + private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT); + private final static String TEST_CONF_FUSE_ALL = "SystemML-config-codegen-fuse-all.xml"; + private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL); + private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemML-config-codegen-fuse-no-redundancy.xml"; + private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR, + TEST_CONF_FUSE_NO_REDUNDANCY); + + private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY } + private static TestType currentTestType = TestType.DEFAULT; + private final static double eps = 1e-1; private final static int rows = 2468; private final static int cols = 507; - + private final static double sparsity1 = 0.7; //dense private final static double sparsity2 = 0.1; //sparse @@ -60,125 +68,245 @@ public class AlgorithmLinregCG extends AutomatedTestBase @Test public void testLinregCG0DenseRewritesCP() { - runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.CP); + runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG0SparseRewritesCP() { - runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.CP); + runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG0DenseCP() { - runLinregCGTest(TEST_NAME1, false, false, 0, ExecType.CP); + runLinregCGTest(TEST_NAME1, false, false, 0, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG0SparseCP() { - runLinregCGTest(TEST_NAME1, false, true, 0, ExecType.CP); + runLinregCGTest(TEST_NAME1, false, true, 0, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG0DenseRewritesSP() { - runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG0SparseRewritesSP() { - runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG0DenseSP() { - runLinregCGTest(TEST_NAME1, false, false, 0, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, false, false, 0, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG0SparseSP() { - runLinregCGTest(TEST_NAME1, false, true, 0, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, false, true, 0, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG1DenseRewritesCP() { - runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.CP); + runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG1SparseRewritesCP() { - runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.CP); + runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG1DenseCP() { - runLinregCGTest(TEST_NAME1, false, false, 1, ExecType.CP); + runLinregCGTest(TEST_NAME1, false, false, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG1SparseCP() { - runLinregCGTest(TEST_NAME1, false, true, 1, ExecType.CP); + runLinregCGTest(TEST_NAME1, false, true, 1, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG1DenseRewritesSP() { - runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG1SparseRewritesSP() { - runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG1DenseSP() { - runLinregCGTest(TEST_NAME1, false, false, 1, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, false, false, 1, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG1SparseSP() { - runLinregCGTest(TEST_NAME1, false, true, 1, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, false, true, 1, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG2DenseRewritesCP() { - runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.CP); + runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG2SparseRewritesCP() { - runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.CP); + runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG2DenseCP() { - runLinregCGTest(TEST_NAME1, false, false, 2, ExecType.CP); + runLinregCGTest(TEST_NAME1, false, false, 2, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG2SparseCP() { - runLinregCGTest(TEST_NAME1, false, true, 2, ExecType.CP); + runLinregCGTest(TEST_NAME1, false, true, 2, ExecType.CP, TestType.DEFAULT); } @Test public void testLinregCG2DenseRewritesSP() { - runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG2SparseRewritesSP() { - runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG2DenseSP() { - runLinregCGTest(TEST_NAME1, false, false, 2, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, false, false, 2, ExecType.SPARK, TestType.DEFAULT); } @Test public void testLinregCG2SparseSP() { - runLinregCGTest(TEST_NAME1, false, true, 2, ExecType.SPARK); + runLinregCGTest(TEST_NAME1, false, true, 2, ExecType.SPARK, TestType.DEFAULT); } - - private void runLinregCGTest( String testname, boolean rewrites, boolean sparse, int intercept, ExecType instType) + + @Test + public void testLinregCG0DenseRewritesCPFuseAll() { + runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG0SparseRewritesCPFuseAll() { + runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG0DenseRewritesSPFuseAll() { + runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG0SparseRewritesSPFuseAll() { + runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG1DenseRewritesCPFuseAll() { + runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG1SparseRewritesCPFuseAll() { + runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG1DenseRewritesSPFuseAll() { + runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG1SparseRewritesSPFuseAll() { + runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG2DenseRewritesCPFuseAll() { + runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG2SparseRewritesCPFuseAll() { + runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG2DenseRewritesSPFuseAll() { + runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG2SparseRewritesSPFuseAll() { + runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testLinregCG0DenseRewritesCPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG0SparseRewritesCPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG0DenseRewritesSPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG0SparseRewritesSPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG1DenseRewritesCPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG1SparseRewritesCPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG1DenseRewritesSPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG1SparseRewritesSPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG2DenseRewritesCPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG2SparseRewritesCPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG2DenseRewritesSPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testLinregCG2SparseRewritesSPFuseNoRedundancy() { + runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + private void runLinregCGTest( String testname, boolean rewrites, boolean sparse, int intercept, ExecType instType, TestType testType) { boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION; RUNTIME_PLATFORM platformOld = rtplatform; @@ -187,7 +315,7 @@ public class AlgorithmLinregCG extends AutomatedTestBase case SPARK: rtplatform = RUNTIME_PLATFORM.SPARK; break; default: rtplatform = RUNTIME_PLATFORM.HYBRID_SPARK; break; } - + currentTestType = testType; boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG; if( rtplatform == RUNTIME_PLATFORM.SPARK || rtplatform == RUNTIME_PLATFORM.HYBRID_SPARK ) DMLScript.USE_LOCAL_SPARK_CONFIG = true; @@ -240,7 +368,16 @@ public class AlgorithmLinregCG extends AutomatedTestBase @Override protected File getConfigTemplateFile() { // Instrumentation in this test's output log to show custom configuration file used for template. - System.out.println("This test case overrides default configuration with " + TEST_CONF_FILE.getPath()); - return TEST_CONF_FILE; + String message = "This test case overrides default configuration with "; + if(currentTestType == TestType.FUSE_ALL){ + System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath()); + return TEST_CONF_FILE_FUSE_ALL; + } else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){ + System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath()); + return TEST_CONF_FILE_FUSE_NO_REDUNDANCY; + } else { + System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath()); + return TEST_CONF_FILE_DEFAULT; + } } } http://git-wip-us.apache.org/repos/asf/systemml/blob/41e3325f/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmMDABivar.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmMDABivar.java b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmMDABivar.java index 19be842..3e7f6b3 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmMDABivar.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmMDABivar.java @@ -31,22 +31,55 @@ import org.apache.sysml.test.integration.applications.MDABivariateStatsTest; public class AlgorithmMDABivar extends MDABivariateStatsTest { private final static String LOCAL_TEST_DIR = "functions/codegenalg/"; - private final static String TEST_CONF = "SystemML-config-codegen.xml"; - private final static File TEST_CONF_FILE = new File(SCRIPT_DIR + LOCAL_TEST_DIR, TEST_CONF); + private final static String TEST_CONF_DEFAULT = "SystemML-config-codegen.xml"; + private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + LOCAL_TEST_DIR, TEST_CONF_DEFAULT); + private final static String TEST_CONF_FUSE_ALL = "SystemML-config-codegen-fuse-all.xml"; + private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + LOCAL_TEST_DIR, TEST_CONF_FUSE_ALL); + private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemML-config-codegen-fuse-no-redundancy.xml"; + private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + LOCAL_TEST_DIR, + TEST_CONF_FUSE_NO_REDUNDANCY); + + private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY } + + private TestType currentTestType = TestType.DEFAULT; public AlgorithmMDABivar(int n, int m, int li, int lml) { super(n, m, li, lml); TEST_CLASS_DIR = TEST_DIR + AlgorithmMDABivar.class.getSimpleName() + "/"; } - + @Test public void testMDABivariateStatsDml() { - testMDABivariateStats(ScriptType.DML); + testMDABivariateStats(ScriptType.DML,TestType.DEFAULT); + } + + @Test + public void testMDABivariateStatsDmlFuseAll() { + testMDABivariateStats(ScriptType.DML,TestType.FUSE_ALL); + } + + @Test + public void testMDABivariateStatsDmlFuseNoRedundancy() { + testMDABivariateStats(ScriptType.DML,TestType.FUSE_NO_REDUNDANCY); + } + + private void testMDABivariateStats(ScriptType scriptType, TestType testType) { + currentTestType = testType; + testMDABivariateStats(scriptType); } @Override protected File getConfigTemplateFile() { - System.out.println("This test case overrides default configuration with " + TEST_CONF_FILE.getPath()); - return TEST_CONF_FILE; + String message = "This test case overrides default configuration with "; + if(currentTestType == TestType.FUSE_ALL){ + System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath()); + return TEST_CONF_FILE_FUSE_ALL; + } else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){ + System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath()); + return TEST_CONF_FILE_FUSE_NO_REDUNDANCY; + } else { + System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath()); + return TEST_CONF_FILE_DEFAULT; + } } } http://git-wip-us.apache.org/repos/asf/systemml/blob/41e3325f/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmMLogreg.java ---------------------------------------------------------------------- diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmMLogreg.java b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmMLogreg.java index 0e5e322..356096b 100644 --- a/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmMLogreg.java +++ b/src/test/java/org/apache/sysml/test/integration/functions/codegenalg/AlgorithmMLogreg.java @@ -38,20 +38,30 @@ public class AlgorithmMLogreg extends AutomatedTestBase private final static String TEST_NAME1 = "Algorithm_MLogreg"; private final static String TEST_DIR = "functions/codegenalg/"; private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmMLogreg.class.getSimpleName() + "/"; - private final static String TEST_CONF = "SystemML-config-codegen.xml"; - private final static File TEST_CONF_FILE = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF); - + private final static String TEST_CONF_DEFAULT = "SystemML-config-codegen.xml"; + private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT); + private final static String TEST_CONF_FUSE_ALL = "SystemML-config-codegen-fuse-all.xml"; + private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL); + private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemML-config-codegen-fuse-no-redundancy.xml"; + private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR, + TEST_CONF_FUSE_NO_REDUNDANCY); + + private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY } + private final static double eps = 1e-5; private final static int rows = 2468; private final static int cols = 227; - + private final static double sparsity1 = 0.7; //dense private final static double sparsity2 = 0.1; //sparse private final static double epsilon = 0.000000001; private final static double maxiter = 10; + private TestType currentTestType = TestType.DEFAULT; + + @Override public void setUp() { TestUtils.clearAssertionInformation(); @@ -60,165 +70,325 @@ public class AlgorithmMLogreg extends AutomatedTestBase @Test public void testMlogregBin0DenseRewritesCP() { - runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin0SparseRewritesCP() { - runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin0DenseCP() { - runMlogregTest(TEST_NAME1, 2, 0, false, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 0, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin0SparseCP() { - runMlogregTest(TEST_NAME1, 2, 0, false, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 0, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul0DenseRewritesCP() { - runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul0SparseRewritesCP() { - runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul0DenseCP() { - runMlogregTest(TEST_NAME1, 5, 0, false, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 0, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul0SparseCP() { - runMlogregTest(TEST_NAME1, 5, 0, false, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 0, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin0DenseRewritesSP() { - runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.SPARK); + runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.SPARK, TestType.DEFAULT); } @Test public void testMlogregBin0SparseRewritesSP() { - runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.SPARK); + runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testMlogregBin0DenseSP() { - runMlogregTest(TEST_NAME1, 2, 0, false, false, ExecType.SPARK); + runMlogregTest(TEST_NAME1, 2, 0, false, false, ExecType.SPARK, TestType.DEFAULT); } @Test public void testMlogregBin0SparseSP() { - runMlogregTest(TEST_NAME1, 2, 0, false, true, ExecType.SPARK); + runMlogregTest(TEST_NAME1, 2, 0, false, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testMlogregMul0DenseRewritesSP() { - runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.SPARK); + runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.SPARK, TestType.DEFAULT); } @Test public void testMlogregMul0SparseRewritesSP() { - runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.SPARK); + runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testMlogregMul0DenseSP() { - runMlogregTest(TEST_NAME1, 5, 0, false, false, ExecType.SPARK); + runMlogregTest(TEST_NAME1, 5, 0, false, false, ExecType.SPARK, TestType.DEFAULT); } @Test public void testMlogregMul0SparseSP() { - runMlogregTest(TEST_NAME1, 5, 0, false, true, ExecType.SPARK); + runMlogregTest(TEST_NAME1, 5, 0, false, true, ExecType.SPARK, TestType.DEFAULT); } @Test public void testMlogregBin1DenseRewritesCP() { - runMlogregTest(TEST_NAME1, 2, 1, true, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 1, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin1SparseRewritesCP() { - runMlogregTest(TEST_NAME1, 2, 1, true, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 1, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin1DenseCP() { - runMlogregTest(TEST_NAME1, 2, 1, false, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 1, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin1SparseCP() { - runMlogregTest(TEST_NAME1, 2, 1, false, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 1, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul1DenseRewritesCP() { - runMlogregTest(TEST_NAME1, 5, 1, true, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 1, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul1SparseRewritesCP() { - runMlogregTest(TEST_NAME1, 5, 1, true, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 1, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul1DenseCP() { - runMlogregTest(TEST_NAME1, 5, 1, false, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 1, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul1SparseCP() { - runMlogregTest(TEST_NAME1, 5, 1, false, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 1, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin2DenseRewritesCP() { - runMlogregTest(TEST_NAME1, 2, 2, true, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 2, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin2SparseRewritesCP() { - runMlogregTest(TEST_NAME1, 2, 2, true, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 2, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin2DenseCP() { - runMlogregTest(TEST_NAME1, 2, 2, false, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 2, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregBin2SparseCP() { - runMlogregTest(TEST_NAME1, 2, 2, false, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 2, 2, false, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul2DenseRewritesCP() { - runMlogregTest(TEST_NAME1, 5, 2, true, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 2, true, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul2SparseRewritesCP() { - runMlogregTest(TEST_NAME1, 5, 2, true, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 2, true, true, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul2DenseCP() { - runMlogregTest(TEST_NAME1, 5, 2, false, false, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 2, false, false, ExecType.CP, TestType.DEFAULT); } @Test public void testMlogregMul2SparseCP() { - runMlogregTest(TEST_NAME1, 5, 2, false, true, ExecType.CP); + runMlogregTest(TEST_NAME1, 5, 2, false, true, ExecType.CP, TestType.DEFAULT); + } + + @Test + public void testMlogregBin0DenseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregBin0SparseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregMul0DenseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregMul0SparseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregBin0DenseRewritesSPFuseAll() { + runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testMlogregBin0SparseRewritesSPFuseAll() { + runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testMlogregMul0DenseRewritesSPFuseAll() { + runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testMlogregMul0SparseRewritesSPFuseAll() { + runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.SPARK, TestType.FUSE_ALL); + } + + @Test + public void testMlogregBin1DenseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 2, 1, true, false, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregBin1SparseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 2, 1, true, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregMul1DenseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 5, 1, true, false, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregMul1SparseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 5, 1, true, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregBin2DenseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 2, 2, true, false, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregBin2SparseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 2, 2, true, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregMul2DenseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 5, 2, true, false, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregMul2SparseRewritesCPFuseAll() { + runMlogregTest(TEST_NAME1, 5, 2, true, true, ExecType.CP, TestType.FUSE_ALL); + } + + @Test + public void testMlogregBin0DenseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregBin0SparseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregMul0DenseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregMul0SparseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregBin0DenseRewritesSPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregBin0SparseRewritesSPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregMul0DenseRewritesSPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregMul0SparseRewritesSPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregBin1DenseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 2, 1, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregBin1SparseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 2, 1, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregMul1DenseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 5, 1, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregMul1SparseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 5, 1, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregBin2DenseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 2, 2, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregBin2SparseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 2, 2, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregMul2DenseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 5, 2, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); + } + + @Test + public void testMlogregMul2SparseRewritesCPFuseNoRedundancy() { + runMlogregTest(TEST_NAME1, 5, 2, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY); } - private void runMlogregTest( String testname, int classes, int intercept, boolean rewrites, boolean sparse, ExecType instType) + private void runMlogregTest( String testname, int classes, int intercept, boolean rewrites, boolean sparse, ExecType instType, TestType testType) { boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION; RUNTIME_PLATFORM platformOld = rtplatform; @@ -227,7 +397,7 @@ public class AlgorithmMLogreg extends AutomatedTestBase case SPARK: rtplatform = RUNTIME_PLATFORM.SPARK; break; default: rtplatform = RUNTIME_PLATFORM.HYBRID_SPARK; break; } - + currentTestType = testType; boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG; if( rtplatform == RUNTIME_PLATFORM.SPARK || rtplatform == RUNTIME_PLATFORM.HYBRID_SPARK ) DMLScript.USE_LOCAL_SPARK_CONFIG = true; @@ -280,7 +450,16 @@ public class AlgorithmMLogreg extends AutomatedTestBase @Override protected File getConfigTemplateFile() { // Instrumentation in this test's output log to show custom configuration file used for template. - System.out.println("This test case overrides default configuration with " + TEST_CONF_FILE.getPath()); - return TEST_CONF_FILE; + String message = "This test case overrides default configuration with "; + if(currentTestType == TestType.FUSE_ALL){ + System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath()); + return TEST_CONF_FILE_FUSE_ALL; + } else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){ + System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath()); + return TEST_CONF_FILE_FUSE_NO_REDUNDANCY; + } else { + System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath()); + return TEST_CONF_FILE_DEFAULT; + } } }
