use of org.apache.sysml.api.jmlc.Connection in project systemml by apache.
the class FrameIndexingAppendTest method execDMLScriptviaJMLC.
private static ArrayList<String[][]> execDMLScriptviaJMLC(String testname, String[][] F1, String[][] M, boolean modelReuse) throws IOException {
Timing time = new Timing(true);
ArrayList<String[][]> ret = new ArrayList<String[][]>();
// establish connection to SystemML
Connection conn = new Connection();
try {
// prepare input arguments
HashMap<String, String> args = new HashMap<String, String>();
args.put("$TRANSFORM_SPEC1", "{ \"ids\": true ,\"recode\": [ 1, 2] }");
args.put("$TRANSFORM_SPEC2", "{ \"ids\": true ,\"recode\": [ 1] }");
// read and precompile script
String script = conn.readScript(SCRIPT_DIR + TEST_DIR + testname + ".dml");
PreparedScript pstmt = conn.prepareScript(script, args, new String[] { "F1", "M" }, new String[] { "F2" }, false);
if (modelReuse)
pstmt.setFrame("M", M, true);
// execute script multiple times
for (int i = 0; i < nRuns; i++) {
// bind input parameters
if (!modelReuse)
pstmt.setFrame("M", M);
pstmt.setFrame("F1", F1);
// execute script
ResultVariables rs = pstmt.executeScript();
// get output parameter
String[][] Y = rs.getFrame("F2");
// keep result for comparison
ret.add(Y);
}
} catch (Exception ex) {
ex.printStackTrace();
throw new IOException(ex);
} finally {
IOUtilFunctions.closeSilently(conn);
}
System.out.println("JMLC scoring w/ " + nRuns + " runs in " + time.stop() + "ms.");
return ret;
}
use of org.apache.sysml.api.jmlc.Connection in project systemml by apache.
the class FrameTransformTest method execDMLScriptviaJMLC.
private static ArrayList<double[][]> execDMLScriptviaJMLC(String testname, String[][] X, String[][] M, boolean modelReuse) throws IOException {
Timing time = new Timing(true);
ArrayList<double[][]> ret = new ArrayList<double[][]>();
// establish connection to SystemML
Connection conn = new Connection();
try {
// prepare input arguments
HashMap<String, String> args = new HashMap<String, String>();
args.put("$TRANSFORM_SPEC", "{ \"ids\": true ,\"recode\": [ 1, 2, 3] }");
// read and precompile script
String script = conn.readScript(SCRIPT_DIR + TEST_DIR + testname + ".dml");
PreparedScript pstmt = conn.prepareScript(script, args, new String[] { "X", "M" }, new String[] { "Y" }, false);
if (modelReuse)
pstmt.setFrame("M", M, true);
// execute script multiple times
for (int i = 0; i < nRuns; i++) {
// bind input parameters
if (!modelReuse)
pstmt.setFrame("M", M);
pstmt.setFrame("X", X);
// execute script
ResultVariables rs = pstmt.executeScript();
// get output parameter
double[][] Y = rs.getMatrix("Y");
// keep result for comparison
ret.add(Y);
}
} catch (Exception ex) {
ex.printStackTrace();
throw new IOException(ex);
} finally {
IOUtilFunctions.closeSilently(conn);
}
System.out.println("JMLC scoring w/ " + nRuns + " runs in " + time.stop() + "ms.");
return ret;
}
use of org.apache.sysml.api.jmlc.Connection in project systemml by apache.
the class InputToStringTest method testMatrixtoString.
@Test
public void testMatrixtoString() throws DMLException {
try (Connection conn = new Connection()) {
PreparedScript pscript = conn.prepareScript("m = read(\"tmp\", data_type=\"matrix\"); print(toString(m));", new String[] { "m" }, new String[] {});
pscript.setMatrix("m", MatrixBlock.randOperations(7, 3, 1.0, 0, 1, "uniform", 7), false);
pscript.executeScript();
}
}
use of org.apache.sysml.api.jmlc.Connection in project systemml by apache.
the class InputToStringTest method testFrametoString.
@Test
public void testFrametoString() throws DMLException {
try (Connection conn = new Connection()) {
PreparedScript pscript = conn.prepareScript("f = read(\"tmp\", data_type=\"frame\"); print(toString(f));", new String[] { "f" }, new String[] {});
pscript.setFrame("f", DataConverter.convertToFrameBlock(MatrixBlock.randOperations(7, 3, 1.0, 0, 1, "uniform", 7)), false);
pscript.executeScript();
}
}
use of org.apache.sysml.api.jmlc.Connection in project systemml by apache.
the class JMLCClonedPreparedScriptTest method runJMLCClonedTest.
private void runJMLCClonedTest(String script, int num, boolean clone) throws IOException {
int k = InfrastructureAnalyzer.getLocalParallelism();
boolean failed = false;
try (Connection conn = new Connection()) {
DMLScript.STATISTICS = true;
Statistics.reset();
PreparedScript pscript = conn.prepareScript(script, new String[] {}, new String[] { "out" }, false);
ExecutorService pool = Executors.newFixedThreadPool(k);
ArrayList<JMLCTask> tasks = new ArrayList<>();
for (int i = 0; i < num; i++) tasks.add(new JMLCTask(pscript, clone));
List<Future<Double>> taskrets = pool.invokeAll(tasks);
for (Future<Double> ret : taskrets) if (ret.get() != 700)
throw new RuntimeException("wrong results: " + ret.get());
pool.shutdown();
} catch (Exception ex) {
failed = true;
}
// check expected failure
Assert.assertTrue(failed == !clone || k == 1);
}
Aggregations