[SYSTEMML-2191] Cleanup exception hierarchy and handling, part 2

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

Branch: refs/heads/master
Commit: 583f3448031cd3112a6ed16ed54dbd4b59071de8
Parents: ad41c3a
Author: Matthias Boehm <[email protected]>
Authored: Sat Mar 24 01:32:40 2018 -0700
Committer: Matthias Boehm <[email protected]>
Committed: Sat Mar 24 01:32:40 2018 -0700

----------------------------------------------------------------------
 .../org/apache/sysml/hops/ConvolutionOp.java    |   9 +-
 .../org/apache/sysml/hops/OptimizerUtils.java   |   3 +-
 .../sysml/hops/cost/CostEstimationWrapper.java  |   8 +-
 .../sysml/hops/cost/CostEstimatorNumMRJobs.java |  11 +-
 .../apache/sysml/hops/recompile/Recompiler.java |  48 ++---
 .../apache/sysml/lops/runtime/RunMRJobs.java    |  10 +-
 .../org/apache/sysml/parser/DMLTranslator.java  |   5 +-
 .../sysml/runtime/codegen/CodegenUtils.java     |  42 ++--
 .../sysml/runtime/codegen/SpoofCellwise.java    |  46 +----
 .../runtime/codegen/SpoofMultiAggregate.java    |  24 +--
 .../sysml/runtime/codegen/SpoofOperator.java    |  24 +--
 .../runtime/codegen/SpoofOuterProduct.java      |   8 +-
 .../sysml/runtime/codegen/SpoofRowwise.java     |  17 +-
 .../apache/sysml/runtime/compress/ColGroup.java |  15 +-
 .../sysml/runtime/compress/ColGroupDDC.java     |   2 -
 .../sysml/runtime/compress/ColGroupDDC1.java    |  10 +-
 .../sysml/runtime/compress/ColGroupDDC2.java    |   7 +-
 .../sysml/runtime/compress/ColGroupOLE.java     |   5 -
 .../sysml/runtime/compress/ColGroupOffset.java  |   9 +-
 .../sysml/runtime/compress/ColGroupRLE.java     |   7 +-
 .../runtime/compress/ColGroupUncompressed.java  |  24 +--
 .../sysml/runtime/compress/ColGroupValue.java   |  22 +--
 .../runtime/compress/CompressedMatrixBlock.java | 197 ++++++-------------
 .../compress/cocode/PlanningCoCoder.java        |   4 +-
 .../estim/CompressedSizeEstimatorSample.java    |   2 -
 .../compress/estim/SizeEstimatorFactory.java    |   3 +-
 .../ExternalFunctionProgramBlock.java           |  15 +-
 .../ExternalFunctionProgramBlockCP.java         |   7 +-
 .../runtime/controlprogram/ForProgramBlock.java |   5 +-
 .../controlprogram/FunctionProgramBlock.java    |   3 +-
 .../runtime/controlprogram/IfProgramBlock.java  |   4 +-
 .../controlprogram/LocalVariableMap.java        |   7 +-
 .../controlprogram/ParForProgramBlock.java      |  52 ++---
 .../sysml/runtime/controlprogram/Program.java   |   6 +-
 .../runtime/controlprogram/ProgramBlock.java    |  30 +--
 .../controlprogram/WhileProgramBlock.java       |   3 +-
 .../controlprogram/caching/CacheBlock.java      |   9 +-
 .../controlprogram/caching/CacheableData.java   |  15 +-
 .../controlprogram/caching/FrameObject.java     |   4 +-
 .../controlprogram/caching/MatrixObject.java    |   6 +-
 .../context/ExecutionContext.java               | 138 ++++---------
 .../context/SparkExecutionContext.java          |  94 ++-------
 .../controlprogram/parfor/DataPartitioner.java  |  16 +-
 .../parfor/DataPartitionerLocal.java            |  18 +-
 .../parfor/DataPartitionerRemoteMR.java         |   1 -
 .../parfor/DataPartitionerRemoteSpark.java      |   1 -
 .../DataPartitionerRemoteSparkMapper.java       |   4 +-
 .../controlprogram/parfor/ParWorker.java        |  13 +-
 .../controlprogram/parfor/ProgramConverter.java | 132 +++----------
 .../controlprogram/parfor/RemoteDPParForMR.java |   4 +-
 .../parfor/RemoteDPParForSpark.java             |   3 -
 .../parfor/RemoteDPParForSparkWorker.java       |   3 +-
 .../controlprogram/parfor/RemoteParForMR.java   |   4 +-
 .../parfor/RemoteParForSpark.java               |   2 -
 .../parfor/RemoteParForSparkWorker.java         |   8 +-
 .../parfor/RemoteParForUtils.java               |  21 +-
 .../controlprogram/parfor/ResultMerge.java      |  14 +-
 .../parfor/ResultMergeLocalAutomatic.java       |   9 +-
 .../parfor/ResultMergeLocalFile.java            |  23 +--
 .../parfor/ResultMergeLocalMemory.java          |  17 +-
 .../parfor/ResultMergeRemoteMR.java             |   6 +-
 .../parfor/ResultMergeRemoteReducer.java        |   4 +-
 .../parfor/ResultMergeRemoteSpark.java          |   6 +-
 .../parfor/ResultMergeRemoteSparkWCompare.java  |   4 +-
 .../controlprogram/parfor/TaskPartitioner.java  |   9 +-
 .../parfor/TaskPartitionerFactoring.java        |   6 +-
 .../parfor/TaskPartitionerFixedsize.java        |   2 -
 .../parfor/mqo/RuntimePiggybacking.java         |  19 +-
 .../parfor/opt/CostEstimator.java               |  38 +---
 .../parfor/opt/CostEstimatorHops.java           |   2 -
 .../parfor/opt/CostEstimatorRuntime.java        |   9 +-
 .../parfor/opt/OptTreeConverter.java            |  27 +--
 .../parfor/opt/OptTreePlanChecker.java          |  17 +-
 .../parfor/opt/OptimizationWrapper.java         |  49 ++---
 .../controlprogram/parfor/opt/Optimizer.java    |   7 +-
 .../parfor/opt/OptimizerConstrained.java        |  15 +-
 .../parfor/opt/OptimizerRuleBased.java          | 131 +++---------
 .../parfor/opt/ProgramRecompiler.java           |  44 ++---
 .../apache/sysml/runtime/io/FrameReader.java    |   3 +-
 .../sysml/runtime/io/FrameReaderFactory.java    |  11 +-
 .../apache/sysml/runtime/io/FrameWriter.java    |   4 +-
 .../runtime/io/FrameWriterBinaryBlock.java      |   3 +-
 .../sysml/runtime/io/FrameWriterFactory.java    |   6 +-
 .../apache/sysml/runtime/io/MatrixReader.java   |   3 +-
 .../sysml/runtime/io/MatrixReaderFactory.java   |   2 -
 .../apache/sysml/runtime/io/MatrixWriter.java   |   4 +-
 .../sysml/runtime/io/MatrixWriterFactory.java   |   5 +-
 .../sysml/runtime/io/ReaderBinaryBlock.java     |   3 +-
 .../sysml/runtime/io/WriterBinaryBlock.java     |   2 +-
 .../sysml/runtime/matrix/data/MatrixBlock.java  |   8 +-
 .../transform/decode/DecoderFactory.java        |   3 +-
 .../transform/encode/EncoderFactory.java        |   8 +-
 .../runtime/transform/meta/TfMetaUtils.java     |   8 +-
 .../sysml/runtime/util/ConvolutionUtils.java    |   3 +-
 .../sysml/runtime/util/DataConverter.java       |  30 +--
 .../sysml/runtime/util/LocalFileUtils.java      |  19 +-
 .../ExternalFunctionInvocationInstruction.java  |  10 +-
 src/main/java/org/apache/sysml/udf/Matrix.java  |  16 +-
 .../java/org/apache/sysml/utils/Explain.java    |  30 +--
 .../org/apache/sysml/utils/NativeHelper.java    |   3 +-
 .../apache/sysml/yarn/DMLAppMasterUtils.java    |  29 +--
 .../apache/sysml/yarn/ropt/GridEnumeration.java |   8 +-
 .../sysml/yarn/ropt/GridEnumerationEqui.java    |   5 +-
 .../sysml/yarn/ropt/GridEnumerationExp.java     |   5 +-
 .../sysml/yarn/ropt/GridEnumerationHybrid.java  |  10 +-
 .../sysml/yarn/ropt/GridEnumerationMemory.java  |  10 +-
 .../apache/sysml/yarn/ropt/ResourceConfig.java  |   8 +-
 .../sysml/yarn/ropt/ResourceOptimizer.java      |  67 ++-----
 .../conversion/RDDConverterUtilsExtTest.java    |   7 +-
 .../functions/data/FullReblockTest.java         |   3 +-
 110 files changed, 494 insertions(+), 1490 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/hops/ConvolutionOp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/ConvolutionOp.java 
b/src/main/java/org/apache/sysml/hops/ConvolutionOp.java
index c137462..299f7c9 100644
--- a/src/main/java/org/apache/sysml/hops/ConvolutionOp.java
+++ b/src/main/java/org/apache/sysml/hops/ConvolutionOp.java
@@ -565,7 +565,7 @@ public class ConvolutionOp extends Hop  implements 
MultiThreadedHop
        // stride1, stride2, padding1, padding2  
        // input_shape1, input_shape2, input_shape3, input_shape4, 
        // filter_shape1, filter_shape2, filter_shape3, filter_shape4
-       ConvolutionParameters parseInput() throws DMLRuntimeException {
+       ConvolutionParameters parseInput() {
                
                Hop imageHeightHop = null; Hop filterHeightHop = null;
                if(op == ConvOp.MAX_POOLING_BACKWARD || op == 
ConvOp.AVG_POOLING_BACKWARD 
@@ -652,9 +652,8 @@ public class ConvolutionOp extends Hop  implements 
MultiThreadedHop
         * @param dim1 inferred shape
         * @param dim2 given shape
         * @param paramType string denoting the parameter for pretty printing 
of the error message
-        * @throws DMLRuntimeException if dim1 != dim2
         */
-       private void throwExceptionIfNotEqual(int dim1, int dim2, String 
paramType) throws DMLRuntimeException {
+       private void throwExceptionIfNotEqual(int dim1, int dim2, String 
paramType) {
                if(dim1 >= 0 && dim2 >= 0 && dim1 != dim2) {
                        throw new DMLRuntimeException("Inferred " + paramType + 
" from parent doesn't match with given " + paramType + ":" + dim1 + " != " + 
dim2);
                }
@@ -662,10 +661,8 @@ public class ConvolutionOp extends Hop  implements 
MultiThreadedHop
        
        /**
         * Gets the values for the parameters C, H, W, P, Q from parent hops
-        * 
-        * @throws DMLRuntimeException if error occurs
         */
-       private void inferCHWPQFromParentOp() throws DMLRuntimeException {
+       private void inferCHWPQFromParentOp() {
                Hop tmp = getInput().get(0);
                // Skip bias_add and go to its parent
                tmp = isInputBiasAdd(tmp) ? tmp.getInput().get(0) : tmp;

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java 
b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
index e9fe24e..3156afd 100644
--- a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
+++ b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java
@@ -262,12 +262,11 @@ public class OptimizerUtils
                return (getOptLevel() == level);
        }
        
-       public static CompilerConfig constructCompilerConfig( DMLConfig dmlconf 
) throws DMLRuntimeException {
+       public static CompilerConfig constructCompilerConfig( DMLConfig dmlconf 
) {
                return constructCompilerConfig(new CompilerConfig(), dmlconf);
        }
        
        public static CompilerConfig constructCompilerConfig( CompilerConfig 
cconf, DMLConfig dmlconf ) 
-               throws DMLRuntimeException
        {
                //each script sets its own block size, opt level etc
                cconf.set(ConfigType.BLOCK_SIZE, dmlconf.getIntValue( 
DMLConfig.DEFAULT_BLOCK_SIZE ));

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java 
b/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
index 91300e7..6fc1fd1 100644
--- a/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
+++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java
@@ -78,9 +78,7 @@ public class CostEstimationWrapper
                return costs;
        }
        
-       public static double getTimeEstimate(ProgramBlock pb, ExecutionContext 
ec, boolean recursive) 
-               throws DMLRuntimeException
-       {
+       public static double getTimeEstimate(ProgramBlock pb, ExecutionContext 
ec, boolean recursive) {
                Timing time = new Timing(true);
                
                HashMap<String,VarStats> stats = new HashMap<>();
@@ -91,9 +89,7 @@ public class CostEstimationWrapper
                return costs;
        }
 
-       private static CostEstimator createCostEstimator( CostType type ) 
-               throws DMLRuntimeException
-       {
+       private static CostEstimator createCostEstimator( CostType type ) {
                switch( type )
                {
                        case NUM_MRJOBS:

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java 
b/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java
index 4308a5c..07d8c09 100644
--- a/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java
+++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java
@@ -19,24 +19,17 @@
 
 package org.apache.sysml.hops.cost;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.instructions.Instruction;
 
 public class CostEstimatorNumMRJobs extends CostEstimator
 {
-
-       
        @Override
-       protected double getCPInstTimeEstimate( Instruction inst, VarStats[] 
vs, String[] args  ) 
-               throws DMLRuntimeException
-       {
+       protected double getCPInstTimeEstimate( Instruction inst, VarStats[] 
vs, String[] args  ) {
                return 0;
        }
        
        @Override
-       protected double getMRJobInstTimeEstimate( Instruction inst, VarStats[] 
vs, String[] args  ) 
-               throws DMLRuntimeException
-       {
+       protected double getMRJobInstTimeEstimate( Instruction inst, VarStats[] 
vs, String[] args  ) {
                return 1;
        }
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java 
b/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
index e10e006..2cfeada 100644
--- a/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
+++ b/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java
@@ -389,9 +389,7 @@ public class Recompiler
                return newInst;
        }
        
-       private static void logExplainDAG(StatementBlock sb, ArrayList<Hop> 
hops, ArrayList<Instruction> inst)
-               throws DMLRuntimeException
-       {
+       private static void logExplainDAG(StatementBlock sb, ArrayList<Hop> 
hops, ArrayList<Instruction> inst) {
                if( DMLScript.EXPLAIN == ExplainType.RECOMPILE_HOPS ) {
                        LOG.info("EXPLAIN RECOMPILE \nGENERIC (lines 
"+sb.getBeginLine()+"-"+sb.getEndLine()+"):\n" +
                        Explain.explainHops(hops, 1));
@@ -402,31 +400,18 @@ public class Recompiler
                }
        }
        
-       private static void logExplainPred(Hop hops, ArrayList<Instruction> 
inst)
-               throws DMLRuntimeException
-       {
+       private static void logExplainPred(Hop hops, ArrayList<Instruction> 
inst) {
                if( DMLScript.EXPLAIN == ExplainType.RECOMPILE_HOPS )
                        LOG.info("EXPLAIN RECOMPILE \nPRED (line 
"+hops.getBeginLine()+"):\n" + Explain.explain(hops,1));
                if( DMLScript.EXPLAIN == ExplainType.RECOMPILE_RUNTIME )
                        LOG.info("EXPLAIN RECOMPILE \nPRED (line 
"+hops.getBeginLine()+"):\n" + Explain.explain(inst,1));
        }
 
-       public static void recompileProgramBlockHierarchy( 
ArrayList<ProgramBlock> pbs, LocalVariableMap vars, long tid, ResetType 
resetRecompile ) 
-               throws DMLRuntimeException
-       {
-               try 
-               {
-                       RecompileStatus status = new RecompileStatus();
-                       
-                       synchronized( pbs )
-                       {
-                               for( ProgramBlock pb : pbs )
-                                       rRecompileProgramBlock(pb, vars, 
status, tid, resetRecompile);
-                       }
-               }
-               catch(Exception ex)
-               {
-                       throw new DMLRuntimeException("Unable to recompile 
program block hierarchy.", ex);
+       public static void recompileProgramBlockHierarchy( 
ArrayList<ProgramBlock> pbs, LocalVariableMap vars, long tid, ResetType 
resetRecompile ) {
+               RecompileStatus status = new RecompileStatus();
+               synchronized( pbs ) {
+                       for( ProgramBlock pb : pbs )
+                               rRecompileProgramBlock(pb, vars, status, tid, 
resetRecompile);
                }
        }
        
@@ -439,22 +424,11 @@ public class Recompiler
         * @param tid thread id
         * @param fnStack function stack
         * @param et execution type
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public static void recompileProgramBlockHierarchy2Forced( 
ArrayList<ProgramBlock> pbs, long tid, HashSet<String> fnStack, ExecType et ) 
-               throws DMLRuntimeException
-       {
-               try 
-               {
-                       synchronized( pbs )
-                       {
-                               for( ProgramBlock pb : pbs )
-                                       rRecompileProgramBlock2Forced(pb, tid, 
fnStack, et);
-                       }
-               }
-               catch(Exception ex)
-               {
-                       throw new DMLRuntimeException("Unable to recompile 
program block hierarchy to CP.", ex);
+       public static void recompileProgramBlockHierarchy2Forced( 
ArrayList<ProgramBlock> pbs, long tid, HashSet<String> fnStack, ExecType et ) {
+               synchronized( pbs ) {
+                       for( ProgramBlock pb : pbs )
+                               rRecompileProgramBlock2Forced(pb, tid, fnStack, 
et);
                }
        }
        

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java 
b/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java
index 3c395de..cf39048 100644
--- a/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java
+++ b/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java
@@ -354,9 +354,7 @@ public class RunMRJobs
                throw new DMLRuntimeException("Unexpected Job Type: " + 
inst.getJobType());
        }
 
-       private static void checkEmptyInputs( MRJobInstruction inst, 
MatrixObject[] inputMatrices ) 
-               throws DMLRuntimeException
-       {
+       private static void checkEmptyInputs( MRJobInstruction inst, 
MatrixObject[] inputMatrices ) {
                // Check if any of the input files are empty.. only for those 
job types
                // for which empty inputs are NOT allowed
                if (!inst.getJobType().areEmptyInputsAllowed()) {
@@ -445,9 +443,7 @@ public class RunMRJobs
        }
 
        
-       private static long[] getNNZ( MatrixObject[] inputMatrices ) 
-               throws DMLRuntimeException
-       {
+       private static long[] getNNZ( MatrixObject[] inputMatrices ) {
                int len = inputMatrices.length;
                long[] ret = new long[len];
                for( int i=0; i<len; i++ )
@@ -463,7 +459,6 @@ public class RunMRJobs
        }
        
        private static JobReturn executeInMemoryReblockOperations( 
MRJobInstruction inst, String shuffleInst, MatrixObject[] inputMatrices, 
MatrixObject[] outputMatrices ) 
-               throws DMLRuntimeException
        {
                MatrixCharacteristics[] mc = new 
MatrixCharacteristics[outputMatrices.length];
                ReblockInstruction[] rblkSet = 
MRInstructionParser.parseReblockInstructions(shuffleInst);
@@ -486,7 +481,6 @@ public class RunMRJobs
        }
        
        private static JobReturn executeInMemoryDataGenOperations( 
MRJobInstruction inst, String randInst, MatrixObject[] outputMatrices ) 
-               throws DMLRuntimeException
        {
                MatrixCharacteristics[] mc = new 
MatrixCharacteristics[outputMatrices.length];
                DataGenMRInstruction[] dgSet = 
MRInstructionParser.parseDataGenInstructions(randInst);

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/parser/DMLTranslator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/parser/DMLTranslator.java 
b/src/main/java/org/apache/sysml/parser/DMLTranslator.java
index b0b1938..9753465 100644
--- a/src/main/java/org/apache/sysml/parser/DMLTranslator.java
+++ b/src/main/java/org/apache/sysml/parser/DMLTranslator.java
@@ -94,11 +94,8 @@ public class DMLTranslator
        private static final Log LOG = 
LogFactory.getLog(DMLTranslator.class.getName());
        private DMLProgram _dmlProg = null;
        
-       public DMLTranslator(DMLProgram dmlp) 
-               throws DMLRuntimeException 
-       {
+       public DMLTranslator(DMLProgram dmlp) {
                _dmlProg = dmlp;
-               
                //setup default size for unknown dimensions
                OptimizerUtils.resetDefaultSize();
                //reinit rewriter according to opt level flags

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/CodegenUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/codegen/CodegenUtils.java 
b/src/main/java/org/apache/sysml/runtime/codegen/CodegenUtils.java
index 726e267..c302b0c 100644
--- a/src/main/java/org/apache/sysml/runtime/codegen/CodegenUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/codegen/CodegenUtils.java
@@ -67,9 +67,7 @@ public class CodegenUtils
        //javac-specific working directory for src/class files
        private static String _workingDir = null;
        
-       public static Class<?> compileClass(String name, String src) 
-               throws DMLRuntimeException
-       {
+       public static Class<?> compileClass(String name, String src) {
                //reuse existing compiled class
                Class<?> ret = _cache.get(name);
                if( ret != null ) 
@@ -94,13 +92,11 @@ public class CodegenUtils
                return ret;
        }
        
-       public static Class<?> getClass(String name) throws DMLRuntimeException 
{
+       public static Class<?> getClass(String name) {
                return getClass(name, null);
        }
        
-       public synchronized static Class<?> getClassSync(String name, byte[] 
classBytes)
-               throws DMLRuntimeException 
-       {
+       public synchronized static Class<?> getClassSync(String name, byte[] 
classBytes) {
                //In order to avoid anomalies of concurrently compiling and 
loading the same
                //class with the same name multiple times in spark executors, 
this indirection
                //synchronizes the class compilation. This synchronization 
leads to the first
@@ -110,9 +106,7 @@ public class CodegenUtils
                return getClass(name, classBytes);
        }
        
-       public static Class<?> getClass(String name, byte[] classBytes) 
-               throws DMLRuntimeException 
-       {
+       public static Class<?> getClass(String name, byte[] classBytes) {
                //reuse existing compiled class
                Class<?> ret = _cache.get(name);
                if( ret != null ) 
@@ -129,9 +123,7 @@ public class CodegenUtils
                return ret;
        }
        
-       public static byte[] getClassData(String name) 
-               throws DMLRuntimeException
-       {
+       public static byte[] getClassData(String name) {
                //get class in a compiler-specific manner
                if( SpoofCompiler.JAVA_COMPILER == CompilerType.JANINO )
                        return _src.get(name).getBytes();
@@ -152,13 +144,11 @@ public class CodegenUtils
                                iter.remove();
        }
        
-       public static SpoofOperator createInstance(Class<?> cla) 
-               throws DMLRuntimeException 
-       {
+       public static SpoofOperator createInstance(Class<?> cla) {
                SpoofOperator ret = null;
                
                try {
-                       ret = (SpoofOperator) cla.newInstance();        
+                       ret = (SpoofOperator) cla.newInstance();
                }
                catch( Exception ex ) {
                        throw new DMLRuntimeException(ex);
@@ -177,9 +167,7 @@ public class CodegenUtils
        ////////////////////////////
        //JANINO-specific methods (used for spark environments)
 
-       private static Class<?> compileClassJanino(String name, String src) 
-               throws DMLRuntimeException
-       {
+       private static Class<?> compileClassJanino(String name, String src) {
                try {
                        //compile source code
                        SimpleCompiler compiler = new SimpleCompiler();
@@ -201,9 +189,7 @@ public class CodegenUtils
        ////////////////////////////
        //JAVAC-specific methods (used for hadoop environments)
 
-       private static Class<?> compileClassJavac(String name, String src) 
-               throws DMLRuntimeException
-       {
+       private static Class<?> compileClassJavac(String name, String src) {
                try
                {
                        //create working dir on demand
@@ -264,9 +250,7 @@ public class CodegenUtils
                }
        }
        
-       private static Class<?> loadFromClassFile(String name, byte[] 
classBytes) 
-               throws DMLRuntimeException 
-       {
+       private static Class<?> loadFromClassFile(String name, byte[] 
classBytes) {
                if(classBytes != null) {
                        //load from byte representation of class file
                        try(ByteClassLoader byteLoader = new 
ByteClassLoader(new URL[]{}, 
@@ -292,9 +276,7 @@ public class CodegenUtils
                }       
        }
        
-       private static byte[] getClassAsByteArray(String name) 
-               throws DMLRuntimeException
-       {
+       private static byte[] getClassAsByteArray(String name) {
                String classAsPath = name.replace('.', '/') + ".class";
                
                URLClassLoader classLoader = null;
@@ -318,7 +300,7 @@ public class CodegenUtils
                }
        }
        
-       private static void createWorkingDir() throws DMLRuntimeException  {
+       private static void createWorkingDir() {
                if( _workingDir != null )
                        return;
                String tmp = 
LocalFileUtils.getWorkingDir(LocalFileUtils.CATEGORY_CODEGEN);

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/SpoofCellwise.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/codegen/SpoofCellwise.java 
b/src/main/java/org/apache/sysml/runtime/codegen/SpoofCellwise.java
index ea070b3..20e6a95 100644
--- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofCellwise.java
+++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofCellwise.java
@@ -110,9 +110,7 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        }
        
        @Override
-       public ScalarObject execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, int k) 
-               throws DMLRuntimeException 
-       {
+       public ScalarObject execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, int k) {
                //sanity check
                if( inputs==null || inputs.size() < 1  )
                        throw new RuntimeException("Invalid input arguments.");
@@ -188,16 +186,12 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        }
 
        @Override
-       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out)
-               throws DMLRuntimeException
-       {
+       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out) {
                return execute(inputs, scalarObjects, out, 1);
        }
        
        @Override
-       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int k)
-               throws DMLRuntimeException
-       {
+       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int k) {
                //sanity check
                if( inputs==null || inputs.size() < 1 || out==null )
                        throw new RuntimeException("Invalid input arguments.");
@@ -292,9 +286,7 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        //function dispatch
        
        private long executeDense(DenseBlock a, SideInput[] b, double[] 
scalars, 
-                       MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru) 
-               throws DMLRuntimeException 
-       {
+                       MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru) {
                DenseBlock c = out.getDenseBlock();
                SideInput[] lb = createSparseSideInputs(b);
                
@@ -317,7 +309,7 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        }
        
        private double executeDenseAndAgg(DenseBlock a, SideInput[] b, double[] 
scalars, 
-                       int m, int n, boolean sparseSafe, int rl, int ru) 
throws DMLRuntimeException 
+                       int m, int n, boolean sparseSafe, int rl, int ru)
        {
                SideInput[] lb = createSparseSideInputs(b);
                
@@ -330,7 +322,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeSparse(SparseBlock sblock, SideInput[] b, double[] 
scalars,
                        MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru)
-               throws DMLRuntimeException
        {
                if( sparseSafe && sblock == null )
                        return 0;
@@ -360,7 +351,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private double executeSparseAndAgg(SparseBlock sblock, SideInput[] b, 
double[] scalars,
                        int m, int n, boolean sparseSafe, int rl, int ru)
-               throws DMLRuntimeException
        {
                if( sparseSafe && sblock == null )
                        return 0;
@@ -374,7 +364,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeCompressed(CompressedMatrixBlock a, SideInput[] b, 
double[] scalars,
                        MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru)
-               throws DMLRuntimeException
        {
                //NOTE: we don't create sparse side inputs w/ row-major cursors 
because 
                //compressed data is access in a column-major order 
@@ -403,7 +392,7 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        }
        
        private double executeCompressedAndAgg(CompressedMatrixBlock a, 
SideInput[] b, double[] scalars,
-                       int m, int n, boolean sparseSafe, int rl, int ru) 
throws DMLRuntimeException 
+                       int m, int n, boolean sparseSafe, int rl, int ru)
        {
                //NOTE: we don't create sparse side inputs w/ row-major cursors 
because 
                //compressed data is access in a column-major order 
@@ -420,7 +409,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
 
        private long executeDenseNoAgg(DenseBlock a, SideInput[] b, double[] 
scalars,
                        DenseBlock c, int m, int n, boolean sparseSafe, int rl, 
int ru)
-               throws DMLRuntimeException
        {
                long lnnz = 0;
                if( a == null && !sparseSafe ) {
@@ -483,7 +471,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeDenseRowAggMxx(DenseBlock a, SideInput[] b, 
double[] scalars,
                        DenseBlock c, int m, int n, boolean sparseSafe, int rl, 
int ru)
-               throws DMLRuntimeException 
        {
                double[] lc = c.valuesAt(0); //single block
                
@@ -555,7 +542,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeDenseColAggMxx(DenseBlock a, SideInput[] b, 
double[] scalars,
                        DenseBlock c, int m, int n, boolean sparseSafe, int rl, 
int ru)
-               throws DMLRuntimeException 
        {
                double[] lc = c.valuesAt(0); //single block
                
@@ -591,7 +577,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private double executeDenseAggSum(DenseBlock a, SideInput[] b, double[] 
scalars,
                        int m, int n, boolean sparseSafe, int rl, int ru)
-               throws DMLRuntimeException 
        {
                KahanFunction kplus = (KahanFunction) getAggFunction();
                KahanObject kbuff = new KahanObject(0, 0);
@@ -618,7 +603,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private double executeDenseAggMxx(DenseBlock a, SideInput[] b, double[] 
scalars,
                        int m, int n, boolean sparseSafe, int rl, int ru)
-               throws DMLRuntimeException 
        {
                //safe aggregation for min/max w/ handling of zero entries
                //note: sparse safe with zero value as min/max handled outside
@@ -647,7 +631,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeSparseNoAggSparse(SparseBlock sblock, SideInput[] 
b, double[] scalars,
                        MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru)
-               throws DMLRuntimeException
        {
                //note: sequential scan algorithm for both sparse-safe and 
-unsafe
                //in order to avoid binary search for sparse-unsafe
@@ -684,7 +667,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeSparseNoAggDense(SparseBlock sblock, SideInput[] b, 
double[] scalars,
                        MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru)
-               throws DMLRuntimeException
        {
                //note: sequential scan algorithm for both sparse-safe and 
-unsafe
                //in order to avoid binary search for sparse-unsafe
@@ -723,7 +705,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeSparseRowAggSum(SparseBlock sblock, SideInput[] b, 
double[] scalars,
                        MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru)
-               throws DMLRuntimeException 
        {
                KahanFunction kplus = (KahanFunction) getAggFunction();
                KahanObject kbuff = new KahanObject(0, 0);
@@ -762,7 +743,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeSparseRowAggMxx(SparseBlock sblock, SideInput[] b, 
double[] scalars,
                        MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru)
-               throws DMLRuntimeException
        {
                double initialVal = (_aggOp==AggOp.MIN) ? 
Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY;
                ValueFunction vfun = getAggFunction();
@@ -801,7 +781,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
 
        private long executeSparseColAggSum(SparseBlock sblock, SideInput[] b, 
double[] scalars,
                        MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru)
-               throws DMLRuntimeException
        {
                KahanFunction kplus = (KahanFunction) getAggFunction();
                KahanObject kbuff = new KahanObject(0, 0);
@@ -850,7 +829,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeSparseColAggMxx(SparseBlock sblock, SideInput[] b, 
double[] scalars,
                        MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru)
-               throws DMLRuntimeException
        {
                double initialVal = (_aggOp==AggOp.MIN) ? 
Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY;
                ValueFunction vfun = getAggFunction();
@@ -892,7 +870,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private double executeSparseAggSum(SparseBlock sblock, SideInput[] b, 
double[] scalars,
                        int m, int n, boolean sparseSafe, int rl, int ru)
-               throws DMLRuntimeException
        {
                KahanFunction kplus = (KahanFunction) getAggFunction();
                KahanObject kbuff = new KahanObject(0, 0);
@@ -927,7 +904,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private double executeSparseAggMxx(SparseBlock sblock, SideInput[] b, 
double[] scalars,
                        int m, int n, boolean sparseSafe, int rl, int ru)
-               throws DMLRuntimeException
        {
                double ret = (_aggOp==AggOp.MIN) ? Double.POSITIVE_INFINITY : 
Double.NEGATIVE_INFINITY;
                ret = (sparseSafe && sblock.size() < (long)m*n) ? 0 : ret;
@@ -963,7 +939,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeCompressedNoAgg(CompressedMatrixBlock a, 
SideInput[] b, double[] scalars,
                        MatrixBlock out, int m, int n, boolean sparseSafe, int 
rl, int ru)
-               throws DMLRuntimeException
        {
                double[] c = (out.getDenseBlock() != null) ?
                        out.getDenseBlockValues() : null;
@@ -997,7 +972,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeCompressedRowAggSum(CompressedMatrixBlock a, 
SideInput[] b, double[] scalars,
                        double[] c, int m, int n, boolean sparseSafe, int rl, 
int ru)
-               throws DMLRuntimeException
        {
                KahanFunction kplus = (KahanFunction) getAggFunction();
                KahanObject kbuff = new KahanObject(0, 0);
@@ -1017,7 +991,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeCompressedRowAggMxx(CompressedMatrixBlock a, 
SideInput[] b, double[] scalars,
                        double[] c, int m, int n, boolean sparseSafe, int rl, 
int ru)
-               throws DMLRuntimeException
        {
                Arrays.fill(c, rl, ru, (_aggOp==AggOp.MIN) ? 
Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY);
                ValueFunction vfun = getAggFunction();
@@ -1054,7 +1027,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private long executeCompressedColAggMxx(CompressedMatrixBlock a, 
SideInput[] b, double[] scalars,
                        double[] c, int m, int n, boolean sparseSafe, int rl, 
int ru)
-               throws DMLRuntimeException
        {
                Arrays.fill(c, rl, ru, (_aggOp==AggOp.MIN) ? 
Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY);
                ValueFunction vfun = getAggFunction();
@@ -1072,7 +1044,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private double executeCompressedAggSum(CompressedMatrixBlock a, 
SideInput[] b, double[] scalars,
                        int m, int n, boolean sparseSafe, int rl, int ru)
-               throws DMLRuntimeException
        {
                KahanFunction kplus = (KahanFunction) getAggFunction();
                KahanObject kbuff = new KahanObject(0, 0);
@@ -1111,7 +1082,6 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
        
        private double executeCompressedAggMxx(CompressedMatrixBlock a, 
SideInput[] b, double[] scalars,
                        int m, int n, boolean sparseSafe, int rl, int ru)
-               throws DMLRuntimeException
        {
                //safe aggregation for min/max w/ handling of zero entries
                //note: sparse safe with zero value as min/max handled outside
@@ -1154,7 +1124,7 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
                }
                
                @Override
-               public Double call() throws DMLRuntimeException {
+               public Double call() {
                        if( _a instanceof CompressedMatrixBlock )
                                return 
executeCompressedAndAgg((CompressedMatrixBlock)_a, _b, _scalars, _rlen, _clen, 
_safe, _rl, _ru);
                        else if (!_a.isInSparseFormat())
@@ -1190,7 +1160,7 @@ public abstract class SpoofCellwise extends SpoofOperator 
implements Serializabl
                }
                
                @Override
-               public Long call() throws DMLRuntimeException {
+               public Long call() {
                        if( _type==CellType.COL_AGG ) {
                                _c = new MatrixBlock(1,_clen, false);
                                _c.allocateDenseBlock();

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/SpoofMultiAggregate.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/codegen/SpoofMultiAggregate.java 
b/src/main/java/org/apache/sysml/runtime/codegen/SpoofMultiAggregate.java
index 3801285..8db037e 100644
--- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofMultiAggregate.java
+++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofMultiAggregate.java
@@ -72,16 +72,12 @@ public abstract class SpoofMultiAggregate extends 
SpoofOperator implements Seria
        }
        
        @Override
-       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out) 
-               throws DMLRuntimeException
-       {
+       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out) {
                return execute(inputs, scalarObjects, out, 1);
        }
        
        @Override
-       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int k)        
-               throws DMLRuntimeException
-       {
+       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int k) {
                //sanity check
                if( inputs==null || inputs.size() < 1  )
                        throw new RuntimeException("Invalid input arguments.");
@@ -146,7 +142,6 @@ public abstract class SpoofMultiAggregate extends 
SpoofOperator implements Seria
        }
        
        private void executeDense(DenseBlock a, SideInput[] b, double[] 
scalars, double[] c, int m, int n, boolean sparseSafe, int rl, int ru)
-               throws DMLRuntimeException
        {
                SideInput[] lb = createSparseSideInputs(b);
                
@@ -168,7 +163,6 @@ public abstract class SpoofMultiAggregate extends 
SpoofOperator implements Seria
        
        private void executeSparse(SparseBlock sblock, SideInput[] b, double[] 
scalars,
                        double[] c, int m, int n, boolean sparseSafe, int rl, 
int ru) 
-               throws DMLRuntimeException 
        {
                if( sblock == null && sparseSafe )
                        return;
@@ -202,7 +196,7 @@ public abstract class SpoofMultiAggregate extends 
SpoofOperator implements Seria
                }
        }
 
-       private void executeCompressed(CompressedMatrixBlock a, SideInput[] b, 
double[] scalars, double[] c, int m, int n, int rl, int ru) throws 
DMLRuntimeException 
+       private void executeCompressed(CompressedMatrixBlock a, SideInput[] b, 
double[] scalars, double[] c, int m, int n, int rl, int ru)
        {
                //core compressed aggregation operation
                Iterator<IJV> iter = a.getIterator(rl, ru, true);
@@ -231,9 +225,7 @@ public abstract class SpoofMultiAggregate extends 
SpoofOperator implements Seria
        }
        
 
-       private void aggregatePartialResults(double[] c, ArrayList<double[]> 
pret) 
-               throws DMLRuntimeException 
-       {
+       private void aggregatePartialResults(double[] c, ArrayList<double[]> 
pret) {
                ValueFunction[] vfun = getAggFunctions(_aggOps); 
                for( int k=0; k<_aggOps.length; k++ ) {
                        if( vfun[k] instanceof KahanFunction ) {
@@ -249,10 +241,8 @@ public abstract class SpoofMultiAggregate extends 
SpoofOperator implements Seria
                        }
                }
        }
-               
-       public static void aggregatePartialResults(AggOp[] aggOps, MatrixBlock 
c, MatrixBlock b) 
-               throws DMLRuntimeException 
-       {
+       
+       public static void aggregatePartialResults(AggOp[] aggOps, MatrixBlock 
c, MatrixBlock b) {
                ValueFunction[] vfun = getAggFunctions(aggOps);
                
                for( int k=0; k< aggOps.length; k++ ) {
@@ -310,7 +300,7 @@ public abstract class SpoofMultiAggregate extends 
SpoofOperator implements Seria
                }
                
                @Override
-               public double[] call() throws DMLRuntimeException {
+               public double[] call() {
                        double[] c = new double[_aggOps.length];
                        setInitialOutputValues(c);
                        if( _a instanceof CompressedMatrixBlock )

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/SpoofOperator.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/codegen/SpoofOperator.java 
b/src/main/java/org/apache/sysml/runtime/codegen/SpoofOperator.java
index af0a22b..f6b225d 100644
--- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofOperator.java
+++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofOperator.java
@@ -44,47 +44,41 @@ public abstract class SpoofOperator implements Serializable
        protected static final long PAR_MINFLOP_THRESHOLD = 2L*1024*1024; //MIN 
2 MFLOP
        
        
-       public abstract MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalars, MatrixBlock out)
-               throws DMLRuntimeException;
+       public abstract MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalars, MatrixBlock out);
        
-       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalars, MatrixBlock out, int k)
-               throws DMLRuntimeException 
-       {
+       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalars, MatrixBlock out, int k) {
                //default implementation serial execution
                return execute(inputs, scalars, out);
        }
        
        public abstract String getSpoofType();
        
-       public ScalarObject execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalars) throws DMLRuntimeException {
-               throw new RuntimeException("Invalid invocation in base class.");
+       public ScalarObject execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalars) {
+               throw new DMLRuntimeException("Invalid invocation in base 
class.");
        }
        
-       public ScalarObject execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalars, int k)
-               throws DMLRuntimeException
-       {
+       public ScalarObject execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalars, int k) {
                //default implementation serial execution
                return execute(inputs, scalars);
        }
        
-       protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs) 
throws DMLRuntimeException {
+       protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs) {
                return prepInputMatrices(inputs, 1, inputs.size()-1, false, 
false);
        }
        
-       protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, 
boolean denseOnly) throws DMLRuntimeException {
+       protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, 
boolean denseOnly) {
                return prepInputMatrices(inputs, 1, inputs.size()-1, denseOnly, 
false);
        }
        
-       protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, 
int offset, boolean denseOnly) throws DMLRuntimeException {
+       protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, 
int offset, boolean denseOnly) {
                return prepInputMatrices(inputs, offset, inputs.size()-offset, 
denseOnly, false);
        }
        
-       protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, 
boolean denseOnly, boolean tB1) throws DMLRuntimeException {
+       protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, 
boolean denseOnly, boolean tB1) {
                return prepInputMatrices(inputs, 1, inputs.size()-1, denseOnly, 
tB1);
        }
        
        protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, 
int offset, int len, boolean denseOnly, boolean tB1)
-               throws DMLRuntimeException
        {
                SideInput[] b = new SideInput[len];
                for(int i=offset; i<offset+len; i++) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java 
b/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java
index 1ec98ce..ee137c4 100644
--- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java
+++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java
@@ -73,7 +73,6 @@ public abstract class SpoofOuterProduct extends SpoofOperator
        
        @Override
        public ScalarObject execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects)       
-               throws DMLRuntimeException
        {
                //sanity check
                if( inputs==null || inputs.size() < 3 )
@@ -106,7 +105,6 @@ public abstract class SpoofOuterProduct extends 
SpoofOperator
        
        @Override
        public ScalarObject execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, int numThreads)
-               throws DMLRuntimeException
        {
                //sanity check
                if( inputs==null || inputs.size() < 3 )
@@ -153,7 +151,6 @@ public abstract class SpoofOuterProduct extends 
SpoofOperator
        
        @Override
        public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out)
-               throws DMLRuntimeException
        {
                //sanity check
                if( inputs==null || inputs.size() < 3 || out==null )
@@ -233,7 +230,6 @@ public abstract class SpoofOuterProduct extends 
SpoofOperator
        
        @Override
        public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int numThreads)       
-               throws DMLRuntimeException
        {
                //sanity check
                if( inputs==null || inputs.size() < 3 || out==null )
@@ -675,7 +671,7 @@ public abstract class SpoofOuterProduct extends 
SpoofOperator
                }
                
                @Override
-               public Long call() throws DMLRuntimeException {
+               public Long call() {
                        switch(_type)
                        {
                                case LEFT_OUTER_PRODUCT:
@@ -740,7 +736,7 @@ public abstract class SpoofOuterProduct extends 
SpoofOperator
                }
                
                @Override
-               public Double call() throws DMLRuntimeException {
+               public Double call() {
                        MatrixBlock out = new MatrixBlock(1, 1, false);
                        out.allocateDenseBlock();
                        if( _a instanceof CompressedMatrixBlock )

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/SpoofRowwise.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/codegen/SpoofRowwise.java 
b/src/main/java/org/apache/sysml/runtime/codegen/SpoofRowwise.java
index 7f308e6..6e5646d 100644
--- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofRowwise.java
+++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofRowwise.java
@@ -108,9 +108,7 @@ public abstract class SpoofRowwise extends SpoofOperator
        }
        
        @Override
-       public ScalarObject execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, int k) 
-               throws DMLRuntimeException 
-       {
+       public ScalarObject execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, int k) {
                MatrixBlock out = ( k > 1 ) ?
                        execute(inputs, scalarObjects, new 
MatrixBlock(1,1,false), k) :
                        execute(inputs, scalarObjects, new 
MatrixBlock(1,1,false));
@@ -118,15 +116,11 @@ public abstract class SpoofRowwise extends SpoofOperator
        }
        
        @Override
-       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out)
-               throws DMLRuntimeException 
-       {
+       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out) {
                return execute(inputs, scalarObjects, out, true, false);
        }
        
-       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out, boolean allocTmp, 
boolean aggIncr) 
-               throws DMLRuntimeException
-       {
+       public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out, boolean allocTmp, 
boolean aggIncr) {
                //sanity check
                if( inputs==null || inputs.size() < 1 || out==null )
                        throw new RuntimeException("Invalid input arguments.");
@@ -177,7 +171,6 @@ public abstract class SpoofRowwise extends SpoofOperator
        
        @Override
        public MatrixBlock execute(ArrayList<MatrixBlock> inputs, 
ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int k)
-               throws DMLRuntimeException
        {
                //redirect to serial execution
                if( k <= 1 || (_type.isColumnAgg() && 
!LibMatrixMult.checkParColumnAgg(inputs.get(0), k, false))
@@ -367,7 +360,7 @@ public abstract class SpoofRowwise extends SpoofOperator
                }
                
                @Override
-               public DenseBlock call() throws DMLRuntimeException {
+               public DenseBlock call() {
                        
                        //allocate vector intermediates and partial output
                        if( _reqVectMem > 0 )
@@ -413,7 +406,7 @@ public abstract class SpoofRowwise extends SpoofOperator
                }
                
                @Override
-               public Long call() throws DMLRuntimeException {
+               public Long call() {
                        //allocate vector intermediates
                        if( _reqVectMem > 0 )
                                
LibSpoofPrimitives.setupThreadLocalMemory(_reqVectMem, _clen, _clen2);

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroup.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroup.java 
b/src/main/java/org/apache/sysml/runtime/compress/ColGroup.java
index 1938d17..adf4721 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/ColGroup.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroup.java
@@ -26,7 +26,6 @@ import java.io.Serializable;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.matrix.data.IJV;
 import org.apache.sysml.runtime.matrix.data.MatrixBlock;
 import org.apache.sysml.runtime.matrix.operators.AggregateUnaryOperator;
@@ -247,12 +246,11 @@ public abstract class ColGroup implements Serializable
         *            accumulator for holding the result
         * @param rl row lower
         * @param ru row upper
-        * @throws DMLRuntimeException
         *             if the internal SystemML code that performs the
         *             multiplication experiences an error
         */
        public abstract void rightMultByVector(MatrixBlock vector,
-                       MatrixBlock result, int rl, int ru) throws 
DMLRuntimeException;
+                       MatrixBlock result, int rl, int ru);
 
 
        /**
@@ -262,10 +260,8 @@ public abstract class ColGroup implements Serializable
         * 
         * @param vector row vector
         * @param result matrix block result
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public abstract void leftMultByRowVector(MatrixBlock vector,
-                       MatrixBlock result) throws DMLRuntimeException;
+       public abstract void leftMultByRowVector(MatrixBlock vector, 
MatrixBlock result);
 
        /**
         * Perform the specified scalar operation directly on the compressed 
column
@@ -274,13 +270,10 @@ public abstract class ColGroup implements Serializable
         * @param op
         *            operation to perform
         * @return version of this column group with the operation applied
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public abstract ColGroup scalarOperation(ScalarOperator op)
-                       throws DMLRuntimeException;
+       public abstract ColGroup scalarOperation(ScalarOperator op);
 
-       public abstract void unaryAggregateOperations(AggregateUnaryOperator 
op, MatrixBlock result)
-               throws DMLRuntimeException;
+       public abstract void unaryAggregateOperations(AggregateUnaryOperator 
op, MatrixBlock result);
        
        /**
         * Create a column group iterator for a row index range.

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC.java 
b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC.java
index 9973ec2..40eef8e 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC.java
@@ -22,7 +22,6 @@ package org.apache.sysml.runtime.compress;
 import java.util.Arrays;
 import java.util.Iterator;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.functionobjects.Builtin;
 import org.apache.sysml.runtime.functionobjects.KahanFunction;
 import org.apache.sysml.runtime.functionobjects.KahanPlus;
@@ -118,7 +117,6 @@ public abstract class ColGroupDDC extends ColGroupValue
        
        @Override
        public void unaryAggregateOperations(AggregateUnaryOperator op, 
MatrixBlock result, int rl, int ru)
-               throws DMLRuntimeException 
        {
                //sum and sumsq (reduceall/reducerow over tuples and counts)
                if( op.aggOp.increOp.fn instanceof KahanPlus || 
op.aggOp.increOp.fn instanceof KahanPlusSq ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC1.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC1.java 
b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC1.java
index 1861bba..635d8c3 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC1.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC1.java
@@ -25,7 +25,6 @@ import java.io.IOException;
 import java.util.Arrays;
 import java.util.HashMap;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.compress.utils.ConverterUtils;
 import org.apache.sysml.runtime.functionobjects.KahanFunction;
 import org.apache.sysml.runtime.functionobjects.KahanPlus;
@@ -249,7 +248,6 @@ public class ColGroupDDC1 extends ColGroupDDC
        
        @Override
        public void rightMultByVector(MatrixBlock vector, MatrixBlock result, 
int rl, int ru) 
-               throws DMLRuntimeException 
        {
                double[] b = ConverterUtils.getDenseVector(vector);
                double[] c = result.getDenseBlockValues();
@@ -272,7 +270,6 @@ public class ColGroupDDC1 extends ColGroupDDC
        }
        
        public static void rightMultByVector(ColGroupDDC1[] grps, MatrixBlock 
vector, MatrixBlock result, int rl, int ru) 
-               throws DMLRuntimeException 
        {
                double[] b = ConverterUtils.getDenseVector(vector);
                double[] c = result.getDenseBlockValues();
@@ -299,7 +296,7 @@ public class ColGroupDDC1 extends ColGroupDDC
        }
 
        @Override
-       public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result) 
throws DMLRuntimeException {
+       public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result) 
{
                double[] a = ConverterUtils.getDenseVector(vector);
                double[] c = result.getDenseBlockValues();
                final int nrow = getNumRows();
@@ -317,7 +314,7 @@ public class ColGroupDDC1 extends ColGroupDDC
        }
        
        @Override
-       public void leftMultByRowVector(ColGroupDDC a, MatrixBlock result) 
throws DMLRuntimeException {
+       public void leftMultByRowVector(ColGroupDDC a, MatrixBlock result) {
                double[] c = result.getDenseBlockValues();
                final int nrow = getNumRows();
                final int numVals = getNumValues();
@@ -376,7 +373,6 @@ public class ColGroupDDC1 extends ColGroupDDC
        }
        
        public static void computeRowSums(ColGroupDDC1[] grps, MatrixBlock 
result, KahanFunction kplus, int rl, int ru) 
-               throws DMLRuntimeException 
        {
                //note: due to corrections the output might be a large dense 
block
                DenseBlock c = result.getDenseBlock();
@@ -417,7 +413,7 @@ public class ColGroupDDC1 extends ColGroupDDC
        }
        
        @Override
-       public ColGroup scalarOperation(ScalarOperator op) throws 
DMLRuntimeException {
+       public ColGroup scalarOperation(ScalarOperator op) {
                //fast path: sparse-safe and -unsafe operations
                //as zero are represented, it is sufficient to simply apply the 
scalar op
                return new ColGroupDDC1(_colIndexes, _numRows, 
applyScalarOp(op), _data);

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC2.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC2.java 
b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC2.java
index 28e565c..3e5c477 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC2.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC2.java
@@ -24,7 +24,6 @@ import java.io.DataOutput;
 import java.io.IOException;
 import java.util.Arrays;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.compress.utils.ConverterUtils;
 import org.apache.sysml.runtime.functionobjects.KahanFunction;
 import org.apache.sysml.runtime.functionobjects.KahanPlus;
@@ -223,7 +222,7 @@ public class ColGroupDDC2 extends ColGroupDDC
        }
        
        @Override
-       public void rightMultByVector(MatrixBlock vector, MatrixBlock result, 
int rl, int ru) throws DMLRuntimeException {
+       public void rightMultByVector(MatrixBlock vector, MatrixBlock result, 
int rl, int ru) {
                double[] b = ConverterUtils.getDenseVector(vector);
                double[] c = result.getDenseBlockValues();
                final int numCols = getNumCols();
@@ -245,7 +244,6 @@ public class ColGroupDDC2 extends ColGroupDDC
 
        @Override
        public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result) 
-               throws DMLRuntimeException 
        {
                double[] a = ConverterUtils.getDenseVector(vector);
                double[] c = result.getDenseBlockValues();
@@ -279,7 +277,6 @@ public class ColGroupDDC2 extends ColGroupDDC
        
        @Override
        public void leftMultByRowVector(ColGroupDDC a, MatrixBlock result) 
-               throws DMLRuntimeException 
        {
                double[] c = result.getDenseBlockValues();
                final int nrow = getNumRows();
@@ -361,7 +358,7 @@ public class ColGroupDDC2 extends ColGroupDDC
        }
        
        @Override
-       public ColGroup scalarOperation(ScalarOperator op) throws 
DMLRuntimeException {
+       public ColGroup scalarOperation(ScalarOperator op) {
                //fast path: sparse-safe and -unsafe operations
                //as zero are represented, it is sufficient to simply apply the 
scalar op
                return new ColGroupDDC2(_colIndexes, _numRows, 
applyScalarOp(op), _data);

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupOLE.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupOLE.java 
b/src/main/java/org/apache/sysml/runtime/compress/ColGroupOLE.java
index 4561c14..011e3f0 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupOLE.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupOLE.java
@@ -24,7 +24,6 @@ import java.util.Iterator;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.compress.utils.ConverterUtils;
 import org.apache.sysml.runtime.compress.utils.LinearAlgebraUtils;
 import org.apache.sysml.runtime.functionobjects.Builtin;
@@ -263,7 +262,6 @@ public class ColGroupOLE extends ColGroupOffset
        
        @Override
        public ColGroup scalarOperation(ScalarOperator op)
-               throws DMLRuntimeException 
        {
                double val0 = op.executeScalar(0);
                
@@ -296,7 +294,6 @@ public class ColGroupOLE extends ColGroupOffset
 
        @Override
        public void rightMultByVector(MatrixBlock vector, MatrixBlock result, 
int rl, int ru)
-                       throws DMLRuntimeException 
        {
                double[] b = ConverterUtils.getDenseVector(vector);
                double[] c = result.getDenseBlockValues();
@@ -386,7 +383,6 @@ public class ColGroupOLE extends ColGroupOffset
 
        @Override
        public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result)
-               throws DMLRuntimeException 
        {
                double[] a = ConverterUtils.getDenseVector(vector);
                double[] c = result.getDenseBlockValues();
@@ -460,7 +456,6 @@ public class ColGroupOLE extends ColGroupOffset
 
        @Override
        public void leftMultByRowVector(ColGroupDDC a, MatrixBlock result)
-               throws DMLRuntimeException 
        {
                //note: this method is only applicable for numrows < blocksize
                double[] c = result.getDenseBlockValues();

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupOffset.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/compress/ColGroupOffset.java 
b/src/main/java/org/apache/sysml/runtime/compress/ColGroupOffset.java
index a312419..2aa23bf 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupOffset.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupOffset.java
@@ -26,7 +26,6 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.compress.utils.LinearAlgebraUtils;
 import org.apache.sysml.runtime.functionobjects.Builtin;
 import org.apache.sysml.runtime.functionobjects.KahanFunction;
@@ -267,22 +266,17 @@ public abstract class ColGroupOffset extends ColGroupValue
         * 
         * @param ind row indicator vector of non zeros
         * @return offsets
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       protected int[] computeOffsets(boolean[] ind)
-               throws DMLRuntimeException 
-       {
+       protected int[] computeOffsets(boolean[] ind) {
                //determine number of offsets
                int numOffsets = 0;
                for( int i=0; i<ind.length; i++ )
                        numOffsets += ind[i] ? 1 : 0;
-               
                //create offset lists
                int[] ret = new int[numOffsets];
                for( int i=0, pos=0; i<ind.length; i++ )
                        if( ind[i] )
                                ret[pos++] = i;
-               
                return ret;
        }
 
@@ -371,7 +365,6 @@ public abstract class ColGroupOffset extends ColGroupValue
        
        @Override
        public void unaryAggregateOperations(AggregateUnaryOperator op, 
MatrixBlock result, int rl, int ru) 
-               throws DMLRuntimeException 
        {
                //sum and sumsq (reduceall/reducerow over tuples and counts)
                if( op.aggOp.increOp.fn instanceof KahanPlus || 
op.aggOp.increOp.fn instanceof KahanPlusSq ) 

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupRLE.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupRLE.java 
b/src/main/java/org/apache/sysml/runtime/compress/ColGroupRLE.java
index cbdf4a5..865e09e 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupRLE.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupRLE.java
@@ -24,7 +24,6 @@ import java.util.Iterator;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.compress.utils.ConverterUtils;
 import org.apache.sysml.runtime.compress.utils.LinearAlgebraUtils;
 import org.apache.sysml.runtime.functionobjects.Builtin;
@@ -267,7 +266,6 @@ public class ColGroupRLE extends ColGroupOffset
        
        @Override
        public void rightMultByVector(MatrixBlock vector, MatrixBlock result, 
int rl, int ru)
-                       throws DMLRuntimeException 
        {
                double[] b = ConverterUtils.getDenseVector(vector);
                double[] c = result.getDenseBlockValues();
@@ -363,8 +361,7 @@ public class ColGroupRLE extends ColGroupOffset
 
        @Override
        public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result)
-                       throws DMLRuntimeException 
-       {               
+       {
                double[] a = ConverterUtils.getDenseVector(vector);
                double[] c = result.getDenseBlockValues();
                final int numCols = getNumCols();
@@ -441,7 +438,6 @@ public class ColGroupRLE extends ColGroupOffset
 
        @Override
        public void leftMultByRowVector(ColGroupDDC a, MatrixBlock result)
-                       throws DMLRuntimeException 
        {
                //note: this method is only applicable for numrows < blocksize
                double[] c = result.getDenseBlockValues();
@@ -472,7 +468,6 @@ public class ColGroupRLE extends ColGroupOffset
        
        @Override
        public ColGroup scalarOperation(ScalarOperator op)
-                       throws DMLRuntimeException 
        {
                double val0 = op.executeScalar(0);
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupUncompressed.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/compress/ColGroupUncompressed.java 
b/src/main/java/org/apache/sysml/runtime/compress/ColGroupUncompressed.java
index 2cc5b4b..d03343e 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupUncompressed.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupUncompressed.java
@@ -27,7 +27,6 @@ import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.functionobjects.ReduceRow;
 import org.apache.sysml.runtime.matrix.data.IJV;
 import org.apache.sysml.runtime.matrix.data.LibMatrixAgg;
@@ -68,11 +67,9 @@ public class ColGroupUncompressed extends ColGroup
         * @param rawblock
         *            the uncompressed block; uncompressed data must be present 
at
         *            the time that the constructor is called
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        @SuppressWarnings("unused")
        public ColGroupUncompressed(List<Integer> colIndicesList, MatrixBlock 
rawblock) 
-               throws DMLRuntimeException 
        {
                super(colIndicesList, 
                                CompressedMatrixBlock.TRANSPOSE_INPUT ? 
@@ -270,9 +267,7 @@ public class ColGroupUncompressed extends ColGroup
        }
        
        @Override
-       public void rightMultByVector(MatrixBlock vector, MatrixBlock result, 
int rl, int ru)
-                       throws DMLRuntimeException 
-       {
+       public void rightMultByVector(MatrixBlock vector, MatrixBlock result, 
int rl, int ru) {
                // Pull out the relevant rows of the vector
                int clen = _colIndexes.length;
                
@@ -287,9 +282,7 @@ public class ColGroupUncompressed extends ColGroup
                LibMatrixMult.matrixMult(_data, shortVector, result, rl, ru);   
        }
        
-       public void rightMultByVector(MatrixBlock vector, MatrixBlock result, 
int k)
-                       throws DMLRuntimeException 
-       {
+       public void rightMultByVector(MatrixBlock vector, MatrixBlock result, 
int k) {
                // Pull out the relevant rows of the vector
                int clen = _colIndexes.length;
                
@@ -306,7 +299,6 @@ public class ColGroupUncompressed extends ColGroup
        
        @Override
        public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result)
-                       throws DMLRuntimeException 
        {
                MatrixBlock pret = new MatrixBlock(1, _colIndexes.length, 
false);
                LibMatrixMult.matrixMult(vector, _data, pret);
@@ -321,7 +313,6 @@ public class ColGroupUncompressed extends ColGroup
        }
        
        public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result, 
int k)
-                       throws DMLRuntimeException 
        {
                MatrixBlock pret = new MatrixBlock(1, _colIndexes.length, 
false);
                LibMatrixMult.matrixMult(vector, _data, pret, k);
@@ -336,21 +327,16 @@ public class ColGroupUncompressed extends ColGroup
        }
 
        @Override
-       public ColGroup scalarOperation(ScalarOperator op)
-                       throws DMLRuntimeException 
-       {
+       public ColGroup scalarOperation(ScalarOperator op) {
                //execute scalar operations
                MatrixBlock retContent = (MatrixBlock) _data
-                               .scalarOperations(op, new MatrixBlock());
-
+                       .scalarOperations(op, new MatrixBlock());
                //construct new uncompressed column group
                return new ColGroupUncompressed(getColIndices(), 
_data.getNumRows(), retContent);
        }
        
        @Override
-       public void unaryAggregateOperations(AggregateUnaryOperator op, 
MatrixBlock ret)
-               throws DMLRuntimeException 
-       {
+       public void unaryAggregateOperations(AggregateUnaryOperator op, 
MatrixBlock ret) {
                //execute unary aggregate operations
                LibMatrixAgg.aggregateUnaryMatrix(_data, ret, op);
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupValue.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupValue.java 
b/src/main/java/org/apache/sysml/runtime/compress/ColGroupValue.java
index 2e5dc78..a09512c 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupValue.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupValue.java
@@ -21,7 +21,6 @@ package org.apache.sysml.runtime.compress;
 
 import java.util.Arrays;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.functionobjects.Builtin;
 import org.apache.sysml.runtime.functionobjects.Builtin.BuiltinCode;
 import org.apache.sysml.runtime.functionobjects.KahanFunction;
@@ -325,8 +324,7 @@ public abstract class ColGroupValue extends ColGroup
        }
 
        //additional vector-matrix multiplication to avoid DDC uncompression
-       public abstract void leftMultByRowVector(ColGroupDDC vector, 
MatrixBlock result) 
-               throws DMLRuntimeException;
+       public abstract void leftMultByRowVector(ColGroupDDC vector, 
MatrixBlock result);
 
        
        /**
@@ -336,23 +334,17 @@ public abstract class ColGroupValue extends ColGroup
         * @param op
         *            scalar operation to perform
         * @return transformed copy of value metadata for this column group
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       protected double[] applyScalarOp(ScalarOperator op)
-               throws DMLRuntimeException 
-       {
+       protected double[] applyScalarOp(ScalarOperator op) {
                //scan over linearized values
                double[] ret = new double[_values.length];
                for (int i = 0; i < _values.length; i++) {
                        ret[i] = op.executeScalar(_values[i]);
                }
-
                return ret;
        }
 
-       protected double[] applyScalarOp(ScalarOperator op, double newVal, int 
numCols)
-               throws DMLRuntimeException 
-       {
+       protected double[] applyScalarOp(ScalarOperator op, double newVal, int 
numCols) {
                //scan over linearized values
                double[] ret = new double[_values.length + numCols];
                for( int i = 0; i < _values.length; i++ ) {
@@ -366,9 +358,7 @@ public abstract class ColGroupValue extends ColGroup
        }
        
        @Override
-       public void unaryAggregateOperations(AggregateUnaryOperator op, 
MatrixBlock result) 
-               throws DMLRuntimeException 
-       {
+       public void unaryAggregateOperations(AggregateUnaryOperator op, 
MatrixBlock result) {
                unaryAggregateOperations(op, result, 0, getNumRows());
        }
        
@@ -378,10 +368,8 @@ public abstract class ColGroupValue extends ColGroup
         * @param result output matrix block
         * @param rl row lower index, inclusive
         * @param ru row upper index, exclusive
-        * @throws DMLRuntimeException on invalid inputs
         */
-       public abstract void unaryAggregateOperations(AggregateUnaryOperator 
op, MatrixBlock result, int rl, int ru)
-               throws DMLRuntimeException;
+       public abstract void unaryAggregateOperations(AggregateUnaryOperator 
op, MatrixBlock result, int rl, int ru);
        
 
        //dynamic memory management

Reply via email to