systemml git commit: [MINOR][SYSTEMML-2202] Fix MLContext ScriptExecutor javadoc consistency

2018-03-23 Thread mboehm7
Repository: systemml
Updated Branches:
  refs/heads/master 215a1cc6b -> ad41c3a46


[MINOR][SYSTEMML-2202] Fix MLContext ScriptExecutor javadoc consistency

Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/ad41c3a4
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/ad41c3a4
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/ad41c3a4

Branch: refs/heads/master
Commit: ad41c3a4630faa57903a71cf880f3a731bef310e
Parents: 215a1cc
Author: Matthias Boehm 
Authored: Fri Mar 23 22:32:06 2018 -0700
Committer: Matthias Boehm 
Committed: Fri Mar 23 22:32:39 2018 -0700

--
 .../sysml/api/mlcontext/ScriptExecutor.java   | 18 +-
 1 file changed, 1 insertion(+), 17 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/systemml/blob/ad41c3a4/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
--
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java 
b/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
index 26b744b..a405fd9 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
@@ -93,22 +93,7 @@ import org.apache.sysml.utils.Statistics;
  * 
  * 
  * Modifications to these steps can be accomplished by subclassing
- * ScriptExecutor. For example, the following code will turn off the global 
data
- * flow optimization check by subclassing ScriptExecutor and overriding the
- * globalDataFlowOptimization method.
- * 
- *
- * ScriptExecutor scriptExecutor = new ScriptExecutor() {
- * // turn off global data flow optimization check
- * @Override
- * protected void globalDataFlowOptimization() {
- * return;
- * }
- * };
- * ml.execute(script, scriptExecutor);
- * 
- *
- * For more information, please see the {@link #execute} method.
+ * ScriptExecutor. For more information, please see the {@link #execute} 
method.
  */
 public class ScriptExecutor {
 
@@ -307,7 +292,6 @@ public class ScriptExecutor {
 * {@link #constructLops()}
 * {@link #generateRuntimeProgram()}
 * {@link #showExplanation()}
-* {@link #globalDataFlowOptimization()}
 * {@link #countCompiledMRJobsAndSparkInstructions()}
 * {@link #initializeCachingAndScratchSpace()}
 * {@link #cleanupRuntimeProgram()}



[02/10] systemml git commit: [SYSTEMML-2202] Remove global data flow optimizer prototype (level 4)

2018-03-23 Thread mboehm7
[SYSTEMML-2202] Remove global data flow optimizer prototype (level 4)

This patch removes the early prototype of the global data flow
optimizer, which was written for map-reduce and never reached
production-ready status. While the general idea is still viable, we
would need to redesign it from scratch to make it practical and
outperform basic heuristic rewrites.


Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/b3419b09
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/b3419b09
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/b3419b09

Branch: refs/heads/master
Commit: b3419b09fbd5d8a16c2c2f66bc4a1838539be051
Parents: 140f1e1
Author: Matthias Boehm 
Authored: Fri Mar 23 17:52:54 2018 -0700
Committer: Matthias Boehm 
Committed: Fri Mar 23 22:18:24 2018 -0700

--
 pom.xml |   1 -
 .../java/org/apache/sysml/api/DMLScript.java|  10 -
 .../sysml/api/mlcontext/ScriptExecutor.java |  20 -
 .../sysml/hops/globalopt/GDFEnumOptimizer.java  | 568 ---
 .../sysml/hops/globalopt/GlobalOptimizer.java   |  47 --
 .../hops/globalopt/GlobalOptimizerWrapper.java  | 118 
 .../hops/globalopt/InterestingProperties.java   | 115 
 .../sysml/hops/globalopt/MemoStructure.java |  96 
 .../org/apache/sysml/hops/globalopt/Plan.java   | 225 
 .../apache/sysml/hops/globalopt/PlanSet.java| 149 -
 .../sysml/hops/globalopt/RewriteConfig.java |  94 ---
 .../apache/sysml/hops/globalopt/Summary.java| 101 
 .../globalopt/gdfgraph/GDFCrossBlockNode.java   |  95 
 .../sysml/hops/globalopt/gdfgraph/GDFGraph.java |  49 --
 .../hops/globalopt/gdfgraph/GDFLoopNode.java|  66 ---
 .../sysml/hops/globalopt/gdfgraph/GDFNode.java  | 165 --
 .../hops/globalopt/gdfgraph/GraphBuilder.java   | 300 --
 .../gdfresolve/GDFMismatchHeuristic.java|  48 --
 .../GDFMismatchHeuristicBlocksizeOrFirst.java   |  49 --
 .../gdfresolve/GDFMismatchHeuristicFirst.java   |  38 --
 .../gdfresolve/MismatchHeuristicFactory.java|  41 --
 .../java/org/apache/sysml/utils/Explain.java| 116 
 .../functions/gdfo/GDFOLinregCG.java| 171 --
 .../functions/gdfo/GDFOLinregDS.java| 166 --
 .../functions/gdfo/GDFOLinregDSsimpl.java   | 166 --
 .../functions/gdfo/GDFOMMChainLoop.java | 132 -
 .../gdfo/HashInterestingPropertiesTest.java |  96 
 .../integration/mlcontext/MLContextTest.java|  10 +-
 src/test/scripts/functions/gdfo/LinregCG.R  |  57 --
 src/test/scripts/functions/gdfo/LinregCG.dml|  56 --
 src/test/scripts/functions/gdfo/LinregDS.R  |  43 --
 src/test/scripts/functions/gdfo/LinregDS.dml|  39 --
 src/test/scripts/functions/gdfo/LinregDSsimpl.R |  35 --
 .../scripts/functions/gdfo/LinregDSsimpl.dml|  31 -
 src/test/scripts/functions/gdfo/MMChainLoop.R   |  37 --
 src/test/scripts/functions/gdfo/MMChainLoop.dml |  37 --
 .../gdfo/SystemML-config-globalopt.xml  |  26 -
 .../functions/gdfo/ZPackageSuite.java   |  40 --
 38 files changed, 2 insertions(+), 3651 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/systemml/blob/b3419b09/pom.xml
--
diff --git a/pom.xml b/pom.xml
index b79f119..5dfaf11 100644
--- a/pom.xml
+++ b/pom.xml
@@ -442,7 +442,6 @@

**/integration/applications/**/*Suite.java

**/integration/conversion/*Suite.java

**/integration/functions/data/*Suite.java
-   
**/integration/functions/gdfo/*Suite.java

**/integration/functions/sparse/*Suite.java

**/integration/functions/codegenalg/*Suite.java

**/integration/functions/**/*Test*.java

http://git-wip-us.apache.org/repos/asf/systemml/blob/b3419b09/src/main/java/org/apache/sysml/api/DMLScript.java
--
diff --git a/src/main/java/org/apache/sysml/api/DMLScript.java 
b/src/main/java/org/apache/sysml/api/DMLScript.java
index 7a44838..7e5e1f3 100644
--- a/src/main/java/org/apache/sysml/api/DMLScript.java
+++ b/src/main/java/org/apache/sysml/api/DMLScript.java
@@ -64,8 +64,6 @@ import org.apache.sysml.debug.DMLDebuggerException;
 import org.apache.sysml.debug.DMLDebuggerProgramInfo;
 import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.OptimizerUtils;
-import org.apache.sysml.hops.OptimizerUtils.OptimizationLevel;
-import 

[03/10] systemml git commit: [SYSTEMML-2190] Change parser/hops block sizes from long to int

2018-03-23 Thread mboehm7
[SYSTEMML-2190] Change parser/hops block sizes from long to int

This patch refactors the parser and hop data structures to use int
instead of long block sizes for consistency the runtime and avoid
unnecessarily bloated compiler data structures.


Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/2b74a794
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/2b74a794
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/2b74a794

Branch: refs/heads/master
Commit: 2b74a794480f6ee830443c393bbf164fc13676df
Parents: b3419b0
Author: Matthias Boehm 
Authored: Fri Mar 23 19:00:07 2018 -0700
Committer: Matthias Boehm 
Committed: Fri Mar 23 22:18:26 2018 -0700

--
 src/main/java/org/apache/sysml/hops/DataOp.java |  6 +--
 src/main/java/org/apache/sysml/hops/Hop.java| 14 +++
 .../org/apache/sysml/hops/LeftIndexingOp.java   |  9 ++--
 .../sysml/hops/ParameterizedBuiltinOp.java  | 14 +++
 .../apache/sysml/hops/cost/CostEstimator.java   | 20 -
 .../hops/cost/CostEstimatorStaticRuntime.java   | 12 +++---
 .../org/apache/sysml/hops/cost/VarStats.java| 20 -
 .../sysml/hops/rewrite/HopRewriteUtils.java |  8 ++--
 .../RewriteSplitDagDataDependentOperators.java  |  4 +-
 .../rewrite/RewriteSplitDagUnknownCSVRead.java  |  4 +-
 .../java/org/apache/sysml/lops/CSVReBlock.java  | 31 ++
 .../java/org/apache/sysml/lops/ReBlock.java |  9 ++--
 .../sysml/parser/BuiltinFunctionExpression.java | 28 ++---
 .../org/apache/sysml/parser/DataExpression.java |  7 ++--
 .../org/apache/sysml/parser/DataIdentifier.java | 17 +++-
 .../org/apache/sysml/parser/Expression.java | 43 +++-
 .../org/apache/sysml/parser/Identifier.java | 20 -
 .../sysml/parser/RelationalExpression.java  |  8 ++--
 .../context/ExecutionContext.java   | 14 +++
 .../runtime/matrix/MatrixCharacteristics.java   | 12 --
 .../functions/codegen/CPlanComparisonTest.java  |  4 +-
 21 files changed, 134 insertions(+), 170 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/systemml/blob/2b74a794/src/main/java/org/apache/sysml/hops/DataOp.java
--
diff --git a/src/main/java/org/apache/sysml/hops/DataOp.java 
b/src/main/java/org/apache/sysml/hops/DataOp.java
index 01e4878..2495997 100644
--- a/src/main/java/org/apache/sysml/hops/DataOp.java
+++ b/src/main/java/org/apache/sysml/hops/DataOp.java
@@ -80,7 +80,7 @@ public class DataOp extends Hop
 * @param colsPerBlock cols per block
 */
public DataOp(String l, DataType dt, ValueType vt, DataOpTypes dop,
-   String fname, long dim1, long dim2, long nnz, long 
rowsPerBlock, long colsPerBlock) {
+   String fname, long dim1, long dim2, long nnz, int 
rowsPerBlock, int colsPerBlock) {
super(l, dt, vt);
_dataop = dop;

@@ -96,7 +96,7 @@ public class DataOp extends Hop
}
 
public DataOp(String l, DataType dt, ValueType vt, DataOpTypes dop,
-   String fname, long dim1, long dim2, long nnz, 
UpdateType update, long rowsPerBlock, long colsPerBlock) {
+   String fname, long dim1, long dim2, long nnz, 
UpdateType update, int rowsPerBlock, int colsPerBlock) {
this(l, dt, vt, dop, fname, dim1, dim2, nnz, rowsPerBlock, 
colsPerBlock);
setUpdateType(update);
}
@@ -218,7 +218,7 @@ public class DataOp extends Hop
_dataop = type;
}

-   public void setOutputParams(long dim1, long dim2, long nnz, UpdateType 
update, long rowsPerBlock, long colsPerBlock) {
+   public void setOutputParams(long dim1, long dim2, long nnz, UpdateType 
update, int rowsPerBlock, int colsPerBlock) {
setDim1(dim1);
setDim2(dim2);
setNnz(nnz);

http://git-wip-us.apache.org/repos/asf/systemml/blob/2b74a794/src/main/java/org/apache/sysml/hops/Hop.java
--
diff --git a/src/main/java/org/apache/sysml/hops/Hop.java 
b/src/main/java/org/apache/sysml/hops/Hop.java
index 31ccd33..0ced336 100644
--- a/src/main/java/org/apache/sysml/hops/Hop.java
+++ b/src/main/java/org/apache/sysml/hops/Hop.java
@@ -80,8 +80,8 @@ public abstract class Hop implements ParseInfo
protected boolean _visited = false;
protected long _dim1 = -1;
protected long _dim2 = -1;
-   protected long _rows_in_block = -1;
-   protected long _cols_in_block = -1;
+   protected int _rows_in_block = -1;
+   protected int _cols_in_block = -1;
protected long _nnz = -1;

[04/10] systemml git commit: [SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1

2018-03-23 Thread mboehm7
http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/GPUObject.java
--
diff --git 
a/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/GPUObject.java
 
b/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/GPUObject.java
index 538103f..c0a50ec 100644
--- 
a/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/GPUObject.java
+++ 
b/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/GPUObject.java
@@ -30,7 +30,6 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sysml.api.DMLScript;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.controlprogram.caching.CacheException;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.instructions.cp.CPInstruction;
 import org.apache.sysml.runtime.instructions.gpu.GPUInstruction;
@@ -619,24 +618,19 @@ public class GPUObject {
 *
 * @param instName name of the instruction
 * @return true if a copy to host happened, false otherwise
-* @throws CacheException ?
 */
-   public boolean acquireHostRead(String instName) throws CacheException {
+   public boolean acquireHostRead(String instName) throws 
DMLRuntimeException {
boolean copied = false;
-   try {
+   if(LOG.isTraceEnabled()) {
+   LOG.trace("GPU : acquireDeviceModifySparse on " + this 
+ ", GPUContext=" + getGPUContext());
+   }
+   if (isAllocated() && dirty) {
if(LOG.isTraceEnabled()) {
-   LOG.trace("GPU : acquireDeviceModifySparse on " 
+ this + ", GPUContext=" + getGPUContext());
+   LOG.trace("GPU : data is dirty on device, 
copying to host, on " + this + ", GPUContext="
+   + getGPUContext());
}
-   if (isAllocated() && dirty) {
-   if(LOG.isTraceEnabled()) {
-   LOG.trace("GPU : data is dirty on 
device, copying to host, on " + this + ", GPUContext="
-   + getGPUContext());
-   }
-   copyFromDeviceToHost(instName, false);
-   copied = true;
-   }
-   } catch (DMLRuntimeException e) {
-   throw new CacheException(e);
+   copyFromDeviceToHost(instName, false);
+   copied = true;
}
return copied;
}
@@ -699,7 +693,7 @@ public class GPUObject {
timestamp.set(-System.nanoTime());
break;
default:
-   throw new CacheException("The eviction policy 
is not supported:" + evictionPolicy.name());
+   throw new DMLRuntimeException("The eviction 
policy is not supported:" + evictionPolicy.name());
}
}
 
@@ -712,7 +706,7 @@ public class GPUObject {
releaseReadLock();
updateReleaseLocks();
if (!isAllocated())
-   throw new CacheException("Attempting to release an 
input before allocating it");
+   throw new DMLRuntimeException("Attempting to release an 
input before allocating it");
}
 
/**
@@ -728,7 +722,7 @@ public class GPUObject {
// Ideally, we would want to throw CacheException("Attempting 
to release an output that was not acquired via acquireDeviceModify") if 
!isDirty()
dirty = true;
if (!isAllocated())
-   throw new CacheException("Attempting to release an 
output before allocating it");
+   throw new DMLRuntimeException("Attempting to release an 
output before allocating it");
}
 
void allocateDenseMatrixOnDevice() throws DMLRuntimeException {
@@ -764,7 +758,7 @@ public class GPUObject {
setSparseMatrixCudaPointer(tmp);
}
 
-   void deallocateMemoryOnDevice(boolean eager) throws DMLRuntimeException 
{
+   void deallocateMemoryOnDevice(boolean eager) {
if(LOG.isTraceEnabled()) {
LOG.trace("GPU : deallocateMemoryOnDevice, on " + this 
+ ", GPUContext=" + getGPUContext());
}
@@ -779,7 +773,7 @@ public class GPUObject {
resetReadWriteLock();
}
 
-   protected long getSizeOnDevice() throws DMLRuntimeException {
+   protected long getSizeOnDevice() {
long GPUSize = 0;

[09/10] systemml git commit: [SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1

2018-03-23 Thread mboehm7
http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/QuaternaryOp.java
--
diff --git a/src/main/java/org/apache/sysml/hops/QuaternaryOp.java 
b/src/main/java/org/apache/sysml/hops/QuaternaryOp.java
index 6395d6a..947f2ba 100644
--- a/src/main/java/org/apache/sysml/hops/QuaternaryOp.java
+++ b/src/main/java/org/apache/sysml/hops/QuaternaryOp.java
@@ -168,7 +168,7 @@ public class QuaternaryOp extends Hop implements 
MultiThreadedHop
}
 
@Override
-   public void checkArity() throws HopsException {
+   public void checkArity() {
HopsException.check(_input.size() == 3 || _input.size() == 4, 
this,
"should have arity 3 or 4 but has arity %d", 
_input.size());
}
@@ -194,8 +194,7 @@ public class QuaternaryOp extends Hop implements 
MultiThreadedHop

@Override
public Lop constructLops() 
-   throws HopsException, LopsException 
-   {   
+   {
//return already created lops
if( getLops() != null )
return getLops();
@@ -302,7 +301,6 @@ public class QuaternaryOp extends Hop implements 
MultiThreadedHop
}
 
private void constructCPLopsWeightedSquaredLoss(WeightsType wtype) 
-   throws HopsException, LopsException
{
WeightedSquaredLoss wsloss = new WeightedSquaredLoss(
getInput().get(0).constructLops(),
@@ -320,7 +318,7 @@ public class QuaternaryOp extends Hop implements 
MultiThreadedHop
setLops( wsloss );
}
 
-   private Lop constructLeftFactorMRLop(Hop U, Hop V, boolean cacheU, 
double m1Size) throws HopsException, LopsException {
+   private Lop constructLeftFactorMRLop(Hop U, Hop V, boolean cacheU, 
double m1Size) {
Lop lU = null;
if (cacheU) {
// partitioning of U for read through distributed cache
@@ -349,7 +347,7 @@ public class QuaternaryOp extends Hop implements 
MultiThreadedHop
return lU;
}
 
-   private Lop constructRightFactorMRLop(Hop U, Hop V, boolean cacheV, 
double m2Size) throws HopsException, LopsException {
+   private Lop constructRightFactorMRLop(Hop U, Hop V, boolean cacheV, 
double m2Size) {
Lop lV = null;
if (cacheV) {
// partitioning of V for read through distributed cache
@@ -384,7 +382,6 @@ public class QuaternaryOp extends Hop implements 
MultiThreadedHop
}
 
private void constructMRLopsWeightedSquaredLoss(WeightsType wtype) 
-   throws HopsException, LopsException
{
//NOTE: the common case for wsloss are factors U/V with a rank 
of 10s to 100s; the current runtime only
//supports single block outer products (U/V rank <= blocksize, 
i.e., 1000 by default); we enforce this
@@ -484,7 +481,6 @@ public class QuaternaryOp extends Hop implements 
MultiThreadedHop
}
 
private void constructSparkLopsWeightedSquaredLoss(WeightsType wtype) 
-   throws HopsException, LopsException
{
//NOTE: the common case for wsloss are factors U/V with a rank 
of 10s to 100s; the current runtime only
//supports single block outer products (U/V rank <= blocksize, 
i.e., 1000 by default); we enforce this
@@ -533,9 +529,7 @@ public class QuaternaryOp extends Hop implements 
MultiThreadedHop
}
}
 
-   private void constructCPLopsWeightedSigmoid(WSigmoidType wtype) 
-   throws HopsException, LopsException
-   {
+   private void constructCPLopsWeightedSigmoid(WSigmoidType wtype) {
WeightedSigmoid wsig = new WeightedSigmoid(
getInput().get(0).constructLops(),
getInput().get(1).constructLops(),
@@ -551,9 +545,7 @@ public class QuaternaryOp extends Hop implements 
MultiThreadedHop
setLops( wsig );
}
 
-   private void constructMRLopsWeightedSigmoid( WSigmoidType wtype ) 
-   throws HopsException, LopsException
-   {
+   private void constructMRLopsWeightedSigmoid( WSigmoidType wtype ) {
//NOTE: the common case for wsigmoid are factors U/V with a 
rank of 10s to 100s; the current runtime only
//supports single block outer products (U/V rank <= blocksize, 
i.e., 1000 by default); we enforce this
//by applying the hop rewrite for Weighted Sigmoid only if this 
constraint holds. 
@@ -622,7 +614,6 @@ public class QuaternaryOp extends Hop implements 
MultiThreadedHop
}
 
private void constructSparkLopsWeightedSigmoid( WSigmoidType wtype ) 
-   throws HopsException, LopsException
{
   

[10/10] systemml git commit: [SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1

2018-03-23 Thread mboehm7
[SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1

This patch converts the entire DMLException hierarchy to runtime
exceptions to ease the APIs and internal handling, removes unnecessary
exceptions such as the CacheException, and removes unnecessary throws
clauses and their useless java doc.


Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/215a1cc6
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/215a1cc6
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/215a1cc6

Branch: refs/heads/master
Commit: 215a1cc6b36ed1f6db5bf1e77b19c7928150ddec
Parents: 2b74a79
Author: Matthias Boehm 
Authored: Fri Mar 23 22:16:20 2018 -0700
Committer: Matthias Boehm 
Committed: Fri Mar 23 22:18:28 2018 -0700

--
 .../java/org/apache/sysml/api/DMLException.java |  37 ++-
 .../java/org/apache/sysml/api/DMLScript.java|  22 +-
 .../apache/sysml/api/ScriptExecutorUtils.java   |   9 +-
 .../api/mlcontext/MLContextConversionUtil.java  | 260 +--
 .../sysml/api/mlcontext/MLContextUtil.java  |  21 +-
 .../sysml/api/mlcontext/ScriptExecutor.java |   6 +-
 .../java/org/apache/sysml/conf/DMLConfig.java   |  21 +-
 .../sysml/debug/DMLDebuggerFunctions.java   |   6 +-
 .../java/org/apache/sysml/debug/DebugState.java |   3 +-
 .../java/org/apache/sysml/hops/AggBinaryOp.java | 106 +++-
 .../java/org/apache/sysml/hops/AggUnaryOp.java  |  12 +-
 .../java/org/apache/sysml/hops/BinaryOp.java|  33 +--
 .../org/apache/sysml/hops/ConvolutionOp.java|  12 +-
 .../java/org/apache/sysml/hops/DataGenOp.java   |   9 +-
 src/main/java/org/apache/sysml/hops/DataOp.java |   6 +-
 .../java/org/apache/sysml/hops/FunctionOp.java  |   5 +-
 src/main/java/org/apache/sysml/hops/Hop.java|  24 +-
 .../org/apache/sysml/hops/HopsException.java|   6 +-
 .../java/org/apache/sysml/hops/IndexingOp.java  |  10 +-
 .../org/apache/sysml/hops/LeftIndexingOp.java   |  10 +-
 .../java/org/apache/sysml/hops/LiteralOp.java   |  11 +-
 src/main/java/org/apache/sysml/hops/NaryOp.java |  12 +-
 .../org/apache/sysml/hops/OptimizerUtils.java   |  13 +-
 .../sysml/hops/ParameterizedBuiltinOp.java  |  10 +-
 .../org/apache/sysml/hops/QuaternaryOp.java |  35 +--
 .../java/org/apache/sysml/hops/ReorgOp.java |   8 +-
 .../java/org/apache/sysml/hops/TernaryOp.java   |  32 +--
 .../java/org/apache/sysml/hops/UnaryOp.java |  19 +-
 .../sysml/hops/codegen/SpoofCompiler.java   |  34 +--
 .../apache/sysml/hops/codegen/SpoofFusedOp.java |   8 +-
 .../sysml/hops/cost/CostEstimationWrapper.java  |   4 +-
 .../apache/sysml/hops/cost/CostEstimator.java   |  27 +-
 .../hops/cost/CostEstimatorStaticRuntime.java   |  32 +--
 .../sysml/hops/ipa/FunctionCallGraph.java   |   4 +-
 .../sysml/hops/ipa/FunctionCallSizeInfo.java|  12 +-
 .../java/org/apache/sysml/hops/ipa/IPAPass.java |   5 +-
 .../hops/ipa/IPAPassApplyStaticHopRewrites.java |   4 +-
 .../ipa/IPAPassFlagFunctionsRecompileOnce.java  |   1 -
 .../sysml/hops/ipa/IPAPassInlineFunctions.java  |   2 -
 .../ipa/IPAPassPropagateReplaceLiterals.java|  10 +-
 .../ipa/IPAPassRemoveConstantBinaryOps.java |   9 +-
 .../IPAPassRemoveUnnecessaryCheckpoints.java|  17 +-
 .../hops/ipa/IPAPassRemoveUnusedFunctions.java  |   4 +-
 .../sysml/hops/ipa/InterProceduralAnalysis.java |  48 +---
 .../hops/recompile/LiteralReplacement.java  |  22 +-
 .../apache/sysml/hops/recompile/Recompiler.java |  61 +
 .../sysml/hops/rewrite/HopDagValidator.java |   4 +-
 .../sysml/hops/rewrite/HopRewriteRule.java  |  11 +-
 .../sysml/hops/rewrite/HopRewriteUtils.java | 106 ++--
 .../sysml/hops/rewrite/ProgramRewriter.java |  28 +-
 .../RewriteAlgebraicSimplificationDynamic.java  |  66 +
 .../RewriteAlgebraicSimplificationStatic.java   |  37 +--
 .../rewrite/RewriteBlockSizeAndReblock.java |   3 -
 .../RewriteCommonSubexpressionElimination.java  |   8 +-
 .../hops/rewrite/RewriteCompressedReblock.java  |  16 +-
 .../hops/rewrite/RewriteConstantFolding.java|  38 +--
 ...RewriteElementwiseMultChainOptimization.java |   5 +-
 .../rewrite/RewriteForLoopVectorization.java|   9 +-
 .../rewrite/RewriteIndexingVectorization.java   |  24 +-
 .../RewriteInjectSparkLoopCheckpointing.java|   5 +-
 .../RewriteInjectSparkPReadCheckpointing.java   |  10 +-
 .../RewriteMarkLoopVariablesUpdateInPlace.java  |   6 +-
 .../RewriteMatrixMultChainOptimization.java |  10 +-
 .../hops/rewrite/RewriteMergeBlockSequence.java |  12 +-
 .../RewriteRemoveDanglingParentReferences.java  |  13 +-
 .../rewrite/RewriteRemoveEmptyBasicBlocks.java  |   8 +-
 .../RewriteRemovePersistentReadWrite.java   |  17 +-
 .../rewrite/RewriteRemoveReadAfterWrite.java|  11 +-
 .../RewriteRemoveUnnecessaryBranches.java   |   5 +-
 

[01/10] systemml git commit: [SYSTEMML-2202] Remove global data flow optimizer prototype (level 4)

2018-03-23 Thread mboehm7
Repository: systemml
Updated Branches:
  refs/heads/master 140f1e1b7 -> 215a1cc6b


http://git-wip-us.apache.org/repos/asf/systemml/blob/b3419b09/src/main/java/org/apache/sysml/hops/globalopt/gdfresolve/GDFMismatchHeuristicBlocksizeOrFirst.java
--
diff --git 
a/src/main/java/org/apache/sysml/hops/globalopt/gdfresolve/GDFMismatchHeuristicBlocksizeOrFirst.java
 
b/src/main/java/org/apache/sysml/hops/globalopt/gdfresolve/GDFMismatchHeuristicBlocksizeOrFirst.java
deleted file mode 100644
index df40724..000
--- 
a/src/main/java/org/apache/sysml/hops/globalopt/gdfresolve/GDFMismatchHeuristicBlocksizeOrFirst.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.hops.globalopt.gdfresolve;
-
-import org.apache.sysml.hops.globalopt.RewriteConfig;
-
-public class GDFMismatchHeuristicBlocksizeOrFirst extends GDFMismatchHeuristic
-{
-   
-   @Override
-   public String getName(){
-   return "BLOCKSIZE_OR_FIRST";
-   }
-   
-   @Override
-   public boolean resolveMismatch( RewriteConfig currRc, RewriteConfig 
newRc ) 
-   {
-   //check for blocksize mismatch
-   if( currRc.getBlockSize() != newRc.getBlockSize() ) 
-   {
-   //choose the new rewrite config if its blocksize is 
larger than 
-   //the current (intuition: we generally prefer larger 
blocksizes 
-   //because this often enables better physical operators 
with constraints
-   //like ncol(X) <= blocksize)
-   return (currRc.getBlockSize() < newRc.getBlockSize());
-   }
-   
-   //return the current rewrite configuration (first come first 
served)
-   //if the previous check for blocksize mismatch failed
-   return false;
-   }
-}

http://git-wip-us.apache.org/repos/asf/systemml/blob/b3419b09/src/main/java/org/apache/sysml/hops/globalopt/gdfresolve/GDFMismatchHeuristicFirst.java
--
diff --git 
a/src/main/java/org/apache/sysml/hops/globalopt/gdfresolve/GDFMismatchHeuristicFirst.java
 
b/src/main/java/org/apache/sysml/hops/globalopt/gdfresolve/GDFMismatchHeuristicFirst.java
deleted file mode 100644
index a96bc33..000
--- 
a/src/main/java/org/apache/sysml/hops/globalopt/gdfresolve/GDFMismatchHeuristicFirst.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * 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.hops.globalopt.gdfresolve;
-
-import org.apache.sysml.hops.globalopt.RewriteConfig;
-
-public class GDFMismatchHeuristicFirst extends GDFMismatchHeuristic
-{
-   
-   @Override
-   public String getName(){
-   return "FIRST";
-   }
-   
-   @Override
-   public boolean resolveMismatch( RewriteConfig currRc, RewriteConfig 
newRc ) 
-   {
-   //always return the current rewrite configuration (first come 
first served)
-   return false;
-   }
-}

http://git-wip-us.apache.org/repos/asf/systemml/blob/b3419b09/src/main/java/org/apache/sysml/hops/globalopt/gdfresolve/MismatchHeuristicFactory.java
--
diff --git 

[08/10] systemml git commit: [SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1

2018-03-23 Thread mboehm7
http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
--
diff --git 
a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
 
b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
index 89e2146..ae5bda3 100644
--- 
a/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
+++ 
b/src/main/java/org/apache/sysml/hops/rewrite/RewriteAlgebraicSimplificationDynamic.java
@@ -38,7 +38,6 @@ import org.apache.sysml.hops.Hop.OpOp3;
 import org.apache.sysml.hops.Hop.OpOp4;
 import org.apache.sysml.hops.Hop.ParamBuiltinOp;
 import org.apache.sysml.hops.Hop.ReOrgOp;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.IndexingOp;
 import org.apache.sysml.hops.LeftIndexingOp;
 import org.apache.sysml.hops.LiteralOp;
@@ -87,9 +86,7 @@ public class RewriteAlgebraicSimplificationDynamic extends 
HopRewriteRule
private static OpOp2[] LOOKUP_VALID_WUMM_BINARY = new 
OpOp2[]{OpOp2.MULT, OpOp2.POW}; 

@Override
-   public ArrayList rewriteHopDAGs(ArrayList roots, 
ProgramRewriteStatus state) 
-   throws HopsException
-   {
+   public ArrayList rewriteHopDAGs(ArrayList roots, 
ProgramRewriteStatus state) {
if( roots == null )
return roots;
 
@@ -107,9 +104,7 @@ public class RewriteAlgebraicSimplificationDynamic extends 
HopRewriteRule
}
 
@Override
-   public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) 
-   throws HopsException
-   {
+   public Hop rewriteHopDAG(Hop root, ProgramRewriteStatus state) {
if( root == null )
return root;

@@ -133,10 +128,8 @@ public class RewriteAlgebraicSimplificationDynamic extends 
HopRewriteRule
 * 
 * @param hop high-level operator
 * @param descendFirst true if recursively process children first
-* @throws HopsException if HopsException occurs
 */
private void rule_AlgebraicSimplification(Hop hop, boolean 
descendFirst) 
-   throws HopsException 
{
if(hop.isVisited())
return;
@@ -207,7 +200,6 @@ public class RewriteAlgebraicSimplificationDynamic extends 
HopRewriteRule
}

private static Hop removeEmptyRightIndexing(Hop parent, Hop hi, int 
pos) 
-   throws HopsException
{
if( hi instanceof IndexingOp && 
hi.getDataType()==DataType.MATRIX  ) //indexing op
{   
@@ -245,7 +237,6 @@ public class RewriteAlgebraicSimplificationDynamic extends 
HopRewriteRule
}

private static Hop removeEmptyLeftIndexing(Hop parent, Hop hi, int pos) 
-   throws HopsException
{
if( hi instanceof LeftIndexingOp && hi.getDataType() == 
DataType.MATRIX  ) //left indexing op
{
@@ -449,7 +440,7 @@ public class RewriteAlgebraicSimplificationDynamic extends 
HopRewriteRule
return hi;
}

-   private static Hop removeUnnecessaryIfElseOperation(Hop parent, Hop hi, 
int pos) throws HopsException
+   private static Hop removeUnnecessaryIfElseOperation(Hop parent, Hop hi, 
int pos)
{
if( !HopRewriteUtils.isTernary(hi, OpOp3.IFELSE) )
return hi;
@@ -530,9 +521,7 @@ public class RewriteAlgebraicSimplificationDynamic extends 
HopRewriteRule
}
 
@SuppressWarnings("unchecked")
-   private static Hop simplifyColwiseAggregate( Hop parent, Hop hi, int 
pos ) 
-   throws HopsException
-   {
+   private static Hop simplifyColwiseAggregate( Hop parent, Hop hi, int 
pos ) {
if( hi instanceof AggUnaryOp  ) 
{
AggUnaryOp uhi = (AggUnaryOp)hi;
@@ -594,9 +583,7 @@ public class RewriteAlgebraicSimplificationDynamic extends 
HopRewriteRule
}
 
@SuppressWarnings("unchecked")
-   private static Hop simplifyRowwiseAggregate( Hop parent, Hop hi, int 
pos ) 
-   throws HopsException
-   {
+   private static Hop simplifyRowwiseAggregate( Hop parent, Hop hi, int 
pos ) {
if( hi instanceof AggUnaryOp  ) 
{
AggUnaryOp uhi = (AggUnaryOp)hi;
@@ -661,7 +648,6 @@ public class RewriteAlgebraicSimplificationDynamic extends 
HopRewriteRule
}

private static Hop simplifyColSumsMVMult( Hop parent, Hop hi, int pos ) 
-   throws HopsException
{
//colSums(X*Y) -> t(Y) %*% X, if Y col vector; additional 
transpose later
//removed by other rewrite if unnecessary, i.e., if Y==t(Z)
@@ -697,7 

[05/10] systemml git commit: [SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1

2018-03-23 Thread mboehm7
http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/IfStatementBlock.java
--
diff --git a/src/main/java/org/apache/sysml/parser/IfStatementBlock.java 
b/src/main/java/org/apache/sysml/parser/IfStatementBlock.java
index 00295d1..aa9c7b5 100644
--- a/src/main/java/org/apache/sysml/parser/IfStatementBlock.java
+++ b/src/main/java/org/apache/sysml/parser/IfStatementBlock.java
@@ -19,14 +19,12 @@
 
 package org.apache.sysml.parser;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map.Entry;
 
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.recompile.Recompiler;
 import org.apache.sysml.lops.Lop;
 import org.apache.sysml.parser.Expression.DataType;
@@ -40,8 +38,7 @@ public class IfStatementBlock extends StatementBlock

@Override
public VariableSet validate(DMLProgram dmlProg, VariableSet ids, 
HashMap constVars, boolean conditional) 
-   throws LanguageException, ParseException, IOException 
-   {   
+   {
if (_statements.size() > 1){
raiseValidateError("IfStatementBlock should only have 1 
statement (IfStatement)", conditional);
}
@@ -287,8 +284,7 @@ public class IfStatementBlock extends StatementBlock

@Override
public VariableSet initializeforwardLV(VariableSet activeInPassed) 
-   throws LanguageException 
-   {   
+   {
IfStatement ifstmt = (IfStatement)_statements.get(0);
if (_statements.size() > 1){
LOG.error(ifstmt.printErrorLocation() + 
"IfStatementBlock should have only 1 statement (if statement)");
@@ -421,8 +417,7 @@ public class IfStatementBlock extends StatementBlock
 
@Override
public VariableSet initializebackwardLV(VariableSet loPassed) 
-   throws LanguageException
-   {   
+   {
IfStatement ifstmt = (IfStatement)_statements.get(0);
if (_statements.size() > 1){
LOG.error(ifstmt.printErrorLocation() + 
"IfStatementBlock should have only 1 statement (if statement)");
@@ -468,7 +463,7 @@ public class IfStatementBlock extends StatementBlock
}
 
@Override
-   public VariableSet analyze(VariableSet loPassed) throws 
LanguageException{
+   public VariableSet analyze(VariableSet loPassed) {

VariableSet predVars = 
((IfStatement)_statements.get(0)).getConditionalPredicate().variablesRead();

predVars.addVariables(((IfStatement)_statements.get(0)).getConditionalPredicate().variablesUpdated());
@@ -515,7 +510,7 @@ public class IfStatementBlock extends StatementBlock
// materialized hops recompilation flags


-   public boolean updatePredicateRecompilationFlag() throws HopsException {
+   public boolean updatePredicateRecompilationFlag() {
return (_requiresPredicateRecompile =
ConfigurationManager.isDynamicRecompilation()
&& 
Recompiler.requiresRecompilation(getPredicateHops()));

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/ImportStatement.java
--
diff --git a/src/main/java/org/apache/sysml/parser/ImportStatement.java 
b/src/main/java/org/apache/sysml/parser/ImportStatement.java
index 6b892d1..4f2c475 100644
--- a/src/main/java/org/apache/sysml/parser/ImportStatement.java
+++ b/src/main/java/org/apache/sysml/parser/ImportStatement.java
@@ -75,7 +75,7 @@ public class ImportStatement extends Statement

 
@Override
-   public Statement rewriteStatement(String prefix) throws 
LanguageException{
+   public Statement rewriteStatement(String prefix) {
LOG.error(this.printErrorLocation() + "rewriting for inlining 
not supported for ImportStatement");
throw new LanguageException(this.printErrorLocation() + 
"rewriting for inlining not supported for ImportStatement");
}

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java
--
diff --git a/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java 
b/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java
index 09dafc2..97e94c5 100644
--- a/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java
+++ b/src/main/java/org/apache/sysml/parser/IndexedIdentifier.java
@@ -72,8 +72,7 @@ public class IndexedIdentifier extends DataIdentifier
}


[07/10] systemml git commit: [SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1

2018-03-23 Thread mboehm7
http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/Compression.java
--
diff --git a/src/main/java/org/apache/sysml/lops/Compression.java 
b/src/main/java/org/apache/sysml/lops/Compression.java
index 65293ef..b29a235 100644
--- a/src/main/java/org/apache/sysml/lops/Compression.java
+++ b/src/main/java/org/apache/sysml/lops/Compression.java
@@ -38,10 +38,8 @@ public class Compression extends Lop
}
}

-   public Compression(Lop input, DataType dt, ValueType vt, ExecType et) 
-   throws LopsException
-   {
-   super(Lop.Type.Checkpoint, dt, vt); 
+   public Compression(Lop input, DataType dt, ValueType vt, ExecType et) {
+   super(Lop.Type.Checkpoint, dt, vt);
this.addInput(input);
input.addOutput(this);

@@ -60,9 +58,7 @@ public class Compression extends Lop
}

@Override
-   public String getInstructions(String input1, String output) 
-   throws LopsException 
-   {
+   public String getInstructions(String input1, String output) {
StringBuilder sb = new StringBuilder();
sb.append( getExecType() );
sb.append( Lop.OPERAND_DELIMITOR );
@@ -71,7 +67,6 @@ public class Compression extends Lop
sb.append( getInputs().get(0).prepInputOperand(input1));
sb.append( OPERAND_DELIMITOR );
sb.append( prepOutputOperand(output));
-   
return sb.toString();
}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/ConvolutionTransform.java
--
diff --git a/src/main/java/org/apache/sysml/lops/ConvolutionTransform.java 
b/src/main/java/org/apache/sysml/lops/ConvolutionTransform.java
index bfb4758..192adb5 100644
--- a/src/main/java/org/apache/sysml/lops/ConvolutionTransform.java
+++ b/src/main/java/org/apache/sysml/lops/ConvolutionTransform.java
@@ -175,7 +175,7 @@ public class ConvolutionTransform extends Lop
}

@Override
-   public String getInstructions(String input, String bias, String output) 
throws LopsException {
+   public String getInstructions(String input, String bias, String output) 
{
if(operation == OperationTypes.BIAS_ADD || operation == 
OperationTypes.BIAS_MULTIPLY || operation == OperationTypes.RELU_BACKWARD) {
StringBuilder sb = new StringBuilder();
sb.append( getExecType() );
@@ -206,7 +206,7 @@ public class ConvolutionTransform extends Lop
}

@Override
-   public String getInstructions(String input, String C, String HW, String 
output) throws LopsException {
+   public String getInstructions(String input, String C, String HW, String 
output) {
if(operation == OperationTypes.CHANNEL_SUMS) {
StringBuilder sb = new StringBuilder();
sb.append( getExecType() );
@@ -231,7 +231,7 @@ public class ConvolutionTransform extends Lop
}

@Override
-   public String getInstructions(String[] inputs, String output) throws 
LopsException {
+   public String getInstructions(String[] inputs, String output) {
StringBuilder sb = new StringBuilder();
appendOpcode(sb);


http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/Ctable.java
--
diff --git a/src/main/java/org/apache/sysml/lops/Ctable.java 
b/src/main/java/org/apache/sysml/lops/Ctable.java
index 8aac934..ff9c720 100644
--- a/src/main/java/org/apache/sysml/lops/Ctable.java
+++ b/src/main/java/org/apache/sysml/lops/Ctable.java
@@ -128,7 +128,7 @@ public class Ctable extends Lop
}
 
@Override
-   public String getInstructions(String input1, String input2, String 
input3, String output) throws LopsException
+   public String getInstructions(String input1, String input2, String 
input3, String output)
{
StringBuilder sb = new StringBuilder();
sb.append( getExecType() );
@@ -194,7 +194,7 @@ public class Ctable extends Lop
}
 
@Override
-   public String getInstructions(int input_index1, int input_index2, int 
input_index3, int output_index) throws LopsException
+   public String getInstructions(int input_index1, int input_index2, int 
input_index3, int output_index)
{
StringBuilder sb = new StringBuilder();
sb.append( getExecType() );


[06/10] systemml git commit: [SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1

2018-03-23 Thread mboehm7
http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/lops/compile/Dag.java
--
diff --git a/src/main/java/org/apache/sysml/lops/compile/Dag.java 
b/src/main/java/org/apache/sysml/lops/compile/Dag.java
index b777623..f0f74cc 100644
--- a/src/main/java/org/apache/sysml/lops/compile/Dag.java
+++ b/src/main/java/org/apache/sysml/lops/compile/Dag.java
@@ -19,7 +19,6 @@
 
 package org.apache.sysml.lops.compile;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Comparator;
@@ -240,12 +239,8 @@ public class Dag
 * @param sb statement block
 * @param config dml configuration
 * @return list of instructions
-* @throws LopsException if LopsException occurs
-* @throws IOException if IOException occurs
-* @throws DMLRuntimeException if DMLRuntimeException occurs
 */
-   public ArrayList getJobs(StatementBlock sb, DMLConfig 
config)
-   throws LopsException, DMLRuntimeException {
+   public ArrayList getJobs(StatementBlock sb, DMLConfig 
config) {
if (config != null) {
total_reducers = 
config.getIntValue(DMLConfig.NUM_REDUCERS);
scratch = config.getTextValue(DMLConfig.SCRATCH_SPACE) 
+ "/";
@@ -267,9 +262,7 @@ public class Dag
 
}
 
-   private static void deleteUpdatedTransientReadVariables(StatementBlock 
sb, ArrayList nodeV,
-   ArrayList inst) throws DMLRuntimeException 
{
-
+   private static void deleteUpdatedTransientReadVariables(StatementBlock 
sb, ArrayList nodeV, ArrayList inst) {
if ( sb == null ) 
return;

@@ -341,8 +334,7 @@ public class Dag
 
}
  
-   private static void generateRemoveInstructions(StatementBlock sb, 
ArrayList deleteInst)
-   throws DMLRuntimeException {
+   private static void generateRemoveInstructions(StatementBlock sb, 
ArrayList deleteInst) {

if ( sb == null ) 
return;
@@ -350,7 +342,6 @@ public class Dag
if( LOG.isTraceEnabled() )
LOG.trace("In generateRemoveInstructions()");

-
Instruction inst = null;
// RULE 1: if in IN and not in OUT, then there should be an 
rmvar or rmfilevar inst
// (currently required for specific cases of external functions)
@@ -384,9 +375,7 @@ public class Dag
}
}
 
-   private static boolean isCompatible(ArrayList nodes, JobType jt, 
int from, int to) 
-   throws LopsException 
-   {
+   private static boolean isCompatible(ArrayList nodes, JobType jt, 
int from, int to) {
int base = jt.getBase();
for ( Lop node : nodes ) {
if ((node.getCompatibleJobs() & base) == 0) {
@@ -427,7 +416,7 @@ public class Dag
 * Add node, and its relevant children to job-specific node vectors.
 */
private void addNodeByJobType(Lop node, ArrayList arr,
-   ArrayList execNodes, boolean eliminate) throws 
LopsException {
+   ArrayList execNodes, boolean eliminate) {

if (!eliminate) {
// Check if this lop defines a MR job.
@@ -534,11 +523,10 @@ public class Dag
 * @param execNodes list of exec low-level operators
 * @param jobNodes list of job low-level operators
 * @param finishedNodes list of finished low-level operators
-* @throws LopsException if LopsException occurs
 */
private void handleSingleOutputJobs(ArrayList execNodes,
ArrayList jobNodes, ArrayList 
finishedNodes)
-   throws LopsException {
+   {
/*
 * If the input of a MMCJ/MMRJ job (must have executed in a 
Mapper) is used
 * by multiple lops then we should mark it as not-finished.
@@ -635,11 +623,8 @@ public class Dag
 * 
 * @param nodes_v list of nodes
 * @param inst list of instructions
-* @throws LopsException if LopsException occurs
-* @throws IOException if IOException occurs
 */
-   private static void 
generateInstructionsForInputVariables(ArrayList nodes_v, 
ArrayList inst)
-   throws LopsException {
+   private static void 
generateInstructionsForInputVariables(ArrayList nodes_v, 
ArrayList inst) {
for(Lop n : nodes_v) {
if (n.getExecLocation() == ExecLocation.Data && 
!((Data) n).isTransient() 
&& ((Data) n).getOperationType() == 
OperationTypes.READ 
@@ -767,12 +752,8 @@ public class Dag
 

svn commit: r25921 - /dev/systemml/1.1.0-rc2/

2018-03-23 Thread reinwald
Author: reinwald
Date: Fri Mar 23 23:48:37 2018
New Revision: 25921

Log:
Apache SystemML 1.1.0-rc2

Added:
dev/systemml/1.1.0-rc2/
dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz   (with props)
dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz.asc
dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz.sha512
dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip   (with props)
dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip.asc
dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip.sha512
dev/systemml/1.1.0-rc2/systemml-1.1.0-lite.jar   (with props)
dev/systemml/1.1.0-rc2/systemml-1.1.0-python.tar.gz   (with props)
dev/systemml/1.1.0-rc2/systemml-1.1.0-python.tar.gz.asc
dev/systemml/1.1.0-rc2/systemml-1.1.0-python.tar.gz.sha512
dev/systemml/1.1.0-rc2/systemml-1.1.0-src.tgz   (with props)
dev/systemml/1.1.0-rc2/systemml-1.1.0-src.tgz.asc
dev/systemml/1.1.0-rc2/systemml-1.1.0-src.tgz.sha512
dev/systemml/1.1.0-rc2/systemml-1.1.0-src.zip   (with props)
dev/systemml/1.1.0-rc2/systemml-1.1.0-src.zip.asc
dev/systemml/1.1.0-rc2/systemml-1.1.0-src.zip.sha512

Added: dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz
==
Binary file - no diff available.

Propchange: dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz
--
svn:mime-type = application/octet-stream

Added: dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz.asc
==
--- dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz.asc (added)
+++ dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz.asc Fri Mar 23 23:48:37 2018
@@ -0,0 +1,17 @@
+-BEGIN PGP SIGNATURE-
+Comment: GPGTools - https://gpgtools.org
+
+iQIcBAABCgAGBQJatZI3AAoJEGOG/rIi7k//iK4QAKuKFYz22go6SpX2nXraCZs1
+xbArBSewwSvE2AF+YXB2Dx/gPtJLDZiiuupGk+y5LoapohLviVp1yKOgK47DXLiX
+RE9N9OAhBZUbhAs8HfOge9Fm7MWHUqRdqkSw4kFfBhXMRbObyK8U37Ed6Rpvjuwn
+PO5UL1iMVe7uUi2nKZtHvuWuHKvtXjYypEZUJMAt4g/LLNPLkqnGYfZ6/eN+FyWq
+sat/tc2BMmUxauqkVn2oX3qr0geaE8mgK0f8lgDgQEm/E4utLP0vdb2grO8p6QqA
++T00j+CJEbMljgs41TKz3N0/1OmuO+MG3ZUFxR5s5Bs6k1dNSd/DZ0upF+1GzmDu
+XAAtjsIf9lTQmKcA4xDfQQ254pJCOYtlSf8pbw5xmc+uhMsLzEhJkLb4NCogOoW3
+hnkxxYebN/58/3U35Z6Epe2mV49TgcjOPpE1SHr5pmJ7rBPan9HSMmfOKHDDAkok
+lrjBEnjff5mH8nKyqBSQQW9xJAqcoH3VhDECkPlMC2v1y7oi9jTK2pqXZEhtv6Zz
+hDg+vRwIWYKNswe93acgCMi+Opz3nacMpOENwdOzwYMmwx5w15PK/flMcge3tZeD
+RFGS0q5MHT4ScT2shJnMnluvhVku6uQHZ9rnRX9nicnhOF9UaubK6LhCk7vrjlrp
+qw5OQe/VXvxtLjtZ2mQC
+=P8iL
+-END PGP SIGNATURE-

Added: dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz.sha512
==
--- dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz.sha512 (added)
+++ dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.tgz.sha512 Fri Mar 23 23:48:37 
2018
@@ -0,0 +1 @@
+d35a6b7c035f7746c04c0d65a5b5f0ff74a5fcbe88d7cf0cab576353151db7e00cc1bff74e9e96097499ccace32fcd09b4b0f7e9550c9badf0d507af40ca8e00
  systemml-1.1.0-bin.tgz

Added: dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip
==
Binary file - no diff available.

Propchange: dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip
--
svn:mime-type = application/octet-stream

Added: dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip.asc
==
--- dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip.asc (added)
+++ dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip.asc Fri Mar 23 23:48:37 2018
@@ -0,0 +1,17 @@
+-BEGIN PGP SIGNATURE-
+Comment: GPGTools - https://gpgtools.org
+
+iQIcBAABCgAGBQJatZI3AAoJEGOG/rIi7k//3DEQAJVJ7c+YJ/VF6YrvaFz0lTMQ
+FS/Twjqj4rRaBJELOg1cN4cTr9vdWiURtE2Gs22aQ7PdR//EIRoewGf4oHmAYFCs
+Va9we2++JwFt9qepWTVdA5Uq8m3ikhyHr6pC5EHmKTirStjf6k1xa7tPGvIkxgrq
+H3jkscqzwghfW2MNFOqVeMAV4WvWBBApP3wAheEL1gBlZcv8DCU6g2gfMs9WcyQT
+jDIByV+zJtpUy/KBqtZlVITcC7cpk1jghgrkxSlBvQ6+lx8A11TdAR36pCoOTY9q
+p6JMOy4lPRn3q7mLKI9x95JPlukGVPhjT6lHDpwexpstpJZy5dhNO5SBL+Dz4zL2
+Zs9bbXFPkCygj7586/A2dMrWKP7GzGoIStM2L60bsWhyBhvRXWxIl6Q1A8uWebtN
+8/13uq+N6fjdzaXgXZyJJMhYIhfmv+77hEnSf0ba6H/EgOwznIdKpXMRT/hFGkwX
+gP/N5H32YWuVyC5zJCPQ95mfh0Mu0s5c9wCFb6+YXuvNNMWwPPV/FlQZxxWK3ykP
+7tJwvgP7k6ZYIAxVyknGKsmZNYEkQUrbwSkUYEfZ3/wGgKoNsMaiUU3hPKsz20Dg
+8O47aIK/yFTEa/nFKs3VipPy5uPt21mi8D6WvPHDY4/u5uFmBuaJyFhGHDDUmGsR
+ATs23Jonr2YqFY9KDCPQ
+=bgU/
+-END PGP SIGNATURE-

Added: dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip.sha512
==
--- dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip.sha512 (added)
+++ dev/systemml/1.1.0-rc2/systemml-1.1.0-bin.zip.sha512 Fri Mar 23 23:48:37 
2018
@@ -0,0 +1 @@
+dc38b28a33987781ff6fa276b74be16512ce528efdd9cafae796d4515755296185ffee5d2ad3b11970a4cd16bd1778e7147cbabcfb566a1e92adeb777f9b63c2
  

[systemml] Git Push Summary

2018-03-23 Thread reinwald
Repository: systemml
Updated Tags:  refs/tags/v1.1.0-rc2 [created] 6fbe88aea


systemml git commit: [maven-release-plugin] prepare for next development iteration

2018-03-23 Thread reinwald
Repository: systemml
Updated Branches:
  refs/heads/master deddaee1f -> 140f1e1b7


[maven-release-plugin] prepare for next development iteration


Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/140f1e1b
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/140f1e1b
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/140f1e1b

Branch: refs/heads/master
Commit: 140f1e1b759dc3ac62973d066852ad9c44dfa3bf
Parents: deddaee
Author: Berthold Reinwald 
Authored: Fri Mar 23 16:45:46 2018 -0700
Committer: Berthold Reinwald 
Committed: Fri Mar 23 16:45:46 2018 -0700

--
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/systemml/blob/140f1e1b/pom.xml
--
diff --git a/pom.xml b/pom.xml
index ed2cae2..b79f119 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
18

org.apache.systemml
-   1.1.0
+   1.2.0-SNAPSHOT
systemml
jar
SystemML
@@ -39,7 +39,7 @@
scm:git:g...@github.com:apache/systemml

scm:git:https://git-wip-us.apache.org/repos/asf/systemml

https://git-wip-us.apache.org/repos/asf?p=systemml.git
-   v1.1.0-rc2
+   HEAD


JIRA



systemml git commit: [maven-release-plugin] prepare release v1.1.0-rc2

2018-03-23 Thread reinwald
Repository: systemml
Updated Branches:
  refs/heads/master c6a8715ee -> deddaee1f


[maven-release-plugin] prepare release v1.1.0-rc2


Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/deddaee1
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/deddaee1
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/deddaee1

Branch: refs/heads/master
Commit: deddaee1fd3f8e87ff3a4403edf06cdb022ba949
Parents: c6a8715
Author: Berthold Reinwald 
Authored: Fri Mar 23 16:45:32 2018 -0700
Committer: Berthold Reinwald 
Committed: Fri Mar 23 16:45:32 2018 -0700

--
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/systemml/blob/deddaee1/pom.xml
--
diff --git a/pom.xml b/pom.xml
index b79f119..ed2cae2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
18

org.apache.systemml
-   1.2.0-SNAPSHOT
+   1.1.0
systemml
jar
SystemML
@@ -39,7 +39,7 @@
scm:git:g...@github.com:apache/systemml

scm:git:https://git-wip-us.apache.org/repos/asf/systemml

https://git-wip-us.apache.org/repos/asf?p=systemml.git
-   HEAD
+   v1.1.0-rc2


JIRA