You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2018/03/24 08:31:45 UTC

[3/5] systemml git commit: [SYSTEMML-2191] Cleanup exception hierarchy and handling, part 2

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/context/SparkExecutionContext.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/context/SparkExecutionContext.java b/src/main/java/org/apache/sysml/runtime/controlprogram/context/SparkExecutionContext.java
index fb268d4..f898f28 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/context/SparkExecutionContext.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/context/SparkExecutionContext.java
@@ -287,13 +287,11 @@ public class SparkExecutionContext extends ExecutionContext
 	 *
 	 * @param varname variable name
 	 * @return JavaPairRDD of MatrixIndexes-MatrixBlocks
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	@SuppressWarnings("unchecked")
-	public JavaPairRDD<MatrixIndexes,MatrixBlock> getBinaryBlockRDDHandleForVariable( String varname )
-		throws DMLRuntimeException
-	{
-		return (JavaPairRDD<MatrixIndexes,MatrixBlock>) getRDDHandleForVariable( varname, InputInfo.BinaryBlockInputInfo);
+	public JavaPairRDD<MatrixIndexes,MatrixBlock> getBinaryBlockRDDHandleForVariable( String varname ) {
+		return (JavaPairRDD<MatrixIndexes,MatrixBlock>)
+			getRDDHandleForVariable( varname, InputInfo.BinaryBlockInputInfo);
 	}
 
 	/**
@@ -302,19 +300,15 @@ public class SparkExecutionContext extends ExecutionContext
 	 *
 	 * @param varname variable name
 	 * @return JavaPairRDD of Longs-FrameBlocks
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	@SuppressWarnings("unchecked")
-	public JavaPairRDD<Long,FrameBlock> getFrameBinaryBlockRDDHandleForVariable( String varname )
-		throws DMLRuntimeException
-	{
-		JavaPairRDD<Long,FrameBlock> out = (JavaPairRDD<Long,FrameBlock>) getRDDHandleForVariable( varname, InputInfo.BinaryBlockInputInfo);
+	public JavaPairRDD<Long,FrameBlock> getFrameBinaryBlockRDDHandleForVariable( String varname ) {
+		JavaPairRDD<Long,FrameBlock> out = (JavaPairRDD<Long,FrameBlock>)
+			getRDDHandleForVariable( varname, InputInfo.BinaryBlockInputInfo);
 		return out;
 	}
 
-	public JavaPairRDD<?,?> getRDDHandleForVariable( String varname, InputInfo inputInfo )
-		throws DMLRuntimeException
-	{
+	public JavaPairRDD<?,?> getRDDHandleForVariable( String varname, InputInfo inputInfo ) {
 		Data dat = getVariable(varname);
 		if( dat instanceof MatrixObject ) {
 			MatrixObject mo = getMatrixObject(varname);
@@ -336,12 +330,9 @@ public class SparkExecutionContext extends ExecutionContext
 	 * @param mo matrix object
 	 * @param inputInfo input info
 	 * @return JavaPairRDD handle for a matrix object
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	@SuppressWarnings("unchecked")
-	public JavaPairRDD<?,?> getRDDHandleForMatrixObject( MatrixObject mo, InputInfo inputInfo )
-		throws DMLRuntimeException
-	{
+	public JavaPairRDD<?,?> getRDDHandleForMatrixObject( MatrixObject mo, InputInfo inputInfo ) {
 		//NOTE: MB this logic should be integrated into MatrixObject
 		//However, for now we cannot assume that spark libraries are
 		//always available and hence only store generic references in
@@ -425,11 +416,9 @@ public class SparkExecutionContext extends ExecutionContext
 	 * @param fo frame object
 	 * @param inputInfo input info
 	 * @return JavaPairRDD handle for a frame object
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	@SuppressWarnings("unchecked")
 	public JavaPairRDD<?,?> getRDDHandleForFrameObject( FrameObject fo, InputInfo inputInfo )
-		throws DMLRuntimeException
 	{
 		//NOTE: MB this logic should be integrated into FrameObject
 		//However, for now we cannot assume that spark libraries are
@@ -511,7 +500,6 @@ public class SparkExecutionContext extends ExecutionContext
 	
 	@SuppressWarnings("unchecked")
 	public PartitionedBroadcast<MatrixBlock> getBroadcastForVariable( String varname )
-		throws DMLRuntimeException
 	{
 		//NOTE: The memory consumption of this method is the in-memory size of the 
 		//matrix object plus the partitioned size in 1k-1k blocks. Since the call
@@ -589,7 +577,6 @@ public class SparkExecutionContext extends ExecutionContext
 
 	@SuppressWarnings("unchecked")
 	public PartitionedBroadcast<FrameBlock> getBroadcastForFrameVariable( String varname)
-		throws DMLRuntimeException
 	{
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
 
@@ -663,11 +650,8 @@ public class SparkExecutionContext extends ExecutionContext
 	 *
 	 * @param varname variable name
 	 * @param rdd JavaPairRDD handle for variable
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public void setRDDHandleForVariable(String varname, JavaPairRDD<?,?> rdd)
-		throws DMLRuntimeException
-	{
+	public void setRDDHandleForVariable(String varname, JavaPairRDD<?,?> rdd) {
 		CacheableData<?> obj = getCacheableData(varname);
 		RDDObject rddhandle = new RDDObject(rdd);
 		obj.setRDDHandle( rddhandle );
@@ -681,11 +665,8 @@ public class SparkExecutionContext extends ExecutionContext
 	 * @param brlen block row length
 	 * @param bclen block column length
 	 * @return JavaPairRDD handle to matrix block
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public static JavaPairRDD<MatrixIndexes,MatrixBlock> toMatrixJavaPairRDD(JavaSparkContext sc, MatrixBlock src, int brlen, int bclen)
-		throws DMLRuntimeException
-	{
+	public static JavaPairRDD<MatrixIndexes,MatrixBlock> toMatrixJavaPairRDD(JavaSparkContext sc, MatrixBlock src, int brlen, int bclen) {
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
 		List<Tuple2<MatrixIndexes,MatrixBlock>> list = null;
 
@@ -731,9 +712,7 @@ public class SparkExecutionContext extends ExecutionContext
 		}
 	}
 
-	public static JavaPairRDD<Long,FrameBlock> toFrameJavaPairRDD(JavaSparkContext sc, FrameBlock src)
-		throws DMLRuntimeException
-	{
+	public static JavaPairRDD<Long,FrameBlock> toFrameJavaPairRDD(JavaSparkContext sc, FrameBlock src) {
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
 		LinkedList<Tuple2<Long,FrameBlock>> list = new LinkedList<>();
 
@@ -774,12 +753,9 @@ public class SparkExecutionContext extends ExecutionContext
 	 * @param bclen number of columns in a block
 	 * @param nnz number of non-zeros
 	 * @return matrix block
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	@SuppressWarnings("unchecked")
-	public static MatrixBlock toMatrixBlock(RDDObject rdd, int rlen, int clen, int brlen, int bclen, long nnz)
-		throws DMLRuntimeException
-	{
+	public static MatrixBlock toMatrixBlock(RDDObject rdd, int rlen, int clen, int brlen, int bclen, long nnz) {
 		return toMatrixBlock(
 				(JavaPairRDD<MatrixIndexes, MatrixBlock>) rdd.getRDD(),
 				rlen, clen, brlen, bclen, nnz);
@@ -799,12 +775,8 @@ public class SparkExecutionContext extends ExecutionContext
 	 * @param bclen number of columns in a block
 	 * @param nnz number of non-zeros
 	 * @return matrix block
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public static MatrixBlock toMatrixBlock(JavaPairRDD<MatrixIndexes,MatrixBlock> rdd, int rlen, int clen, int brlen, int bclen, long nnz)
-		throws DMLRuntimeException
-	{
-
+	public static MatrixBlock toMatrixBlock(JavaPairRDD<MatrixIndexes,MatrixBlock> rdd, int rlen, int clen, int brlen, int bclen, long nnz) {
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
 
 		MatrixBlock out = null;
@@ -883,9 +855,7 @@ public class SparkExecutionContext extends ExecutionContext
 	}
 
 	@SuppressWarnings("unchecked")
-	public static MatrixBlock toMatrixBlock(RDDObject rdd, int rlen, int clen, long nnz)
-		throws DMLRuntimeException
-	{
+	public static MatrixBlock toMatrixBlock(RDDObject rdd, int rlen, int clen, long nnz) {
 		return toMatrixBlock(
 				(JavaPairRDD<MatrixIndexes, MatrixCell>) rdd.getRDD(),
 				rlen, clen, nnz);
@@ -900,10 +870,8 @@ public class SparkExecutionContext extends ExecutionContext
 	 * @param clen number of columns
 	 * @param nnz number of non-zeros
 	 * @return matrix block
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	public static MatrixBlock toMatrixBlock(JavaPairRDD<MatrixIndexes, MatrixCell> rdd, int rlen, int clen, long nnz)
-		throws DMLRuntimeException
 	{
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
 
@@ -945,7 +913,6 @@ public class SparkExecutionContext extends ExecutionContext
 	}
 
 	public static PartitionedBlock<MatrixBlock> toPartitionedMatrixBlock(JavaPairRDD<MatrixIndexes,MatrixBlock> rdd, int rlen, int clen, int brlen, int bclen, long nnz)
-		throws DMLRuntimeException
 	{
 
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
@@ -971,16 +938,12 @@ public class SparkExecutionContext extends ExecutionContext
 	}
 
 	@SuppressWarnings("unchecked")
-	public static FrameBlock toFrameBlock(RDDObject rdd, ValueType[] schema, int rlen, int clen)
-		throws DMLRuntimeException
-	{
+	public static FrameBlock toFrameBlock(RDDObject rdd, ValueType[] schema, int rlen, int clen) {
 		JavaPairRDD<Long,FrameBlock> lrdd = (JavaPairRDD<Long,FrameBlock>) rdd.getRDD();
 		return toFrameBlock(lrdd, schema, rlen, clen);
 	}
 
-	public static FrameBlock toFrameBlock(JavaPairRDD<Long,FrameBlock> rdd, ValueType[] schema, int rlen, int clen)
-		throws DMLRuntimeException
-	{
+	public static FrameBlock toFrameBlock(JavaPairRDD<Long,FrameBlock> rdd, ValueType[] schema, int rlen, int clen) {
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
 
 		if(schema == null)
@@ -1062,14 +1025,10 @@ public class SparkExecutionContext extends ExecutionContext
 	 *
 	 * @param varParent parent variable
 	 * @param varChild child variable
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public void addLineageRDD(String varParent, String varChild)
-		throws DMLRuntimeException
-	{
+	public void addLineageRDD(String varParent, String varChild) {
 		RDDObject parent = getCacheableData(varParent).getRDDHandle();
 		RDDObject child = getCacheableData(varChild).getRDDHandle();
-
 		parent.addLineageChild( child );
 	}
 
@@ -1078,20 +1037,14 @@ public class SparkExecutionContext extends ExecutionContext
 	 *
 	 * @param varParent parent variable
 	 * @param varChild child variable
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public void addLineageBroadcast(String varParent, String varChild)
-		throws DMLRuntimeException
-	{
+	public void addLineageBroadcast(String varParent, String varChild) {
 		RDDObject parent = getCacheableData(varParent).getRDDHandle();
 		BroadcastObject<?> child = getCacheableData(varChild).getBroadcastHandle();
-
 		parent.addLineageChild( child );
 	}
 
-	public void addLineage(String varParent, String varChild, boolean broadcast)
-		throws DMLRuntimeException
-	{
+	public void addLineage(String varParent, String varChild, boolean broadcast) {
 		if( broadcast )
 			addLineageBroadcast(varParent, varChild);
 		else
@@ -1100,7 +1053,6 @@ public class SparkExecutionContext extends ExecutionContext
 
 	@Override
 	public void cleanupCacheableData( CacheableData<?> mo )
-		throws DMLRuntimeException
 	{
 		//NOTE: this method overwrites the default behavior of cleanupMatrixObject
 		//and hence is transparently used by rmvar instructions and other users. The
@@ -1215,9 +1167,7 @@ public class SparkExecutionContext extends ExecutionContext
 	}
 
 	@SuppressWarnings("unchecked")
-	public void repartitionAndCacheMatrixObject( String var )
-		throws DMLRuntimeException
-	{
+	public void repartitionAndCacheMatrixObject( String var ) {
 		MatrixObject mo = getMatrixObject(var);
 		MatrixCharacteristics mcIn = mo.getMatrixCharacteristics();
 
@@ -1264,9 +1214,7 @@ public class SparkExecutionContext extends ExecutionContext
 	}
 
 	@SuppressWarnings("unchecked")
-	public void cacheMatrixObject( String var )
-		throws DMLRuntimeException
-	{
+	public void cacheMatrixObject( String var ) {
 		//get input rdd and default storage level
 		MatrixObject mo = getMatrixObject(var);
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitioner.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitioner.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitioner.java
index 9599993..3d12949 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitioner.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitioner.java
@@ -60,15 +60,11 @@ public abstract class DataPartitioner
 		_n = n;
 	}
 
-	public MatrixObject createPartitionedMatrixObject( MatrixObject in, String fnameNew )
-		throws DMLRuntimeException
-	{
+	public MatrixObject createPartitionedMatrixObject( MatrixObject in, String fnameNew ) {
 		return createPartitionedMatrixObject(in, fnameNew, false);
 	}
 
-	public MatrixObject createPartitionedMatrixObject( MatrixObject in, String fnameNew, boolean force )
-		throws DMLRuntimeException
-	{
+	public MatrixObject createPartitionedMatrixObject( MatrixObject in, String fnameNew, boolean force ) {
 		MatrixObject out = new MatrixObject(in.getValueType(), fnameNew);
 		return createPartitionedMatrixObject(in, out, force);
 	}
@@ -85,11 +81,8 @@ public abstract class DataPartitioner
 	 * @param out output matrix object
 	 * @param force if false, try to optimize
 	 * @return partitioned matrix object
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public MatrixObject createPartitionedMatrixObject( MatrixObject in, MatrixObject out, boolean force )
-		throws DMLRuntimeException
-	{
+	public MatrixObject createPartitionedMatrixObject( MatrixObject in, MatrixObject out, boolean force ) {
 		//check for naive partitioning
 		if( _format == PDataPartitionFormat.NONE )
 			return in;
@@ -172,8 +165,7 @@ public abstract class DataPartitioner
 		_allowBinarycell = false;
 	}
 
-	protected abstract void partitionMatrix( MatrixObject in, String fnameNew, InputInfo ii, OutputInfo oi, long rlen, long clen, int brlen, int bclen )
-		throws DMLRuntimeException;
+	protected abstract void partitionMatrix( MatrixObject in, String fnameNew, InputInfo ii, OutputInfo oi, long rlen, long clen, int brlen, int bclen );
 
 	
 	public static MatrixBlock createReuseMatrixBlock( PDataPartitionFormat dpf, int rows, int cols ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerLocal.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerLocal.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerLocal.java
index cdb5d4d..ecb5ea0 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerLocal.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerLocal.java
@@ -91,23 +91,17 @@ public class DataPartitionerLocal extends DataPartitioner
 	 * @param dpf data partitionformat
 	 * @param n ?
 	 * @param par -1 for serial otherwise number of threads, can be ignored by implementation
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public DataPartitionerLocal(PartitionFormat dpf, int par) 
-		throws DMLRuntimeException 
-	{
+	public DataPartitionerLocal(PartitionFormat dpf, int par) {
 		super(dpf._dpf, dpf._N);
-		
 		if( dpf.isBlockwise() )
 			throw new DMLRuntimeException("Data partitioning formt '"+dpf+"' not supported by DataPartitionerLocal" );
-		
 		_seq = new IDSequence();
 		_par = (par > 0) ? par : 1;
 	}
 	
 	@Override
 	protected void partitionMatrix(MatrixObject in, String fnameNew, InputInfo ii, OutputInfo oi, long rlen, long clen, int brlen, int bclen)
-			throws DMLRuntimeException 
 	{
 		//force writing to disk (typically not required since partitioning only applied if dataset exceeds CP size)
 		in.exportData(); //written to disk iff dirty
@@ -134,7 +128,6 @@ public class DataPartitionerLocal extends DataPartitioner
 	}
 
 	private void partitionTextCell( String fname, String fnameStaging, String fnameNew, long rlen, long clen, int brlen, int bclen ) 
-		throws DMLRuntimeException
 	{
 		long row = -1;
 		long col = -1;
@@ -227,7 +220,6 @@ public class DataPartitionerLocal extends DataPartitioner
 
 	@SuppressWarnings("deprecation")
 	private void partitionBinaryCell( String fname, String fnameStaging, String fnameNew, long rlen, long clen, int brlen, int bclen ) 
-		throws DMLRuntimeException
 	{
 		long row = -1;
 		long col = -1;
@@ -315,7 +307,6 @@ public class DataPartitionerLocal extends DataPartitioner
 
 	@SuppressWarnings("deprecation")
 	private void partitionBinaryBlock( String fname, String fnameStaging, String fnameNew, long rlen, long clen, int brlen, int bclen ) 
-		throws DMLRuntimeException
 	{
 		try 
 		{	
@@ -391,7 +382,6 @@ public class DataPartitionerLocal extends DataPartitioner
 
 	@SuppressWarnings("deprecation")
 	private void partitionBinaryBlock2BinaryCell( String fname, String fnameStaging, String fnameNew, long rlen, long clen, int brlen, int bclen ) 
-		throws DMLRuntimeException
 	{
 		try 
 		{		
@@ -495,7 +485,7 @@ public class DataPartitionerLocal extends DataPartitioner
 	}
 
 	private void appendBlockToStagingArea( String dir, MatrixBlock mb, long row_offset, long col_offset, long brlen, long bclen ) 
-		throws DMLRuntimeException, IOException
+		throws IOException
 	{
 		//NOTE: for temporary block we always create dense representations
 		boolean sparse = mb.isInSparseFormat();
@@ -506,7 +496,7 @@ public class DataPartitionerLocal extends DataPartitioner
 
 		if( _format == PDataPartitionFormat.ROW_WISE ) 
 		{	
-			_reuseBlk.reset( 1, (int)cols, sparse, (int) (cols*sparsity) ); 			
+			_reuseBlk.reset( 1, (int)cols, sparse, (int) (cols*sparsity) );
 			for( int i=0; i<rows; i++ )
 			{
 				String pdir = LocalFileUtils.checkAndCreateStagingDir(dir+"/"+(row_offset+1+i));
@@ -545,7 +535,7 @@ public class DataPartitionerLocal extends DataPartitioner
 	}
 
 	private void appendCellBufferToStagingArea( String dir, LinkedList<Cell> buffer, int brlen, int bclen ) 
-		throws DMLRuntimeException, IOException
+		throws IOException
 	{
 		HashMap<Long,LinkedList<Cell>> sortedBuffer = new HashMap<>();
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteMR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteMR.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteMR.java
index b784ae3..c64c5e9 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteMR.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteMR.java
@@ -69,7 +69,6 @@ public class DataPartitionerRemoteMR extends DataPartitioner
 
 	@Override
 	protected void partitionMatrix(MatrixObject in, String fnameNew, InputInfo ii, OutputInfo oi, long rlen, long clen, int brlen, int bclen)
-			throws DMLRuntimeException 
 	{
 		String jobname = "ParFor-DPMR";
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSpark.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSpark.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSpark.java
index f7b09b1..b09420b 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSpark.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSpark.java
@@ -58,7 +58,6 @@ public class DataPartitionerRemoteSpark extends DataPartitioner
 	@Override
 	@SuppressWarnings("unchecked")
 	protected void partitionMatrix(MatrixObject in, String fnameNew, InputInfo ii, OutputInfo oi, long rlen, long clen, int brlen, int bclen)
-			throws DMLRuntimeException 
 	{
 		String jobname = "ParFor-DPSP";
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSparkMapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSparkMapper.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSparkMapper.java
index ab14ca3..8e62f42 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSparkMapper.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSparkMapper.java
@@ -57,9 +57,7 @@ public class DataPartitionerRemoteSparkMapper extends ParWorker implements PairF
 	private PDataPartitionFormat _dpf;
 	private final long _n;
 	
-	public DataPartitionerRemoteSparkMapper(MatrixCharacteristics mc, InputInfo ii, OutputInfo oi, PDataPartitionFormat dpf, int n) 
-		throws DMLRuntimeException
-	{
+	public DataPartitionerRemoteSparkMapper(MatrixCharacteristics mc, InputInfo ii, OutputInfo oi, PDataPartitionFormat dpf, int n) {
 		_rlen = mc.getRows();
 		_clen = mc.getCols();
 		_brlen = mc.getRowsPerBlock();

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ParWorker.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ParWorker.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ParWorker.java
index cf5cbcf..339fbcc 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ParWorker.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ParWorker.java
@@ -25,7 +25,6 @@ import java.util.List;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sysml.parser.ParForStatementBlock.ResultVar;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
@@ -111,9 +110,7 @@ public abstract class ParWorker
 		}
 	}
 
-	protected void executeTask( Task task ) 
-		throws DMLRuntimeException 
-	{
+	protected void executeTask( Task task ) {
 		LOG.trace("EXECUTE PARFOR_WORKER ID="+_workerID+" for task "+task.toCompactString());
 		
 		switch( task.getType() )
@@ -127,9 +124,7 @@ public abstract class ParWorker
 		}
 	}	
 
-	private void executeSetTask( Task task ) 
-		throws DMLRuntimeException 
-	{
+	private void executeSetTask( Task task ) {
 		//monitoring start
 		Timing time1 = null, time2 = null;
 		if( _monitor )
@@ -169,9 +164,7 @@ public abstract class ParWorker
 		}
 	}
 
-	private void executeRangeTask( Task task ) 
-		throws DMLRuntimeException 
-	{
+	private void executeRangeTask( Task task ) {
 		//monitoring start
 		Timing time1 = null, time2 = null;
 		if( _monitor )

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ProgramConverter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ProgramConverter.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ProgramConverter.java
index d5cd518..1356634 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ProgramConverter.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ProgramConverter.java
@@ -162,10 +162,9 @@ public class ProgramConverter
 	 * @param ec execution context
 	 * @return execution context
 	 * @throws CloneNotSupportedException if CloneNotSupportedException occurs
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	public static ExecutionContext createDeepCopyExecutionContext(ExecutionContext ec) 
-		throws CloneNotSupportedException, DMLRuntimeException 
+		throws CloneNotSupportedException
 	{
 		ExecutionContext cpec = ExecutionContextFactory.createContext(false, ec.getProgram());
 		cpec.setVariables((LocalVariableMap) ec.getVariables().clone());
@@ -210,10 +209,8 @@ public class ProgramConverter
 	 * @param plain if true, full deep copy without id replacement
 	 * @param forceDeepCopy if true, force deep copy
 	 * @return list of program blocks
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	public static ArrayList<ProgramBlock> rcreateDeepCopyProgramBlocks(ArrayList<ProgramBlock> childBlocks, long pid, int IDPrefix, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain, boolean forceDeepCopy) 
-		throws DMLRuntimeException 
 	{
 		ArrayList<ProgramBlock> tmp = new ArrayList<>();
 		
@@ -264,9 +261,7 @@ public class ProgramConverter
 		return tmp;
 	}
 
-	public static WhileProgramBlock createDeepCopyWhileProgramBlock(WhileProgramBlock wpb, long pid, int IDPrefix, Program prog, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain, boolean forceDeepCopy) 
-		throws DMLRuntimeException
-	{
+	public static WhileProgramBlock createDeepCopyWhileProgramBlock(WhileProgramBlock wpb, long pid, int IDPrefix, Program prog, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain, boolean forceDeepCopy) {
 		ArrayList<Instruction> predinst = createDeepCopyInstructionSet(wpb.getPredicate(), pid, IDPrefix, prog, fnStack, fnCreated, plain, true);
 		WhileProgramBlock tmpPB = new WhileProgramBlock(prog, predinst);
 		tmpPB.setStatementBlock( createWhileStatementBlockCopy((WhileStatementBlock) wpb.getStatementBlock(), pid, plain, forceDeepCopy) );
@@ -278,9 +273,7 @@ public class ProgramConverter
 		return tmpPB;
 	}
 
-	public static IfProgramBlock createDeepCopyIfProgramBlock(IfProgramBlock ipb, long pid, int IDPrefix, Program prog, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain, boolean forceDeepCopy) 
-		throws DMLRuntimeException 
-	{
+	public static IfProgramBlock createDeepCopyIfProgramBlock(IfProgramBlock ipb, long pid, int IDPrefix, Program prog, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain, boolean forceDeepCopy) {
 		ArrayList<Instruction> predinst = createDeepCopyInstructionSet(ipb.getPredicate(), pid, IDPrefix, prog, fnStack, fnCreated, plain, true);
 		IfProgramBlock tmpPB = new IfProgramBlock(prog, predinst);
 		tmpPB.setStatementBlock( createIfStatementBlockCopy((IfStatementBlock)ipb.getStatementBlock(), pid, plain, forceDeepCopy ) );
@@ -293,9 +286,7 @@ public class ProgramConverter
 		return tmpPB;
 	}
 
-	public static ForProgramBlock createDeepCopyForProgramBlock(ForProgramBlock fpb, long pid, int IDPrefix, Program prog, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain, boolean forceDeepCopy) 
-		throws DMLRuntimeException
-	{
+	public static ForProgramBlock createDeepCopyForProgramBlock(ForProgramBlock fpb, long pid, int IDPrefix, Program prog, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain, boolean forceDeepCopy) {
 		ForProgramBlock tmpPB = new ForProgramBlock(prog,fpb.getIterVar());
 		tmpPB.setStatementBlock( createForStatementBlockCopy((ForStatementBlock)fpb.getStatementBlock(), pid, plain, forceDeepCopy));
 		tmpPB.setThreadID(pid);
@@ -309,9 +300,7 @@ public class ProgramConverter
 		return tmpPB;
 	}
 
-	public static ForProgramBlock createShallowCopyForProgramBlock(ForProgramBlock fpb, Program prog ) 
-		throws DMLRuntimeException
-	{
+	public static ForProgramBlock createShallowCopyForProgramBlock(ForProgramBlock fpb, Program prog ) {
 		ForProgramBlock tmpPB = new ForProgramBlock(prog,fpb.getIterVar());
 		
 		tmpPB.setFromInstructions( fpb.getFromInstructions() );
@@ -323,9 +312,7 @@ public class ProgramConverter
 		return tmpPB;
 	}
 
-	public static ParForProgramBlock createDeepCopyParForProgramBlock(ParForProgramBlock pfpb, long pid, int IDPrefix, Program prog, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain, boolean forceDeepCopy) 
-		throws DMLRuntimeException
-	{
+	public static ParForProgramBlock createDeepCopyParForProgramBlock(ParForProgramBlock pfpb, long pid, int IDPrefix, Program prog, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain, boolean forceDeepCopy) {
 		ParForProgramBlock tmpPB = null;
 		
 		if( IDPrefix == -1 ) //still on master node
@@ -366,10 +353,8 @@ public class ProgramConverter
 	 * @param fnStack ?
 	 * @param fnCreated ?
 	 * @param plain ?
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	public static void createDeepCopyFunctionProgramBlock(String namespace, String oldName, long pid, int IDPrefix, Program prog, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain) 
-		throws DMLRuntimeException 
 	{
 		//fpb guaranteed to be non-null (checked inside getFunctionProgramBlock)
 		FunctionProgramBlock fpb = prog.getFunctionProgramBlock(namespace, oldName);
@@ -429,7 +414,6 @@ public class ProgramConverter
 	}
 
 	public static FunctionProgramBlock createDeepCopyFunctionProgramBlock(FunctionProgramBlock fpb, HashSet<String> fnStack, HashSet<String> fnCreated) 
-		throws DMLRuntimeException 
 	{
 		if( fpb == null )
 			throw new DMLRuntimeException("Unable to create a deep copy of a non-existing FunctionProgramBlock.");
@@ -468,10 +452,8 @@ public class ProgramConverter
 	 * @param plain ?
 	 * @param cpFunctions ?
 	 * @return list of instructions
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	public static ArrayList<Instruction> createDeepCopyInstructionSet(ArrayList<Instruction> instSet, long pid, int IDPrefix, Program prog, HashSet<String> fnStack, HashSet<String> fnCreated, boolean plain, boolean cpFunctions) 
-		throws DMLRuntimeException
 	{
 		ArrayList<Instruction> tmp = new ArrayList<>();
 		for( Instruction inst : instSet )
@@ -491,7 +473,6 @@ public class ProgramConverter
 	}
 
 	public static Instruction cloneInstruction( Instruction oInst, long pid, boolean plain, boolean cpFunctions ) 
-		throws DMLRuntimeException
 	{
 		Instruction inst = null;
 		String tmpString = oInst.toString();
@@ -536,7 +517,6 @@ public class ProgramConverter
 	}
 
 	public static StatementBlock createStatementBlockCopy( StatementBlock sb, long pid, boolean plain, boolean forceDeepCopy ) 
-		throws DMLRuntimeException
 	{
 		StatementBlock ret = null;
 		
@@ -576,7 +556,6 @@ public class ProgramConverter
 	}
 
 	public static IfStatementBlock createIfStatementBlockCopy( IfStatementBlock sb, long pid, boolean plain, boolean forceDeepCopy ) 
-		throws DMLRuntimeException
 	{
 		IfStatementBlock ret = null;
 		
@@ -617,7 +596,6 @@ public class ProgramConverter
 	}
 
 	public static WhileStatementBlock createWhileStatementBlockCopy( WhileStatementBlock sb, long pid, boolean plain, boolean forceDeepCopy ) 
-		throws DMLRuntimeException
 	{
 		WhileStatementBlock ret = null;
 		
@@ -659,7 +637,6 @@ public class ProgramConverter
 	}
 
 	public static ForStatementBlock createForStatementBlockCopy( ForStatementBlock sb, long pid, boolean plain, boolean forceDeepCopy ) 
-		throws DMLRuntimeException
 	{
 		ForStatementBlock ret = null;
 		
@@ -719,12 +696,11 @@ public class ProgramConverter
 	// SERIALIZATION 
 	////////////////////////////////	
 
-	public static String serializeParForBody( ParForBody body ) throws DMLRuntimeException {
+	public static String serializeParForBody( ParForBody body ) {
 		return serializeParForBody(body, new HashMap<String, byte[]>());
 	}	
 	
 	public static String serializeParForBody( ParForBody body, HashMap<String,byte[]> clsMap ) 
-		throws DMLRuntimeException
 	{
 		ArrayList<ProgramBlock> pbs = body.getChildBlocks();
 		ArrayList<ResultVar> rVnames = body.getResultVariables();
@@ -789,21 +765,16 @@ public class ProgramConverter
 		return sb.toString();
 	}
 
-	private static String serializeProgram( Program prog, ArrayList<ProgramBlock> pbs, HashMap<String, byte[]> clsMap ) 
-		throws DMLRuntimeException
-	{
+	private static String serializeProgram( Program prog, ArrayList<ProgramBlock> pbs, HashMap<String, byte[]> clsMap ) {
 		//note program contains variables, programblocks and function program blocks 
 		//but in order to avoid redundancy, we only serialize function program blocks
-		
 		HashMap<String, FunctionProgramBlock> fpb = prog.getFunctionProgramBlocks();
 		HashSet<String> cand = new HashSet<>();
 		rFindSerializationCandidates(pbs, cand);
-		
 		return rSerializeFunctionProgramBlocks( fpb, cand, clsMap );
 	}
 
 	private static void rFindSerializationCandidates( ArrayList<ProgramBlock> pbs, HashSet<String> cand ) 
-		throws DMLRuntimeException
 	{
 		for( ProgramBlock pb : pbs )
 		{
@@ -844,32 +815,25 @@ public class ProgramConverter
 		}
 	}
 
-	private static String serializeVariables (LocalVariableMap vars) 
-		throws DMLRuntimeException
-	{
+	private static String serializeVariables (LocalVariableMap vars) {
 		StringBuilder sb = new StringBuilder();
 		sb.append( PARFOR_VARS_BEGIN );
 		sb.append( vars.serialize() );
 		sb.append( PARFOR_VARS_END );
-		
 		return sb.toString();
 	}
 
 	public static String serializeDataObject(String key, Data dat) 
-		throws DMLRuntimeException
 	{
 		// SCHEMA: <name>|<datatype>|<valuetype>|value
 		// (scalars are serialize by value, matrices by filename)
-		
 		StringBuilder sb = new StringBuilder();
-	
 		//prepare data for serialization
 		String name = key;
 		DataType datatype = dat.getDataType();
 		ValueType valuetype = dat.getValueType();
 		String value = null;
 		String[] matrixMetaData = null;
-		
 		switch( datatype )
 		{
 			case SCALAR:
@@ -917,14 +881,13 @@ public class ProgramConverter
 		return sb.toString();
 	}
 
-	private static String serializeExecutionContext( ExecutionContext ec ) throws DMLRuntimeException {
+	private static String serializeExecutionContext( ExecutionContext ec ) {
 		return (ec != null) ? serializeVariables( ec.getVariables() ) : EMPTY;
 	}
 
 	@SuppressWarnings("all")
 	private static String serializeInstructions( ArrayList<Instruction> inst, HashMap<String, byte[]> clsMap ) 
-		throws DMLRuntimeException
-	{	
+	{
 		StringBuilder sb = new StringBuilder();
 		int count = 0;
 		for( Instruction linst : inst )
@@ -1078,7 +1041,6 @@ public class ProgramConverter
 	}
 
 	private static String rSerializeFunctionProgramBlocks(HashMap<String,FunctionProgramBlock> pbs, HashSet<String> cand, HashMap<String, byte[]> clsMap) 
-		throws DMLRuntimeException
 	{
 		StringBuilder sb = new StringBuilder();
 		
@@ -1101,9 +1063,7 @@ public class ProgramConverter
 		return sb.toString();
 	}
 
-	private static String rSerializeProgramBlocks(ArrayList<ProgramBlock> pbs, HashMap<String, byte[]> clsMap) 
-		throws DMLRuntimeException
-	{
+	private static String rSerializeProgramBlocks(ArrayList<ProgramBlock> pbs, HashMap<String, byte[]> clsMap) {
 		StringBuilder sb = new StringBuilder();
 		int count = 0;
 		for( ProgramBlock pb : pbs )
@@ -1120,9 +1080,7 @@ public class ProgramConverter
 		return sb.toString();
 	}
 
-	private static String rSerializeProgramBlock( ProgramBlock pb, HashMap<String, byte[]> clsMap ) 
-		throws DMLRuntimeException
-	{
+	private static String rSerializeProgramBlock( ProgramBlock pb, HashMap<String, byte[]> clsMap ) {
 		StringBuilder sb = new StringBuilder();
 		
 		//handle header
@@ -1297,9 +1255,7 @@ public class ProgramConverter
 	// PARSING 
 	////////////////////////////////
 
-	public static ParForBody parseParForBody( String in, int id ) 
-		throws DMLRuntimeException
-	{
+	public static ParForBody parseParForBody( String in, int id ) {
 		ParForBody body = new ParForBody();
 		
 		//header elimination
@@ -1353,9 +1309,7 @@ public class ProgramConverter
 		return body;
 	}
 
-	public static Program parseProgram( String in, int id ) 
-		throws DMLRuntimeException
-	{
+	public static Program parseProgram( String in, int id ) {
 		String lin = in.substring( PARFOR_PROG_BEGIN.length(),in.length()-PARFOR_PROG_END.length()).trim(); 
 		
 		Program prog = new Program();
@@ -1373,9 +1327,7 @@ public class ProgramConverter
 		return prog;
 	}
 
-	private static LocalVariableMap parseVariables(String in) 
-		throws DMLRuntimeException
-	{
+	private static LocalVariableMap parseVariables(String in) {
 		LocalVariableMap ret = null;
 		
 		if( in.length()> PARFOR_VARS_BEGIN.length() + PARFOR_VARS_END.length())
@@ -1391,9 +1343,7 @@ public class ProgramConverter
 		return ret;
 	}
 
-	private static HashMap<String,FunctionProgramBlock> parseFunctionProgramBlocks( String in, Program prog, int id ) 
-		throws DMLRuntimeException
-	{
+	private static HashMap<String,FunctionProgramBlock> parseFunctionProgramBlocks( String in, Program prog, int id ) {
 		HashMap<String,FunctionProgramBlock> ret = new HashMap<>();
 		HierarchyAwareStringTokenizer st = new HierarchyAwareStringTokenizer( in, ELEMENT_DELIM );
 		
@@ -1411,9 +1361,7 @@ public class ProgramConverter
 		return ret;
 	}
 
-	private static ArrayList<ProgramBlock> rParseProgramBlocks(String in, Program prog, int id) 
-		throws DMLRuntimeException
-	{
+	private static ArrayList<ProgramBlock> rParseProgramBlocks(String in, Program prog, int id) {
 		ArrayList<ProgramBlock> pbs = new ArrayList<>();
 		String tmpdata = in.substring(PARFOR_PBS_BEGIN.length(),in.length()-PARFOR_PBS_END.length());
 		HierarchyAwareStringTokenizer st = new HierarchyAwareStringTokenizer(tmpdata, ELEMENT_DELIM);
@@ -1427,9 +1375,7 @@ public class ProgramConverter
 		return pbs;
 	}
 
-	private static ProgramBlock rParseProgramBlock( String in, Program prog, int id )
-		throws DMLRuntimeException
-	{
+	private static ProgramBlock rParseProgramBlock( String in, Program prog, int id ) {
 		ProgramBlock pb = null;
 		
 		if( in.startsWith( PARFOR_PB_WHILE ) )
@@ -1452,9 +1398,7 @@ public class ProgramConverter
 		return pb;
 	}
 
-	private static WhileProgramBlock rParseWhileProgramBlock( String in, Program prog, int id ) 
-		throws DMLRuntimeException
-	{
+	private static WhileProgramBlock rParseWhileProgramBlock( String in, Program prog, int id ) {
 		String lin = in.substring( PARFOR_PB_WHILE.length(),in.length()-PARFOR_PB_END.length()); 
 		HierarchyAwareStringTokenizer st = new HierarchyAwareStringTokenizer(lin, COMPONENTS_DELIM);
 		
@@ -1474,9 +1418,7 @@ public class ProgramConverter
 		return wpb;
 	}
 
-	private static ForProgramBlock rParseForProgramBlock( String in, Program prog, int id ) 
-		throws DMLRuntimeException
-	{
+	private static ForProgramBlock rParseForProgramBlock( String in, Program prog, int id ) {
 		String lin = in.substring( PARFOR_PB_FOR.length(),in.length()-PARFOR_PB_END.length()); 
 		HierarchyAwareStringTokenizer st = new HierarchyAwareStringTokenizer(lin, COMPONENTS_DELIM);
 		
@@ -1504,9 +1446,7 @@ public class ProgramConverter
 		return fpb;
 	}
 
-	private static ParForProgramBlock rParseParForProgramBlock( String in, Program prog, int id ) 
-		throws DMLRuntimeException
-	{
+	private static ParForProgramBlock rParseParForProgramBlock( String in, Program prog, int id ) {
 		String lin = in.substring( PARFOR_PB_PARFOR.length(),in.length()-PARFOR_PB_END.length()); 
 		HierarchyAwareStringTokenizer st = new HierarchyAwareStringTokenizer(lin, COMPONENTS_DELIM);
 		
@@ -1537,9 +1477,7 @@ public class ProgramConverter
 		return pfpb;
 	}
 
-	private static IfProgramBlock rParseIfProgramBlock( String in, Program prog, int id )
-		throws DMLRuntimeException
-	{
+	private static IfProgramBlock rParseIfProgramBlock( String in, Program prog, int id ) {
 		String lin = in.substring( PARFOR_PB_IF.length(),in.length()-PARFOR_PB_END.length());
 		HierarchyAwareStringTokenizer st = new HierarchyAwareStringTokenizer(lin, COMPONENTS_DELIM);
 		
@@ -1561,9 +1499,7 @@ public class ProgramConverter
 		return ipb;
 	}
 
-	private static FunctionProgramBlock rParseFunctionProgramBlock( String in, Program prog, int id )
-		throws DMLRuntimeException
-	{
+	private static FunctionProgramBlock rParseFunctionProgramBlock( String in, Program prog, int id ) {
 		String lin = in.substring( PARFOR_PB_FC.length(),in.length()-PARFOR_PB_END.length());
 		HierarchyAwareStringTokenizer st = new HierarchyAwareStringTokenizer(lin, COMPONENTS_DELIM);
 		
@@ -1586,9 +1522,7 @@ public class ProgramConverter
 		return fpb;
 	}
 
-	private static ExternalFunctionProgramBlock rParseExternalFunctionProgramBlock( String in, Program prog, int id ) 
-		throws DMLRuntimeException
-	{
+	private static ExternalFunctionProgramBlock rParseExternalFunctionProgramBlock( String in, Program prog, int id ) {
 		String lin = in.substring( PARFOR_PB_EFC.length(),in.length()-PARFOR_PB_END.length()); 
 		HierarchyAwareStringTokenizer st = new HierarchyAwareStringTokenizer(lin, COMPONENTS_DELIM);
 		
@@ -1618,9 +1552,7 @@ public class ProgramConverter
 		return efpb;
 	}
 
-	private static ProgramBlock rParseGenericProgramBlock( String in, Program prog, int id ) 
-		throws DMLRuntimeException
-	{
+	private static ProgramBlock rParseGenericProgramBlock( String in, Program prog, int id ) {
 		String lin = in.substring( PARFOR_PB_BEGIN.length(),in.length()-PARFOR_PB_END.length()); 
 		StringTokenizer st = new StringTokenizer(lin,COMPONENTS_DELIM);
 		
@@ -1632,9 +1564,7 @@ public class ProgramConverter
 		return pb;
 	}
 
-	private static ArrayList<Instruction> parseInstructions( String in, int id ) 
-		throws DMLRuntimeException
-	{
+	private static ArrayList<Instruction> parseInstructions( String in, int id ) {
 		ArrayList<Instruction> insts = new ArrayList<>();
 		String lin = in.substring( PARFOR_INST_BEGIN.length(),in.length()-PARFOR_INST_END.length()); 
 		StringTokenizer st = new StringTokenizer(lin, ELEMENT_DELIM);
@@ -1720,11 +1650,8 @@ public class ProgramConverter
 	 * 
 	 * @param in data object as string
 	 * @return array of objects
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public static Object[] parseDataObject(String in) 
-		throws DMLRuntimeException
-	{
+	public static Object[] parseDataObject(String in) {
 		Object[] ret = new Object[2];
 	
 		StringTokenizer st = new StringTokenizer(in, DATA_FIELD_DELIM );
@@ -1787,7 +1714,6 @@ public class ProgramConverter
 	}
 
 	private static ExecutionContext parseExecutionContext(String in, Program prog) 
-		throws DMLRuntimeException
 	{
 		ExecutionContext ec = null;
 		
@@ -1818,10 +1744,8 @@ public class ProgramConverter
 	 * @param pattern ?
 	 * @param replacement string replacement
 	 * @return instruction
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	private static Instruction saveReplaceThreadID( Instruction inst, String pattern, String replacement ) 
-		throws DMLRuntimeException
 	{
 		//currently known, relevant instructions: createvar, rand, seq, extfunct, 
 		if( inst instanceof MRJobInstruction )

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForMR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForMR.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForMR.java
index 800cdb4..b51df84 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForMR.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForMR.java
@@ -72,7 +72,6 @@ public class RemoteDPParForMR
 	public static RemoteParForJobReturn runJob(long pfid, String itervar, String matrixvar, String program, 
 			String resultFile, MatrixObject input, PartitionFormat dpf, OutputInfo oi, boolean tSparseCol, //config params
 			boolean enableCPCaching, int numReducers, int replication)  //opt params
-		throws DMLRuntimeException
 	{
 		RemoteParForJobReturn ret = null;
 		String jobname = "ParFor-DPEMR";
@@ -237,12 +236,11 @@ public class RemoteDPParForMR
 	 * @param job job configuration
 	 * @param fname file name
 	 * @return array of local variable maps
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 * @throws IOException if IOException occurs
 	 */
 	@SuppressWarnings("deprecation")
 	public static LocalVariableMap [] readResultFile( JobConf job, String fname )
-		throws DMLRuntimeException, IOException
+		throws IOException
 	{
 		HashMap<Long,LocalVariableMap> tmp = new HashMap<>();
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForSpark.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForSpark.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForSpark.java
index 4562b06..b12dc88 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForSpark.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForSpark.java
@@ -39,7 +39,6 @@ import org.apache.spark.util.LongAccumulator;
 import scala.Tuple2;
 
 import org.apache.sysml.api.DMLScript;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.ParForProgramBlock.PDataPartitionFormat;
 import org.apache.sysml.runtime.controlprogram.ParForProgramBlock.PartitionFormat;
@@ -73,7 +72,6 @@ public class RemoteDPParForSpark
 	public static RemoteParForJobReturn runJob(long pfid, String itervar, String matrixvar, String program, HashMap<String, byte[]> clsMap,
 			String resultFile, MatrixObject input, ExecutionContext ec, PartitionFormat dpf, OutputInfo oi, 
 			boolean tSparseCol, boolean enableCPCaching, int numReducers ) 
-		throws DMLRuntimeException
 	{
 		String jobname = "ParFor-DPESP";
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;
@@ -124,7 +122,6 @@ public class RemoteDPParForSpark
 	@SuppressWarnings("unchecked")
 	private static JavaPairRDD<Long, Writable> getPartitionedInput(SparkExecutionContext sec, 
 			String matrixvar, OutputInfo oi, PartitionFormat dpf) 
-		throws DMLRuntimeException 
 	{
 		InputInfo ii = InputInfo.BinaryBlockInputInfo;
 		MatrixObject mo = sec.getMatrixObject(matrixvar);

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForSparkWorker.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForSparkWorker.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForSparkWorker.java
index 52ac922..4ab90ae 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForSparkWorker.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteDPParForSparkWorker.java
@@ -73,7 +73,6 @@ public class RemoteDPParForSparkWorker extends ParWorker implements PairFlatMapF
 	public RemoteDPParForSparkWorker(String program, HashMap<String, byte[]> clsMap, String inputVar, String iterVar, 
 			boolean cpCaching, MatrixCharacteristics mc, boolean tSparseCol, PartitionFormat dpf, OutputInfo oinfo, 
 			LongAccumulator atasks, LongAccumulator aiters) 
-		throws DMLRuntimeException
 	{
 		_prog = program;
 		_clsMap = clsMap;
@@ -142,7 +141,7 @@ public class RemoteDPParForSparkWorker extends ParWorker implements PairFlatMapF
 	}
 
 	private void configureWorker( long ID ) 
-		throws DMLRuntimeException, IOException
+		throws IOException
 	{
 		_workerID = ID;
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForMR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForMR.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForMR.java
index b998cba..baec5a2 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForMR.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForMR.java
@@ -69,7 +69,6 @@ public class RemoteParForMR
 
 	public static RemoteParForJobReturn runJob(long pfid, String program, String taskFile, String resultFile, MatrixObject colocatedDPMatrixObj, //inputs
 			                                   boolean enableCPCaching, int numMappers, int replication, int max_retry, long minMem, boolean jvmReuse)  //opt params
-		throws DMLRuntimeException
 	{
 		RemoteParForJobReturn ret = null;
 		String jobname = "ParFor-EMR";
@@ -248,12 +247,11 @@ public class RemoteParForMR
 	 * @param job job configuration
 	 * @param fname file name
 	 * @return array of local variable maps
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 * @throws IOException if IOException occurs
 	 */
 	@SuppressWarnings("deprecation")
 	public static LocalVariableMap [] readResultFile( JobConf job, String fname )
-		throws DMLRuntimeException, IOException
+		throws IOException
 	{
 		HashMap<Long,LocalVariableMap> tmp = new HashMap<>();
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSpark.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSpark.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSpark.java
index 10b44a2..eee65f3 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSpark.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSpark.java
@@ -30,7 +30,6 @@ import org.apache.spark.util.LongAccumulator;
 import scala.Tuple2;
 
 import org.apache.sysml.api.DMLScript;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
 import org.apache.sysml.runtime.controlprogram.context.SparkExecutionContext;
@@ -60,7 +59,6 @@ public class RemoteParForSpark
 	
 	public static RemoteParForJobReturn runJob(long pfid, String prog, HashMap<String, byte[]> clsMap, 
 			List<Task> tasks, ExecutionContext ec, boolean cpCaching, int numMappers) 
-		throws DMLRuntimeException
 	{
 		String jobname = "ParFor-ESP";
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSparkWorker.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSparkWorker.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSparkWorker.java
index 41dc53c..45e3bc7 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSparkWorker.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForSparkWorker.java
@@ -30,7 +30,6 @@ import java.util.stream.Collectors;
 import org.apache.spark.TaskContext;
 import org.apache.spark.api.java.function.PairFlatMapFunction;
 import org.apache.spark.util.LongAccumulator;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.codegen.CodegenUtils;
 import org.apache.sysml.runtime.controlprogram.caching.CacheableData;
 import org.apache.sysml.runtime.controlprogram.parfor.stat.InfrastructureAnalyzer;
@@ -55,15 +54,12 @@ public class RemoteParForSparkWorker extends ParWorker implements PairFlatMapFun
 	private final LongAccumulator _aTasks;
 	private final LongAccumulator _aIters;
 	
-	public RemoteParForSparkWorker(long jobid, String program, HashMap<String, byte[]> clsMap, boolean cpCaching, LongAccumulator atasks, LongAccumulator aiters) 
-		throws DMLRuntimeException
-	{
+	public RemoteParForSparkWorker(long jobid, String program, HashMap<String, byte[]> clsMap, boolean cpCaching, LongAccumulator atasks, LongAccumulator aiters) {
 		_jobid = jobid;
 		_prog = program;
 		_clsMap = clsMap;
 		_initialized = false;
 		_caching = cpCaching;
-		
 		//setup spark accumulators
 		_aTasks = atasks;
 		_aIters = aiters;
@@ -96,7 +92,7 @@ public class RemoteParForSparkWorker extends ParWorker implements PairFlatMapFun
 	}
 	
 	private void configureWorker(long taskID) 
-		throws DMLRuntimeException, IOException
+		throws IOException
 	{
 		_workerID = taskID;
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForUtils.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForUtils.java
index 7c24ae5..e93f0ac 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/RemoteParForUtils.java
@@ -38,7 +38,6 @@ import org.apache.sysml.api.DMLScript;
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.parser.Expression.DataType;
 import org.apache.sysml.parser.ParForStatementBlock.ResultVar;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.ParForProgramBlock;
 import org.apache.sysml.runtime.controlprogram.caching.CacheStatistics;
@@ -90,9 +89,7 @@ public class RemoteParForUtils
 		}
 	}
 
-	public static void exportResultVariables( long workerID, LocalVariableMap vars, ArrayList<ResultVar> resultVars, OutputCollector<Writable, Writable> out ) 
-			throws DMLRuntimeException, IOException
-	{
+	public static void exportResultVariables( long workerID, LocalVariableMap vars, ArrayList<ResultVar> resultVars, OutputCollector<Writable, Writable> out ) throws IOException {
 		exportResultVariables(workerID, vars, resultVars, null, out);
 	}
 	
@@ -103,13 +100,11 @@ public class RemoteParForUtils
 	 * @param vars local variable map
 	 * @param resultVars list of result variables
 	 * @param rvarFnames ?
-	 * @param out output collector
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
+	 * @param out output collectors
 	 * @throws IOException if IOException occurs
 	 */
 	public static void exportResultVariables( long workerID, LocalVariableMap vars, ArrayList<ResultVar> resultVars, 
-			                                  HashMap<String,String> rvarFnames, OutputCollector<Writable, Writable> out ) 
-		throws DMLRuntimeException, IOException
+			HashMap<String,String> rvarFnames, OutputCollector<Writable, Writable> out ) throws IOException
 	{
 		//create key and value for reuse
 		LongWritable okey = new LongWritable( workerID ); 
@@ -159,11 +154,10 @@ public class RemoteParForUtils
 	 * @param vars local variable map
 	 * @param resultVars list of result variables
 	 * @return list of result variables
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 * @throws IOException if IOException occurs
 	 */
 	public static ArrayList<String> exportResultVariables( long workerID, LocalVariableMap vars, ArrayList<ResultVar> resultVars) 
-		throws DMLRuntimeException, IOException
+		throws IOException
 	{
 		ArrayList<String> ret = new ArrayList<>();
 		
@@ -218,7 +212,6 @@ public class RemoteParForUtils
 	}
 	
 	public static LocalVariableMap[] getResults( List<Tuple2<Long,String>> out, Log LOG ) 
-		throws DMLRuntimeException
 	{
 		HashMap<Long,LocalVariableMap> tmp = new HashMap<>();
 
@@ -228,10 +221,10 @@ public class RemoteParForUtils
 			Long key = entry._1();
 			String val = entry._2();
 			if( !tmp.containsKey( key ) )
-        		tmp.put(key, new LocalVariableMap ());	   
+				tmp.put(key, new LocalVariableMap ());	   
 			Object[] dat = ProgramConverter.parseDataObject( val );
-        	tmp.get(key).put((String)dat[0], (Data)dat[1]);
-        	countAll++;
+			tmp.get(key).put((String)dat[0], (Data)dat[1]);
+			countAll++;
 		}
 
 		if( LOG != null ) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMerge.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMerge.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMerge.java
index 7d43475..be87b17 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMerge.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMerge.java
@@ -25,7 +25,6 @@ import java.util.List;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.instructions.InstructionUtils;
 import org.apache.sysml.runtime.matrix.data.DenseBlock;
@@ -71,10 +70,8 @@ public abstract class ResultMerge implements Serializable
 	 * of one input matrix at a time.
 	 * 
 	 * @return output (merged) matrix
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public abstract MatrixObject executeSerialMerge() 
-		throws DMLRuntimeException;
+	public abstract MatrixObject executeSerialMerge();
 	
 	/**
 	 * Merge all given input matrices in parallel into the given output matrix.
@@ -83,10 +80,8 @@ public abstract class ResultMerge implements Serializable
 	 * 
 	 * @param par degree of parallelism
 	 * @return output (merged) matrix
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public abstract MatrixObject executeParallelMerge( int par ) 
-		throws DMLRuntimeException;
+	public abstract MatrixObject executeParallelMerge( int par );
 	
 	/**
 	 * ?
@@ -94,9 +89,8 @@ public abstract class ResultMerge implements Serializable
 	 * @param out initially empty block
 	 * @param in input matrix block
 	 * @param appendOnly ?
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	protected void mergeWithoutComp( MatrixBlock out, MatrixBlock in, boolean appendOnly ) throws DMLRuntimeException {
+	protected void mergeWithoutComp( MatrixBlock out, MatrixBlock in, boolean appendOnly ) {
 		//pass through to matrix block operations
 		if( _isAccum )
 			out.binaryOperationsInPlace(PLUS, in);
@@ -111,10 +105,8 @@ public abstract class ResultMerge implements Serializable
 	 * @param out output matrix block
 	 * @param in input matrix block
 	 * @param compare ?
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	protected void mergeWithComp( MatrixBlock out, MatrixBlock in, DenseBlock compare ) 
-		throws DMLRuntimeException
 	{
 		//Notes for result correctness:
 		// * Always iterate over entire block in order to compare all values 

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalAutomatic.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalAutomatic.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalAutomatic.java
index 135cf9c..aa42753 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalAutomatic.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalAutomatic.java
@@ -21,7 +21,6 @@ package org.apache.sysml.runtime.controlprogram.parfor;
 
 
 import org.apache.sysml.hops.OptimizerUtils;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.controlprogram.parfor.opt.OptimizerRuleBased;
 import org.apache.sysml.runtime.controlprogram.parfor.stat.Timing;
@@ -38,9 +37,7 @@ public class ResultMergeLocalAutomatic extends ResultMerge
 	}
 
 	@Override
-	public MatrixObject executeSerialMerge() 
-		throws DMLRuntimeException 
-	{
+	public MatrixObject executeSerialMerge() {
 		Timing time = new Timing(true);
 		
 		MatrixCharacteristics mc = _output.getMatrixCharacteristics();
@@ -60,9 +57,7 @@ public class ResultMergeLocalAutomatic extends ResultMerge
 	}
 	
 	@Override
-	public MatrixObject executeParallelMerge(int par) 
-		throws DMLRuntimeException 
-	{
+	public MatrixObject executeParallelMerge(int par) {
 		MatrixCharacteristics mc = _output.getMatrixCharacteristics();
 		long rows = mc.getRows();
 		long cols = mc.getCols();

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java
index b2bd267..4f7fac5 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalFile.java
@@ -87,9 +87,7 @@ public class ResultMergeLocalFile extends ResultMerge
 
 
 	@Override
-	public MatrixObject executeSerialMerge() 
-		throws DMLRuntimeException 
-	{
+	public MatrixObject executeSerialMerge() {
 		MatrixObject moNew = null; //always create new matrix object (required for nested parallelism)
 		
 		if( LOG.isTraceEnabled() )
@@ -140,16 +138,12 @@ public class ResultMergeLocalFile extends ResultMerge
 	}
 	
 	@Override
-	public MatrixObject executeParallelMerge(int par) 
-		throws DMLRuntimeException 
-	{
+	public MatrixObject executeParallelMerge(int par) {
 		//graceful degradation to serial merge
 		return executeSerialMerge();
 	}
 
-	private MatrixObject createNewMatrixObject(MatrixObject output, ArrayList<MatrixObject> inMO)
-		throws DMLRuntimeException
-	{
+	private MatrixObject createNewMatrixObject(MatrixObject output, ArrayList<MatrixObject> inMO) {
 		MetaDataFormat metadata = (MetaDataFormat) _output.getMetaData();
 		MatrixObject moNew = new MatrixObject( _output.getValueType(), _outputFName );
 		
@@ -166,7 +160,6 @@ public class ResultMergeLocalFile extends ResultMerge
 	}
 
 	private void merge( String fnameNew, MatrixObject outMo, ArrayList<MatrixObject> inMO ) 
-		throws DMLRuntimeException
 	{
 		OutputInfo oi = ((MetaDataFormat)outMo.getMetaData()).getOutputInfo();
 		boolean withCompare = ( outMo.getNnz() != 0 ); //if nnz exist or unknown (-1)
@@ -195,7 +188,6 @@ public class ResultMergeLocalFile extends ResultMerge
 	}
 
 	private static void mergeTextCellWithoutComp( String fnameNew, MatrixObject outMo, ArrayList<MatrixObject> inMO ) 
-		throws DMLRuntimeException
 	{
 		try
 		{
@@ -262,7 +254,6 @@ public class ResultMergeLocalFile extends ResultMerge
 	}
 
 	private void mergeTextCellWithComp( String fnameNew, MatrixObject outMo, ArrayList<MatrixObject> inMO ) 
-		throws DMLRuntimeException
 	{
 		String fnameStaging = LocalFileUtils.getUniqueWorkingDir(LocalFileUtils.CATEGORY_RESULTMERGE);
 		String fnameStagingCompare = LocalFileUtils.getUniqueWorkingDir(LocalFileUtils.CATEGORY_RESULTMERGE);
@@ -302,7 +293,6 @@ public class ResultMergeLocalFile extends ResultMerge
 
 	@SuppressWarnings("deprecation")
 	private static void mergeBinaryCellWithoutComp( String fnameNew, MatrixObject outMo, ArrayList<MatrixObject> inMO ) 
-		throws DMLRuntimeException
 	{
 		try
 		{	
@@ -362,7 +352,6 @@ public class ResultMergeLocalFile extends ResultMerge
 	}
 
 	private void mergeBinaryCellWithComp( String fnameNew, MatrixObject outMo, ArrayList<MatrixObject> inMO ) 
-		throws DMLRuntimeException
 	{
 		String fnameStaging = LocalFileUtils.getUniqueWorkingDir(LocalFileUtils.CATEGORY_RESULTMERGE);
 		String fnameStagingCompare = LocalFileUtils.getUniqueWorkingDir(LocalFileUtils.CATEGORY_RESULTMERGE);
@@ -401,7 +390,6 @@ public class ResultMergeLocalFile extends ResultMerge
 	}
 
 	private void mergeBinaryBlockWithoutComp( String fnameNew, MatrixObject outMo, ArrayList<MatrixObject> inMO ) 
-		throws DMLRuntimeException
 	{
 		String fnameStaging = LocalFileUtils.getUniqueWorkingDir(LocalFileUtils.CATEGORY_RESULTMERGE);
 		
@@ -431,7 +419,6 @@ public class ResultMergeLocalFile extends ResultMerge
 	}
 
 	private void mergeBinaryBlockWithComp( String fnameNew, MatrixObject outMo, ArrayList<MatrixObject> inMO ) 
-		throws DMLRuntimeException
 	{
 		String fnameStaging = LocalFileUtils.getUniqueWorkingDir(LocalFileUtils.CATEGORY_RESULTMERGE);
 		String fnameStagingCompare = LocalFileUtils.getUniqueWorkingDir(LocalFileUtils.CATEGORY_RESULTMERGE);
@@ -609,7 +596,7 @@ public class ResultMergeLocalFile extends ResultMerge
 	}
 
 	private static void appendCellBufferToStagingArea( String fnameStaging, long ID, LinkedList<Cell> buffer, int brlen, int bclen ) 
-		throws DMLRuntimeException, IOException
+		throws IOException
 	{
 		HashMap<Long,HashMap<Long,LinkedList<Cell>>> sortedBuffer = new HashMap<>();
 		long brow, bcol, row_offset, col_offset;
@@ -975,7 +962,7 @@ public class ResultMergeLocalFile extends ResultMerge
 	}
 
 	private static void copyAllFiles( String fnameNew, ArrayList<MatrixObject> inMO ) 
-		throws DMLRuntimeException, IOException
+		throws IOException
 	{
 		JobConf job = new JobConf(ConfigurationManager.getCachedJobConf());
 		Path path = new Path( fnameNew );

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalMemory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalMemory.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalMemory.java
index 1a74635..e3a2e82 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalMemory.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeLocalMemory.java
@@ -53,7 +53,6 @@ public class ResultMergeLocalMemory extends ResultMerge
 	
 	@Override
 	public MatrixObject executeSerialMerge() 
-		throws DMLRuntimeException
 	{
 		MatrixObject moNew = null; //always create new matrix object (required for nested parallelism)
 		
@@ -142,8 +141,7 @@ public class ResultMergeLocalMemory extends ResultMerge
 	
 	@Override
 	public MatrixObject executeParallelMerge( int par ) 
-		throws DMLRuntimeException
-	{		
+	{
 		MatrixObject moNew = null; //always create new matrix object (required for nested parallelism)
 		
 		if( LOG.isTraceEnabled() )
@@ -225,9 +223,7 @@ public class ResultMergeLocalMemory extends ResultMerge
 		return null;
 	}
 
-	private MatrixObject createNewMatrixObject( MatrixBlock data ) 
-		throws DMLRuntimeException
-	{
+	private MatrixObject createNewMatrixObject( MatrixBlock data ) {
 		ValueType vt = _output.getValueType();
 		MetaDataFormat metadata = (MetaDataFormat) _output.getMetaData();
 		MatrixObject moNew = new MatrixObject( vt, _outputFName );
@@ -246,8 +242,8 @@ public class ResultMergeLocalMemory extends ResultMerge
 		data.examSparsity();
 		
 		//release new output
-		moNew.acquireModify(data);	
-		moNew.release();	
+		moNew.acquireModify(data);
+		moNew.release();
 		
 		return moNew;
 	}
@@ -263,11 +259,8 @@ public class ResultMergeLocalMemory extends ResultMerge
 	 * @param out output matrix block
 	 * @param in input matrix block
 	 * @param appendOnly ?
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	private void merge( MatrixBlock out, MatrixBlock in, boolean appendOnly ) 
-		throws DMLRuntimeException
-	{
+	private void merge( MatrixBlock out, MatrixBlock in, boolean appendOnly ) {
 		if( _compare == null )
 			mergeWithoutComp(out, in, appendOnly);
 		else

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteMR.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteMR.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteMR.java
index c20f0db..0a785fd 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteMR.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteMR.java
@@ -85,16 +85,13 @@ public class ResultMergeRemoteMR extends ResultMerge
 	}
 
 	@Override
-	public MatrixObject executeSerialMerge() 
-		throws DMLRuntimeException 
-	{
+	public MatrixObject executeSerialMerge() {
 		//graceful degradation to parallel merge
 		return executeParallelMerge( _numMappers );
 	}
 	
 	@Override
 	public MatrixObject executeParallelMerge(int par) 
-		throws DMLRuntimeException 
 	{
 		MatrixObject moNew = null; //always create new matrix object (required for nested parallelism)
 		if( LOG.isTraceEnabled() )
@@ -160,7 +157,6 @@ public class ResultMergeRemoteMR extends ResultMerge
 
 	@SuppressWarnings({ "unused", "deprecation" })
 	protected void executeMerge(String fname, String fnameNew, String[] srcFnames, InputInfo ii, OutputInfo oi, long rlen, long clen, int brlen, int bclen)
-			throws DMLRuntimeException 
 	{
 		String jobname = "ParFor-RMMR";
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteReducer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteReducer.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteReducer.java
index 6fa6534..41c6b5c 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteReducer.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteReducer.java
@@ -277,12 +277,12 @@ public class ResultMergeRemoteReducer
 		}
 		
 		@Override
-		public MatrixObject executeParallelMerge(int par) throws DMLRuntimeException {
+		public MatrixObject executeParallelMerge(int par) {
 			throw new DMLRuntimeException("Unsupported operation.");
 		}
 
 		@Override
-		public MatrixObject executeSerialMerge() throws DMLRuntimeException {
+		public MatrixObject executeSerialMerge() {
 			throw new DMLRuntimeException("Unsupported operation.");
 		}
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSpark.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSpark.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSpark.java
index a68c23e..e801dc8 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSpark.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSpark.java
@@ -62,16 +62,13 @@ public class ResultMergeRemoteSpark extends ResultMerge
 	}
 
 	@Override
-	public MatrixObject executeSerialMerge() 
-		throws DMLRuntimeException 
-	{
+	public MatrixObject executeSerialMerge() {
 		//graceful degradation to parallel merge
 		return executeParallelMerge( _numMappers );
 	}
 	
 	@Override
 	public MatrixObject executeParallelMerge(int par) 
-		throws DMLRuntimeException 
 	{
 		MatrixObject moNew = null; //always create new matrix object (required for nested parallelism)
 
@@ -113,7 +110,6 @@ public class ResultMergeRemoteSpark extends ResultMerge
 
 	@SuppressWarnings("unchecked")
 	protected RDDObject executeMerge(MatrixObject compare, MatrixObject[] inputs, long rlen, long clen, int brlen, int bclen)
-		throws DMLRuntimeException 
 	{
 		String jobname = "ParFor-RMSP";
 		long t0 = DMLScript.STATISTICS ? System.nanoTime() : 0;

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSparkWCompare.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSparkWCompare.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSparkWCompare.java
index 9a755b2..82a64c0 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSparkWCompare.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/ResultMergeRemoteSparkWCompare.java
@@ -61,12 +61,12 @@ public class ResultMergeRemoteSparkWCompare extends ResultMerge implements PairF
 	}
 
 	@Override
-	public MatrixObject executeSerialMerge() throws DMLRuntimeException {
+	public MatrixObject executeSerialMerge() {
 		throw new DMLRuntimeException("Unsupported operation.");
 	}
 
 	@Override
-	public MatrixObject executeParallelMerge(int par) throws DMLRuntimeException {
+	public MatrixObject executeParallelMerge(int par) {
 		throw new DMLRuntimeException("Unsupported operation.");
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitioner.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitioner.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitioner.java
index fe8311f..70f7bc9 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitioner.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitioner.java
@@ -21,7 +21,6 @@ package org.apache.sysml.runtime.controlprogram.parfor;
 
 import java.util.List;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.instructions.cp.IntObject;
 
 /**
@@ -60,10 +59,8 @@ public abstract class TaskPartitioner
 	 * Creates and returns set of all tasks for given problem at once.
 	 * 
 	 * @return list of tasks
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public abstract List<Task> createTasks()
-		throws DMLRuntimeException;
+	public abstract List<Task> createTasks();
 	
 	/**
 	 * Creates set of all tasks for given problem, but streams them directly
@@ -72,10 +69,8 @@ public abstract class TaskPartitioner
 	 * 
 	 * @param queue queue of takss
 	 * @return ?
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public abstract long createTasks( LocalTaskQueue<Task> queue )
-		throws DMLRuntimeException;
+	public abstract long createTasks( LocalTaskQueue<Task> queue );
 
 	public long getNumIterations() {
 		return _numIter;

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerFactoring.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerFactoring.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerFactoring.java
index 547e607..6b3f677 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerFactoring.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerFactoring.java
@@ -52,8 +52,7 @@ public class TaskPartitionerFactoring extends TaskPartitioner
 	}
 
 	@Override
-	public List<Task> createTasks() 
-		throws DMLRuntimeException 
+	public List<Task> createTasks()
 	{
 		LinkedList<Task> tasks = new LinkedList<>();
 		long lFrom = _fromVal.getLongValue();
@@ -107,8 +106,7 @@ public class TaskPartitionerFactoring extends TaskPartitioner
 
 	@Override
 	public long createTasks(LocalTaskQueue<Task> queue) 
-		throws DMLRuntimeException 
-	{		
+	{
 		long numCreatedTasks = 0;
 		
 		long lFrom  = _fromVal.getLongValue();

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerFixedsize.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerFixedsize.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerFixedsize.java
index f283b69..bcc8348 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerFixedsize.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/TaskPartitionerFixedsize.java
@@ -44,7 +44,6 @@ public class TaskPartitionerFixedsize extends TaskPartitioner
 
 	@Override
 	public List<Task> createTasks() 
-		throws DMLRuntimeException 
 	{
 		LinkedList<Task> tasks = new LinkedList<>();
 		
@@ -92,7 +91,6 @@ public class TaskPartitionerFixedsize extends TaskPartitioner
 
 	@Override
 	public long createTasks(LocalTaskQueue<Task> queue) 
-		throws DMLRuntimeException 
 	{
 		long numCreatedTasks=0;
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/mqo/RuntimePiggybacking.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/mqo/RuntimePiggybacking.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/mqo/RuntimePiggybacking.java
index bab457b..5f3b04d 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/mqo/RuntimePiggybacking.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/mqo/RuntimePiggybacking.java
@@ -67,20 +67,15 @@ public class RuntimePiggybacking
 	// public interface to runtime piggybacking
 	///////
 
-	public static boolean isActive()
-	{
+	public static boolean isActive() {
 		return _active;
 	}
 
-	public static void start( int par ) 
-		throws DMLRuntimeException
-	{
+	public static void start( int par ) {
 		start( DEFAULT_WORKER_TYPE, par );
 	}
 
-	public static void start( PiggybackingType type, int par ) 
-		throws DMLRuntimeException
-	{
+	public static void start( PiggybackingType type, int par ) {
 		//activate piggybacking server
 		_active = true;
 		
@@ -104,9 +99,7 @@ public class RuntimePiggybacking
 		_worker.start();
 	}
 
-	public static void stop() 
-		throws DMLRuntimeException 
-	{
+	public static void stop() {
 		try
 		{
 			//deactivate piggybacking server
@@ -123,9 +116,7 @@ public class RuntimePiggybacking
 		}
 	}
 
-	public static JobReturn submitJob(MRJobInstruction inst) 
-		throws DMLRuntimeException 
-	{
+	public static JobReturn submitJob(MRJobInstruction inst) {
 		JobReturn ret = null;
 		
 		try

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimator.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimator.java
index 4af7920..2f5392e 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimator.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimator.java
@@ -25,7 +25,6 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import org.apache.sysml.lops.LopProperties.ExecType;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.parfor.opt.OptNode.ParamType;
 
 /**
@@ -63,10 +62,8 @@ public abstract class CostEstimator
 	 * @param measure ?
 	 * @param node internal representation of a plan alternative for program blocks and instructions
 	 * @return estimate?
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public abstract double getLeafNodeEstimate( TestMeasure measure, OptNode node ) 
-		throws DMLRuntimeException;
+	public abstract double getLeafNodeEstimate( TestMeasure measure, OptNode node );
 
 	/**
 	 * Main leaf node estimation method - to be overwritten by specific cost estimators
@@ -75,10 +72,8 @@ public abstract class CostEstimator
 	 * @param node internal representation of a plan alternative for program blocks and instructions
 	 * @param et forced execution type for leaf node 
 	 * @return estimate?
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public abstract double getLeafNodeEstimate( TestMeasure measure, OptNode node, ExecType et ) 
-		throws DMLRuntimeException;
+	public abstract double getLeafNodeEstimate( TestMeasure measure, OptNode node, ExecType et );
 	
 	
 	/////////
@@ -92,22 +87,16 @@ public abstract class CostEstimator
 	 * @param node internal representation of a plan alternative for program blocks and instructions
 	 * @param inclCondPart including conditional partitioning
 	 * @return estimate?
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public double getEstimate( TestMeasure measure, OptNode node ) 
-		throws DMLRuntimeException
-	{
+	public double getEstimate( TestMeasure measure, OptNode node ) {
 		return getEstimate(measure, node, null);
 	}
 	
-	public double getEstimate( TestMeasure measure, OptNode node, boolean inclCondPart ) 
-		throws DMLRuntimeException
-	{
+	public double getEstimate( TestMeasure measure, OptNode node, boolean inclCondPart ) {
 		//temporarily change local flag and get estimate
 		boolean oldInclCondPart = _inclCondPart;
 		_inclCondPart = inclCondPart; 
 		double val = getEstimate(measure, node, null);
-		
 		//reset local flag and return
 		_inclCondPart = oldInclCondPart;
 		return val;
@@ -120,11 +109,8 @@ public abstract class CostEstimator
 	 * @param node plan opt tree node
 	 * @param et execution type
 	 * @return estimate
-	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public double getEstimate( TestMeasure measure, OptNode node, ExecType et ) 
-		throws DMLRuntimeException
-	{
+	public double getEstimate( TestMeasure measure, OptNode node, ExecType et ) {
 		double val = -1;
 		
 		if( node.isLeaf() )
@@ -212,27 +198,21 @@ public abstract class CostEstimator
 		return -1;
 	}
 
-	protected double getMaxEstimate( TestMeasure measure, ArrayList<OptNode> nodes, ExecType et ) 
-		throws DMLRuntimeException
-	{
+	protected double getMaxEstimate( TestMeasure measure, ArrayList<OptNode> nodes, ExecType et ) {
 		double max = Double.MIN_VALUE; //smallest positive value
 		for( OptNode n : nodes )
 			max = Math.max(max, getEstimate(measure, n, et));
 		return max;
 	}
 
-	protected double getSumEstimate( TestMeasure measure, ArrayList<OptNode> nodes, ExecType et ) 
-		throws DMLRuntimeException
-	{
+	protected double getSumEstimate( TestMeasure measure, ArrayList<OptNode> nodes, ExecType et ) {
 		double sum = 0;
 		for( OptNode n : nodes )
 			sum += getEstimate( measure, n, et );
-		return sum;	
+		return sum;
 	}
 
-	protected double getWeightedEstimate( TestMeasure measure, ArrayList<OptNode> nodes, ExecType et ) 
-		throws DMLRuntimeException 
-	{
+	protected double getWeightedEstimate( TestMeasure measure, ArrayList<OptNode> nodes, ExecType et ) {
 		double ret = 0;
 		int len = nodes.size();
 		for( OptNode n : nodes )

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimatorHops.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimatorHops.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimatorHops.java
index 9646b09..55d9c0c 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimatorHops.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimatorHops.java
@@ -48,7 +48,6 @@ public class CostEstimatorHops extends CostEstimator
 
 	@Override
 	public double getLeafNodeEstimate(TestMeasure measure, OptNode node)
-		throws DMLRuntimeException 
 	{
 		if( node.getNodeType() != NodeType.HOP )
 			return 0; //generic optnode but no childs (e.g., PB for rmvar inst)
@@ -111,7 +110,6 @@ public class CostEstimatorHops extends CostEstimator
 
 	@Override
 	public double getLeafNodeEstimate(TestMeasure measure, OptNode node, ExecType et)
-		throws DMLRuntimeException 
 	{
 		if( node.getNodeType() != NodeType.HOP )
 			return 0; //generic optnode but no childs (e.g., PB for rmvar inst)

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimatorRuntime.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimatorRuntime.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimatorRuntime.java
index 442ad48..9a842a7 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimatorRuntime.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/CostEstimatorRuntime.java
@@ -23,7 +23,6 @@ package org.apache.sysml.runtime.controlprogram.parfor.opt;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.hops.cost.CostEstimationWrapper;
 import org.apache.sysml.lops.LopProperties.ExecType;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.LocalVariableMap;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
@@ -52,9 +51,7 @@ public class CostEstimatorRuntime extends CostEstimator
 	}
 	
 	@Override
-	public double getLeafNodeEstimate( TestMeasure measure, OptNode node ) 
-		throws DMLRuntimeException
-	{
+	public double getLeafNodeEstimate( TestMeasure measure, OptNode node ) {
 		//use CostEstimatorHops to get the memory estimate
 		if( measure == TestMeasure.MEMORY_USAGE )
 			return _costMem.getLeafNodeEstimate(measure, node);
@@ -65,9 +62,7 @@ public class CostEstimatorRuntime extends CostEstimator
 	}
 	
 	@Override
-	public double getLeafNodeEstimate( TestMeasure measure, OptNode node, ExecType et ) 
-			throws DMLRuntimeException
-	{
+	public double getLeafNodeEstimate( TestMeasure measure, OptNode node, ExecType et ) {
 		//use CostEstimatorHops to get the memory estimate
 		if( measure == TestMeasure.MEMORY_USAGE )
 			return _costMem.getLeafNodeEstimate(measure, node, et);