http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreeConverter.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreeConverter.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreeConverter.java
index 65f7299..e88df23 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreeConverter.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreeConverter.java
@@ -88,9 +88,7 @@ public class OptTreeConverter
                _rtMap = new OptTreePlanMappingRuntime();
        }
        
-       public static OptTree createOptTree( int ck, double cm, PlanInputType 
type, ParForStatementBlock pfsb, ParForProgramBlock pfpb, ExecutionContext ec ) 
-               throws DMLRuntimeException, HopsException
-       {       
+       public static OptTree createOptTree( int ck, double cm, PlanInputType 
type, ParForStatementBlock pfsb, ParForProgramBlock pfpb, ExecutionContext ec ) 
 {
                OptNode root = null;
                switch( type )
                {
@@ -114,7 +112,6 @@ public class OptTreeConverter
        }
 
        public static OptTree createAbstractOptTree( int ck, double cm, 
ParForStatementBlock pfsb, ParForProgramBlock pfpb, Set<String> memo, 
ExecutionContext ec ) 
-               throws DMLRuntimeException
        {
                OptTree tree = null;
                OptNode root = null;
@@ -133,7 +130,6 @@ public class OptTreeConverter
        }
 
        public static OptNode rCreateOptNode( ProgramBlock pb, LocalVariableMap 
vars, boolean topLevel, boolean storeObjs ) 
-               throws DMLRuntimeException 
        {
                OptNode node = null;
                
@@ -246,18 +242,14 @@ public class OptTreeConverter
                return node;
        }
 
-       public static ArrayList<OptNode> createOptNodes (ArrayList<Instruction> 
instset, LocalVariableMap vars, boolean storeObjs) 
-               throws DMLRuntimeException
-       {
+       public static ArrayList<OptNode> createOptNodes (ArrayList<Instruction> 
instset, LocalVariableMap vars, boolean storeObjs) {
                ArrayList<OptNode> tmp = new ArrayList<>(instset.size());
                for( Instruction inst : instset )
                        tmp.add( createOptNode(inst,vars,storeObjs) );
                return tmp;
        }
 
-       public static OptNode createOptNode( Instruction inst, LocalVariableMap 
vars, boolean storeObjs ) 
-               throws DMLRuntimeException
-       {
+       public static OptNode createOptNode( Instruction inst, LocalVariableMap 
vars, boolean storeObjs ) {
                OptNode node = new OptNode(NodeType.INST);
                String instStr = inst.toString();
                String opstr = instStr.split(Instruction.OPERAND_DELIM)[1];
@@ -290,7 +282,6 @@ public class OptTreeConverter
        }
 
        public static OptNode rCreateAbstractOptNode( StatementBlock sb, 
ProgramBlock pb, LocalVariableMap vars, boolean topLevel, Set<String> memo ) 
-               throws DMLRuntimeException, HopsException 
        {
                OptNode node = null;
                
@@ -475,9 +466,7 @@ public class OptTreeConverter
                return node;
        }
 
-       public static ArrayList<OptNode> createAbstractOptNodes(ArrayList<Hop> 
hops, LocalVariableMap vars, Set<String> memo ) 
-               throws DMLRuntimeException, HopsException 
-       {
+       public static ArrayList<OptNode> createAbstractOptNodes(ArrayList<Hop> 
hops, LocalVariableMap vars, Set<String> memo ) {
                ArrayList<OptNode> ret = new ArrayList<>(); 
                
                //reset all hops
@@ -491,9 +480,7 @@ public class OptTreeConverter
                return ret;
        }
 
-       public static ArrayList<OptNode> rCreateAbstractOptNodes(Hop hop, 
LocalVariableMap vars, Set<String> memo) 
-               throws DMLRuntimeException, HopsException 
-       {
+       public static ArrayList<OptNode> rCreateAbstractOptNodes(Hop hop, 
LocalVariableMap vars, Set<String> memo) {
                ArrayList<OptNode> ret = new ArrayList<>(); 
                ArrayList<Hop> in = hop.getInput();
        
@@ -648,9 +635,7 @@ public class OptTreeConverter
                        .anyMatch(inst -> inst instanceof 
FunctionCallCPInstruction);
        }
 
-       public static void replaceProgramBlock(OptNode parent, OptNode n, 
ProgramBlock pbOld, ProgramBlock pbNew, boolean rtMap) 
-               throws DMLRuntimeException
-       {
+       public static void replaceProgramBlock(OptNode parent, OptNode n, 
ProgramBlock pbOld, ProgramBlock pbNew, boolean rtMap) {
                ProgramBlock pbParent = null;
                if( rtMap )
                        pbParent = (ProgramBlock)_rtMap.getMappedObject( 
parent.getID() );

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java
index fc42996..28c3c4c 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanChecker.java
@@ -25,7 +25,6 @@ import java.util.Set;
 
 import org.apache.sysml.hops.FunctionOp;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.parser.DMLProgram;
 import org.apache.sysml.parser.ForStatement;
 import org.apache.sysml.parser.ForStatementBlock;
@@ -122,31 +121,23 @@ public class OptTreePlanChecker
                
        }
 
-       private static void checkHopDagCorrectness( Program prog, DMLProgram 
dprog, ArrayList<Hop> roots, ArrayList<Instruction> inst, Set<String> fnStack ) 
-               throws DMLRuntimeException, HopsException
-       {
+       private static void checkHopDagCorrectness( Program prog, DMLProgram 
dprog, ArrayList<Hop> roots, ArrayList<Instruction> inst, Set<String> fnStack ) 
{
                if( roots != null )
                        for( Hop hop : roots )
                                checkHopDagCorrectness(prog, dprog, hop, inst, 
fnStack);
        }
 
-       private static void checkHopDagCorrectness( Program prog, DMLProgram 
dprog, Hop root, ArrayList<Instruction> inst, Set<String> fnStack ) 
-               throws DMLRuntimeException, HopsException
-       {
+       private static void checkHopDagCorrectness( Program prog, DMLProgram 
dprog, Hop root, ArrayList<Instruction> inst, Set<String> fnStack ) {
                //set of checks to perform
                checkFunctionNames(prog, dprog, root, inst, fnStack);
        }
 
-       private static void checkLinksProgramStatementBlock( ProgramBlock pb, 
StatementBlock sb ) 
-               throws DMLRuntimeException
-       {
+       private static void checkLinksProgramStatementBlock( ProgramBlock pb, 
StatementBlock sb ) {
                if( pb.getStatementBlock() != sb )
                        throw new DMLRuntimeException("Links between 
programblocks and statementblocks are incorrect ("+pb+").");
        }
 
-       private static void checkFunctionNames( Program prog, DMLProgram dprog, 
Hop root, ArrayList<Instruction> inst, Set<String> fnStack ) 
-               throws DMLRuntimeException, HopsException
-       {
+       private static void checkFunctionNames( Program prog, DMLProgram dprog, 
Hop root, ArrayList<Instruction> inst, Set<String> fnStack ) {
                //reset visit status of dag
                root.resetVisitStatus();
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizationWrapper.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizationWrapper.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizationWrapper.java
index 5f2f030..83bcae8 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizationWrapper.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizationWrapper.java
@@ -99,10 +99,8 @@ public class OptimizationWrapper
         * @param pb parfor program block
         * @param ec execution context
         * @param monitor ?
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        public static void optimize( POptMode type, ParForStatementBlock sb, 
ParForProgramBlock pb, ExecutionContext ec, boolean monitor ) 
-               throws DMLRuntimeException
        {
                Timing time = new Timing(true);
                
@@ -134,7 +132,6 @@ public class OptimizationWrapper
 
        @SuppressWarnings("unused")
        private static void optimize( POptMode otype, int ck, double cm, 
ParForStatementBlock sb, ParForProgramBlock pb, ExecutionContext ec, boolean 
monitor ) 
-               throws DMLRuntimeException
        {
                Timing time = new Timing(true);
                
@@ -273,50 +270,28 @@ public class OptimizationWrapper
                }
        }
 
-       private static Optimizer createOptimizer( POptMode otype ) 
-               throws DMLRuntimeException
-       {
-               Optimizer opt = null;
-               
-               switch( otype )
-               {
-                       case HEURISTIC:
-                               opt = new OptimizerHeuristic();
-                               break;
-                       case RULEBASED:
-                               opt = new OptimizerRuleBased();
-                               break;  
-                       case CONSTRAINED:
-                               opt = new OptimizerConstrained();
-                               break;  
+       private static Optimizer createOptimizer( POptMode otype ) {
+               switch( otype ) {
+                       case HEURISTIC:   return new OptimizerHeuristic();
+                       case RULEBASED:   return new OptimizerRuleBased();
+                       case CONSTRAINED: return new OptimizerConstrained();
                        default:
                                throw new DMLRuntimeException("Undefined 
optimizer: '"+otype+"'.");
                }
-               
-               return opt;
        }
 
-       private static CostEstimator createCostEstimator( CostModelType cmtype, 
LocalVariableMap vars ) 
-               throws DMLRuntimeException
-       {
-               CostEstimator est = null;
-               
-               switch( cmtype )
-               {
+       private static CostEstimator createCostEstimator( CostModelType cmtype, 
LocalVariableMap vars )  {
+               switch( cmtype ) {
                        case STATIC_MEM_METRIC:
-                               est = new CostEstimatorHops( 
-                                               
OptTreeConverter.getAbstractPlanMapping() );
-                               break;
+                               return new CostEstimatorHops( 
+                                       
OptTreeConverter.getAbstractPlanMapping() );
                        case RUNTIME_METRICS:
-                               est = new CostEstimatorRuntime( 
-                                               
OptTreeConverter.getAbstractPlanMapping(), 
-                                               (LocalVariableMap)vars.clone() 
);
-                               break;
+                               return new CostEstimatorRuntime( 
+                                       
OptTreeConverter.getAbstractPlanMapping(), 
+                                       (LocalVariableMap)vars.clone() );
                        default:
                                throw new DMLRuntimeException("Undefined cost 
model type: '"+cmtype+"'.");
                }
-               
-               return est;
        }
 
        private static ProgramRewriter createProgramRewriterWithRuleSets()

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/Optimizer.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/Optimizer.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/Optimizer.java
index af92b80..5ff4d61 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/Optimizer.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/Optimizer.java
@@ -22,7 +22,6 @@ package org.apache.sysml.runtime.controlprogram.parfor.opt;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.sysml.parser.ParForStatementBlock;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.ParForProgramBlock;
 import org.apache.sysml.runtime.controlprogram.ParForProgramBlock.POptMode;
 import org.apache.sysml.runtime.controlprogram.context.ExecutionContext;
@@ -69,11 +68,9 @@ public abstract class Optimizer
         * @param est cost estimator
         * @param ec execution context
         * @return true if plan changed, false otherwise
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public abstract boolean optimize(ParForStatementBlock sb, 
ParForProgramBlock pb, OptTree plan, CostEstimator est, ExecutionContext ec) 
-               throws DMLRuntimeException;     
-
+       public abstract boolean optimize(ParForStatementBlock sb, 
ParForProgramBlock pb, OptTree plan, CostEstimator est, ExecutionContext ec);
+       
        public abstract PlanInputType getPlanInputType();
 
        public abstract CostModelType getCostModelType();

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java
index 2a1fd19..68731c1 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java
@@ -27,7 +27,6 @@ import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.lops.LopProperties;
 import org.apache.sysml.parser.ParForStatementBlock;
 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.ParForProgramBlock.PDataPartitionFormat;
@@ -77,7 +76,6 @@ public class OptimizerConstrained extends OptimizerRuleBased
         */
        @Override
        public boolean optimize(ParForStatementBlock sb, ParForProgramBlock pb, 
OptTree plan, CostEstimator est, ExecutionContext ec)
-               throws DMLRuntimeException
        {
                LOG.debug("--- "+getOptMode()+" OPTIMIZER -------");
 
@@ -230,7 +228,6 @@ public class OptimizerConstrained extends OptimizerRuleBased
 
        @Override
        protected boolean rewriteSetDataPartitioner(OptNode n, LocalVariableMap 
vars, HashMap<String,PartitionFormat> partitionedMatrices, double thetaM)
-               throws DMLRuntimeException
        {
                //call rewrite first to obtain partitioning information
                String initPlan = n.getParam(ParamType.DATA_PARTITIONER);
@@ -254,7 +251,6 @@ public class OptimizerConstrained extends OptimizerRuleBased
 
        @Override
        protected boolean rewriteSetExecutionStategy(OptNode n, double M0, 
double M, double M2, double M3, boolean flagLIX)
-               throws DMLRuntimeException
        {
                boolean ret = false;
 
@@ -262,7 +258,7 @@ public class OptimizerConstrained extends OptimizerRuleBased
                if( n.getExecType() != null && 
ConfigurationManager.isParallelParFor() )
                {
                        ParForProgramBlock pfpb = (ParForProgramBlock) 
OptTreeConverter
-                    .getAbstractPlanMapping().getMappedProg(n.getID())[1];
+                               
.getAbstractPlanMapping().getMappedProg(n.getID())[1];
 
                        PExecMode mode = PExecMode.LOCAL;
 
@@ -288,9 +284,7 @@ public class OptimizerConstrained extends OptimizerRuleBased
        ///
 
        @Override
-       protected void rewriteSetDegreeOfParallelism(OptNode n, double M, 
boolean flagNested)
-               throws DMLRuntimeException
-       {
+       protected void rewriteSetDegreeOfParallelism(OptNode n, double M, 
boolean flagNested) {
                // constraint awareness
                if( n.getK() > 0 && ConfigurationManager.isParallelParFor() )
                {
@@ -347,9 +341,7 @@ public class OptimizerConstrained extends OptimizerRuleBased
        ///
 
        @Override
-       protected void rewriteSetResultMerge( OptNode n, LocalVariableMap vars, 
boolean inLocal )
-               throws DMLRuntimeException
-       {
+       protected void rewriteSetResultMerge( OptNode n, LocalVariableMap vars, 
boolean inLocal ) {
                // constraint awareness
                if( 
!n.getParam(ParamType.RESULT_MERGE).equals(PResultMerge.UNSPECIFIED.toString()) 
)
                {
@@ -368,7 +360,6 @@ public class OptimizerConstrained extends OptimizerRuleBased
        ///
 
        protected void rewriteSetFusedDataPartitioningExecution(OptNode pn, 
double M, boolean flagLIX, HashMap<String, PartitionFormat> 
partitionedMatrices, LocalVariableMap vars, PExecMode emode)
-               throws DMLRuntimeException
        {
                if( emode == PExecMode.REMOTE_MR_DP || emode == 
PExecMode.REMOTE_SPARK_DP )
                {

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerRuleBased.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerRuleBased.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerRuleBased.java
index d5b09e1..9059e0f 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerRuleBased.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerRuleBased.java
@@ -19,7 +19,6 @@
 
 package org.apache.sysml.runtime.controlprogram.parfor.opt;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -41,7 +40,6 @@ import org.apache.sysml.hops.AggBinaryOp.MMultMethod;
 import org.apache.sysml.hops.Hop.MultiThreadedHop;
 import org.apache.sysml.hops.Hop.ParamBuiltinOp;
 import org.apache.sysml.hops.Hop.ReOrgOp;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.IndexingOp;
 import org.apache.sysml.hops.LeftIndexingOp;
 import org.apache.sysml.hops.LiteralOp;
@@ -56,11 +54,9 @@ import org.apache.sysml.hops.rewrite.ProgramRewriter;
 import org.apache.sysml.hops.rewrite.RewriteInjectSparkLoopCheckpointing;
 import org.apache.sysml.hops.recompile.Recompiler;
 import org.apache.sysml.lops.LopProperties;
-import org.apache.sysml.lops.LopsException;
 import org.apache.sysml.parser.DMLProgram;
 import org.apache.sysml.parser.Expression.DataType;
 import org.apache.sysml.parser.FunctionStatementBlock;
-import org.apache.sysml.parser.LanguageException;
 import org.apache.sysml.parser.ParForStatement;
 import org.apache.sysml.parser.ParForStatementBlock;
 import org.apache.sysml.parser.ParForStatementBlock.ResultVar;
@@ -200,7 +196,6 @@ public class OptimizerRuleBased extends Optimizer
         */
        @Override
        public boolean optimize(ParForStatementBlock sb, ParForProgramBlock pb, 
OptTree plan, CostEstimator est, ExecutionContext ec) 
-               throws DMLRuntimeException 
        {
                LOG.debug("--- "+getOptMode()+" OPTIMIZER -------");
 
@@ -399,7 +394,6 @@ public class OptimizerRuleBased extends Optimizer
        ///
 
        protected boolean rewriteSetDataPartitioner(OptNode n, LocalVariableMap 
vars, HashMap<String, PartitionFormat> partitionedMatrices, double thetaM ) 
-               throws DMLRuntimeException
        {
                if( n.getNodeType() != NodeType.PARFOR )
                        LOG.warn(getOptMode()+" OPT: Data partitioner can only 
be set for a ParFor node.");
@@ -454,7 +448,6 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected boolean rFindDataPartitioningCandidates( OptNode n, 
HashMap<String, PartitionFormat> cand, LocalVariableMap vars, double thetaM ) 
-               throws DMLRuntimeException
        {
                boolean ret = false;
 
@@ -507,10 +500,8 @@ public class OptimizerRuleBased extends Optimizer
         * @param dpf data partition format
         * @param vars local variable map
         * @return memory estimate
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        protected double getNewRIXMemoryEstimate( OptNode n, String varName, 
PartitionFormat dpf, LocalVariableMap vars ) 
-               throws DMLRuntimeException
        {
                double mem = -1;
                
@@ -544,9 +535,8 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected static LopProperties.ExecType getRIXExecType( MatrixObject 
mo, PDataPartitionFormat dpf, boolean withSparsity ) 
-               throws DMLRuntimeException
        {
-               double mem = -1;                
+               double mem = -1;
                
                long rlen = mo.getNumRows();
                long clen = mo.getNumColumns();
@@ -581,9 +571,7 @@ public class OptimizerRuleBased extends Optimizer
                        return LopProperties.ExecType.CP_FILE;
        }
 
-       public static boolean allowsBinaryCellPartitions( MatrixObject mo, 
PartitionFormat dpf ) 
-               throws DMLRuntimeException
-       {
+       public static boolean allowsBinaryCellPartitions( MatrixObject mo, 
PartitionFormat dpf ) {
                return (getRIXExecType(mo, 
PDataPartitionFormat.COLUMN_BLOCK_WISE, false)==LopProperties.ExecType.CP );
        }
        
@@ -591,9 +579,7 @@ public class OptimizerRuleBased extends Optimizer
        //REWRITE set result partitioning
        ///
 
-       protected boolean rewriteSetResultPartitioning(OptNode n, double M, 
LocalVariableMap vars) 
-               throws DMLRuntimeException
-       {
+       protected boolean rewriteSetResultPartitioning(OptNode n, double M, 
LocalVariableMap vars) {
                //preparations
                long id = n.getID();
                Object[] o = 
OptTreeConverter.getAbstractPlanMapping().getMappedProg(id);
@@ -626,25 +612,19 @@ public class OptimizerRuleBased extends Optimizer
                return apply;
        }
 
-       protected boolean isResultPartitionableAll( Collection<OptNode> nlist, 
ArrayList<ResultVar> resultVars, LocalVariableMap vars, String iterVarname ) 
-               throws DMLRuntimeException
-       {
+       protected boolean isResultPartitionableAll( Collection<OptNode> nlist, 
ArrayList<ResultVar> resultVars, LocalVariableMap vars, String iterVarname ) {
                boolean ret = true;
-               for( OptNode n : nlist )
-               {
+               for( OptNode n : nlist ) {
                        ret &= isResultPartitionable(n, resultVars, vars, 
iterVarname);
                        if(!ret) //early abort
                                break;
                }
-               
                return ret;
        }
 
        protected boolean isResultPartitionable( OptNode n, 
ArrayList<ResultVar> resultVars, LocalVariableMap vars, String iterVarname ) 
-               throws DMLRuntimeException
        {
                boolean ret = true;
-               
                //check left indexing operator
                String opStr = n.getParam(ParamType.OPSTRING);
                if( opStr==null || !opStr.equals(LeftIndexingOp.OPSTRING) )
@@ -754,9 +734,7 @@ public class OptimizerRuleBased extends Optimizer
                return (int) Math.floor( lbudget / 12 );
        }
 
-       protected void recompileLIX( OptNode n, LocalVariableMap vars ) 
-               throws DMLRuntimeException, HopsException, LopsException, 
IOException
-       {
+       protected void recompileLIX( OptNode n, LocalVariableMap vars ) {
                Hop h = 
OptTreeConverter.getAbstractPlanMapping().getMappedHop(n.getID());
                
                //set forced exec type
@@ -812,9 +790,7 @@ public class OptimizerRuleBased extends Optimizer
        //REWRITE set execution strategy
        ///
 
-       protected boolean rewriteSetExecutionStategy(OptNode n, double M0, 
double M, double M2, double M3, boolean flagLIX) 
-               throws DMLRuntimeException
-       {
+       protected boolean rewriteSetExecutionStategy(OptNode n, double M0, 
double M, double M2, double M3, boolean flagLIX) {
                boolean isCPOnly = n.isCPOnly();
                boolean isCPOnlyPossible = isCPOnly || isCPOnlyPossible(n, _rm);
 
@@ -900,9 +876,7 @@ public class OptimizerRuleBased extends Optimizer
                                && M > 
PROB_SIZE_THRESHOLD_MB/(isCtxCreated?10:1));
        }
 
-       protected boolean isCPOnlyPossible( OptNode n, double memBudget ) 
-               throws DMLRuntimeException
-       {
+       protected boolean isCPOnlyPossible( OptNode n, double memBudget ) {
                ExecType et = n.getExecType();
                boolean ret = ( et == ExecType.CP);
                
@@ -933,9 +907,7 @@ public class OptimizerRuleBased extends Optimizer
        //REWRITE set operations exec type
        ///
 
-       protected void rewriteSetOperationsExecType(OptNode pn, boolean 
recompile) 
-               throws DMLRuntimeException
-       {
+       protected void rewriteSetOperationsExecType(OptNode pn, boolean 
recompile) {
                //set exec type in internal opt tree
                int count = setOperationExecType(pn, ExecType.CP);
                
@@ -979,11 +951,8 @@ public class OptimizerRuleBased extends Optimizer
         * 
         * @param n internal representation of a plan alternative for program 
blocks and instructions
         * @param vars local variable map
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       protected void rewriteDataColocation( OptNode n, LocalVariableMap vars 
) 
-               throws DMLRuntimeException
-       {
+       protected void rewriteDataColocation( OptNode n, LocalVariableMap vars 
) {
                // data colocation is beneficial if we have dp=REMOTE_MR, 
etype=REMOTE_MR
                // and there is at least one direct col-/row-wise access with 
the index variable
                // on the partitioned matrix
@@ -1023,9 +992,7 @@ public class OptimizerRuleBased extends Optimizer
                LOG.debug(getOptMode()+" OPT: rewrite 'enable data colocation' 
- result="+apply+((apply)?" ("+varname+")":"") );
        }
 
-       protected void rFindDataColocationCandidates( OptNode n, 
HashSet<String> cand, String iterVarname ) 
-               throws DMLRuntimeException
-       {
+       protected void rFindDataColocationCandidates( OptNode n, 
HashSet<String> cand, String iterVarname ) {
                if( !n.isLeaf() )
                {
                        for( OptNode cn : n.getChilds() )
@@ -1074,17 +1041,15 @@ public class OptimizerRuleBased extends Optimizer
         * @param n internal representation of a plan alternative for program 
blocks and instructions
         * @param partitionedMatrices map of data partition formats
         * @param vars local variable map
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        protected void rewriteSetPartitionReplicationFactor( OptNode n, 
HashMap<String, PartitionFormat> partitionedMatrices, LocalVariableMap vars ) 
-               throws DMLRuntimeException
        {
                boolean apply = false;
                double sizeReplicated = 0;
                int replication = ParForProgramBlock.WRITE_REPLICATION_FACTOR;
                
                ParForProgramBlock pfpb = (ParForProgramBlock) OptTreeConverter
-                                                               
.getAbstractPlanMapping().getMappedProg(n.getID())[1];
+                       .getAbstractPlanMapping().getMappedProg(n.getID())[1];
                
                if(((n.getExecType()==ExecType.MR && 
n.getParam(ParamType.DATA_PARTITIONER).equals(PDataPartitioner.REMOTE_MR.name()))
                    || (n.getExecType()==ExecType.SPARK && 
n.getParam(ParamType.DATA_PARTITIONER).equals(PDataPartitioner.REMOTE_SPARK.name())))
@@ -1144,19 +1109,17 @@ public class OptimizerRuleBased extends Optimizer
         * 
         * @param n internal representation of a plan alternative for program 
blocks and instructions
         * @param vars local variable map
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        protected void rewriteSetExportReplicationFactor( OptNode n, 
LocalVariableMap vars ) 
-               throws DMLRuntimeException
        {
                boolean apply = false;
                int replication = -1;
                
                ParForProgramBlock pfpb = (ParForProgramBlock) OptTreeConverter
-                                                               
.getAbstractPlanMapping().getMappedProg(n.getID())[1];
+                       .getAbstractPlanMapping().getMappedProg(n.getID())[1];
                
                //decide on the replication factor 
-               if( n.getExecType()==getRemoteExecType() )              
+               if( n.getExecType()==getRemoteExecType() )
                {
                        apply = true;
                        
@@ -1182,9 +1145,8 @@ public class OptimizerRuleBased extends Optimizer
         *
         * @param n the parfor {@link OptNode}
         * @return the maximum memory needed for any operation inside a parfor 
in CP execution mode
-        * @throws DMLRuntimeException if error
         */
-       protected double getMaxCPOnlyBudget(OptNode n) throws 
DMLRuntimeException {
+       protected double getMaxCPOnlyBudget(OptNode n) {
                ExecType et = n.getExecType();
                double ret = 0;
 
@@ -1215,7 +1177,6 @@ public class OptimizerRuleBased extends Optimizer
        ///
 
        protected void rewriteSetDegreeOfParallelism(OptNode n, double M, 
boolean flagNested) 
-               throws DMLRuntimeException 
        {
                ExecType type = n.getExecType();
                long id = n.getID();
@@ -1304,8 +1265,7 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected void rAssignRemainingParallelism(OptNode n, int parforK, int 
opsK) 
-               throws DMLRuntimeException
-       {               
+       {
                ArrayList<OptNode> childs = n.getChilds();
                if( childs != null ) 
                {
@@ -1486,10 +1446,8 @@ public class OptimizerRuleBased extends Optimizer
         * @param flagLIX ?
         * @param partitionedMatrices map of data partition formats
         * @param vars local variable map
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        protected void rewriteSetFusedDataPartitioningExecution(OptNode pn, 
double M, boolean flagLIX, HashMap<String, PartitionFormat> 
partitionedMatrices, LocalVariableMap vars) 
-               throws DMLRuntimeException 
        {
                //assertions (warnings of corrupt optimizer decisions)
                if( pn.getNodeType() != NodeType.PARFOR )
@@ -1541,7 +1499,6 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected boolean rIsAccessByIterationVariable( OptNode n, String 
varName, String iterVarname ) 
-               throws DMLRuntimeException
        {
                boolean ret = true;
                
@@ -1602,7 +1559,6 @@ public class OptimizerRuleBased extends Optimizer
        ///
        
        protected void rewriteSetTranposeSparseVectorOperations(OptNode pn, 
HashMap<String, PartitionFormat> partitionedMatrices, LocalVariableMap vars) 
-               throws DMLRuntimeException 
        {
                //assertions (warnings of corrupt optimizer decisions)
                if( pn.getNodeType() != NodeType.PARFOR )
@@ -1611,9 +1567,9 @@ public class OptimizerRuleBased extends Optimizer
                boolean apply = false;
                
                ParForProgramBlock pfpb = (ParForProgramBlock) OptTreeConverter
-                .getAbstractPlanMapping().getMappedProg(pn.getID())[1];
+                       .getAbstractPlanMapping().getMappedProg(pn.getID())[1];
                
-               if(    pfpb.getExecMode() == PExecMode.REMOTE_MR_DP 
+               if( pfpb.getExecMode() == PExecMode.REMOTE_MR_DP 
                        && partitionedMatrices.size()==1 ) //general applicable
                {
                        String moVarname = 
partitionedMatrices.keySet().iterator().next();
@@ -1635,7 +1591,6 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected boolean rIsTransposeSafePartition( OptNode n, String varName 
) 
-               throws DMLRuntimeException
        {
                boolean ret = true;
                
@@ -1670,7 +1625,6 @@ public class OptimizerRuleBased extends Optimizer
        ///
 
        protected void rewriteSetInPlaceResultIndexing(OptNode pn, double M, 
LocalVariableMap vars, HashSet<ResultVar> inPlaceResultVars, ExecutionContext 
ec) 
-               throws DMLRuntimeException 
        {
                //assertions (warnings of corrupt optimizer decisions)
                if( pn.getNodeType() != NodeType.PARFOR )
@@ -1729,7 +1683,6 @@ public class OptimizerRuleBased extends Optimizer
        }
        
        protected boolean rHasOnlyInPlaceSafeLeftIndexing( OptNode n, 
ArrayList<ResultVar> retVars ) 
-               throws DMLRuntimeException
        {
                boolean ret = true;
                if( !n.isLeaf() ) {
@@ -1770,7 +1723,6 @@ public class OptimizerRuleBased extends Optimizer
        ///
 
        protected void rewriteDisableCPCaching(OptNode pn, HashSet<ResultVar> 
inplaceResultVars, LocalVariableMap vars) 
-               throws DMLRuntimeException 
        {
                //assertions (warnings of corrupt optimizer decisions)
                if( pn.getNodeType() != NodeType.PARFOR )
@@ -1792,7 +1744,6 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected double rComputeSumMemoryIntermediates( OptNode n, 
HashSet<ResultVar> inplaceResultVars )
-               throws DMLRuntimeException
        {
                double sum = 0;
                
@@ -1829,7 +1780,6 @@ public class OptimizerRuleBased extends Optimizer
        ///
 
        protected void rewriteEnableRuntimePiggybacking( OptNode n, 
LocalVariableMap vars, HashMap<String, PartitionFormat> partitionedMatrices ) 
-               throws DMLRuntimeException
        {
                ParForProgramBlock pfpb = (ParForProgramBlock) OptTreeConverter
                                
.getAbstractPlanMapping().getMappedProg(n.getID())[1];
@@ -1854,7 +1804,6 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected boolean rHasSharedMRInput( OptNode n, Set<String> inputVars, 
Set<String> partitionedVars, HashSet<String> sharedVars ) 
-               throws DMLRuntimeException
        {
                boolean ret = false;
                
@@ -1896,7 +1845,6 @@ public class OptimizerRuleBased extends Optimizer
        ///
 
        protected void rewriteInjectSparkLoopCheckpointing(OptNode n) 
-               throws DMLRuntimeException 
        {
                //get program blocks of root parfor
                Object[] progobj = 
OptTreeConverter.getAbstractPlanMapping().getMappedProg(n.getID());
@@ -1933,7 +1881,6 @@ public class OptimizerRuleBased extends Optimizer
        ///
 
        protected void rewriteInjectSparkRepartition(OptNode n, 
LocalVariableMap vars) 
-               throws DMLRuntimeException 
        {
                //get program blocks of root parfor
                Object[] progobj = 
OptTreeConverter.getAbstractPlanMapping().getMappedProg(n.getID());
@@ -2010,7 +1957,6 @@ public class OptimizerRuleBased extends Optimizer
        ///
 
        protected void rewriteSetSparkEagerRDDCaching(OptNode n, 
LocalVariableMap vars) 
-               throws DMLRuntimeException 
        {
                //get program blocks of root parfor
                Object[] progobj = 
OptTreeConverter.getAbstractPlanMapping().getMappedProg(n.getID());
@@ -2021,7 +1967,7 @@ public class OptimizerRuleBased extends Optimizer
                
                if(    OptimizerUtils.isSparkExecutionMode() //spark exec mode
                        && n.getExecType() == ExecType.CP                
//local parfor 
-                       && _N > 1                            )   //at least 2 
iterations                             
+                       && _N > 1                            )   //at least 2 
iterations
                {
                        Set<String> cand = 
pfsb.variablesRead().getVariableNames();
                        Collection<String> rpVars = 
pfpb.getSparkRepartitionVariables();
@@ -2061,10 +2007,9 @@ public class OptimizerRuleBased extends Optimizer
        ///
 
        protected void rewriteRemoveUnnecessaryCompareMatrix( OptNode n, 
ExecutionContext ec ) 
-               throws DMLRuntimeException
        {
                ParForProgramBlock pfpb = (ParForProgramBlock) OptTreeConverter
-                           
.getAbstractPlanMapping().getMappedProg(n.getID())[1];
+                       .getAbstractPlanMapping().getMappedProg(n.getID())[1];
 
                ArrayList<ResultVar> cleanedVars = new ArrayList<>();
                ArrayList<ResultVar> resultVars = pfpb.getResultVariables();
@@ -2095,26 +2040,19 @@ public class OptimizerRuleBased extends Optimizer
                        +" 
("+ProgramConverter.serializeResultVariables(cleanedVars)+")" );
        }
 
-       protected boolean rContainsResultFullReplace( OptNode n, String 
resultVar, String iterVarname, MatrixObject mo ) 
-               throws DMLRuntimeException
-       {
+       protected boolean rContainsResultFullReplace( OptNode n, String 
resultVar, String iterVarname, MatrixObject mo ) {
                boolean ret = false;
-               
                //process hop node
                if( n.getNodeType()==NodeType.HOP )
                        ret |= isResultFullReplace(n, resultVar, iterVarname, 
mo);
-                       
                //process childs recursively
-               if( !n.isLeaf() ) {
+               if( !n.isLeaf() )
                        for( OptNode c : n.getChilds() ) 
                                ret |= rContainsResultFullReplace(c, resultVar, 
iterVarname, mo);
-               }
-               
                return ret;
        }
 
        protected boolean isResultFullReplace( OptNode n, String resultVar, 
String iterVarname, MatrixObject mo ) 
-               throws DMLRuntimeException
        {
                //check left indexing operator
                String opStr = n.getParam(ParamType.OPSTRING);
@@ -2181,9 +2119,7 @@ public class OptimizerRuleBased extends Optimizer
        //REWRITE set result merge
        ///
 
-       protected void rewriteSetResultMerge( OptNode n, LocalVariableMap vars, 
boolean inLocal ) 
-               throws DMLRuntimeException
-       {
+       protected void rewriteSetResultMerge( OptNode n, LocalVariableMap vars, 
boolean inLocal ) {
                ParForProgramBlock pfpb = (ParForProgramBlock) OptTreeConverter
                        .getAbstractPlanMapping().getMappedProg(n.getID())[1];
                
@@ -2267,7 +2203,6 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected boolean hasResultMRLeftIndexing( OptNode n, 
ArrayList<ResultVar> resultVars, LocalVariableMap vars, boolean checkSize ) 
-               throws DMLRuntimeException
        {
                boolean ret = false;
                
@@ -2312,10 +2247,8 @@ public class OptimizerRuleBased extends Optimizer
         * @param vars local variable map
         * @param checkSize ?
         * @return true if result sizes larger than local memory budget
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        protected boolean hasLargeTotalResults( OptNode pn, 
ArrayList<ResultVar> resultVars, LocalVariableMap vars, boolean checkSize ) 
-               throws DMLRuntimeException
        {
                double totalSize = 0;
                
@@ -2370,7 +2303,6 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected boolean hasOnlyInMemoryResults( OptNode n, 
ArrayList<ResultVar> resultVars, LocalVariableMap vars, boolean inLocal ) 
-               throws DMLRuntimeException
        {
                boolean ret = true;
                
@@ -2404,9 +2336,7 @@ public class OptimizerRuleBased extends Optimizer
                return ret;
        }
 
-       protected void rInvokeSetResultMerge( Collection<OptNode> nodes, 
LocalVariableMap vars, boolean inLocal) 
-               throws DMLRuntimeException
-       {
+       protected void rInvokeSetResultMerge( Collection<OptNode> nodes, 
LocalVariableMap vars, boolean inLocal) {
                for( OptNode n : nodes )
                        if( n.getNodeType() == NodeType.PARFOR )
                        {
@@ -2461,7 +2391,6 @@ public class OptimizerRuleBased extends Optimizer
        ///
 
        protected void rewriteRemoveRecursiveParFor(OptNode n, LocalVariableMap 
vars) 
-               throws DMLRuntimeException 
        {
                int count = 0; //num removed parfor
                
@@ -2514,7 +2443,6 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected void rFindAndUnfoldRecursiveFunction( OptNode n, 
ParForProgramBlock parfor, HashSet<ParForProgramBlock> recPBs, LocalVariableMap 
vars )
-               throws DMLRuntimeException, HopsException, LanguageException
        {
                //unfold if found
                if( n.getNodeType() == NodeType.FUNCCALL && n.isRecursive())
@@ -2616,7 +2544,6 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected void rReplaceFunctionNames( OptNode n, String oldName, String 
newName ) 
-               throws DMLRuntimeException, HopsException
        {
                if( n.getNodeType() == NodeType.FUNCCALL)
                {
@@ -2659,7 +2586,6 @@ public class OptimizerRuleBased extends Optimizer
        }
 
        protected int removeRecursiveParFor( OptNode n, 
HashSet<ParForProgramBlock> recPBs ) 
-               throws DMLRuntimeException
        {
                int count = 0;
                
@@ -2705,18 +2631,13 @@ public class OptimizerRuleBased extends Optimizer
        //REWRITE remove unnecessary parfor
        ///
 
-       protected void rewriteRemoveUnnecessaryParFor(OptNode n) 
-               throws DMLRuntimeException 
-       {
+       protected void rewriteRemoveUnnecessaryParFor(OptNode n) {
                int count = removeUnnecessaryParFor( n );
-               
                _numEvaluatedPlans++;
                LOG.debug(getOptMode()+" OPT: rewrite 'remove unnecessary 
parfor' - result="+count );
        }
 
-       protected int removeUnnecessaryParFor( OptNode n ) 
-               throws DMLRuntimeException
-       {
+       protected int removeUnnecessaryParFor( OptNode n ) {
                int count = 0;
                
                if( !n.isLeaf() )

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
index 71295b4..ff954bf 100644
--- 
a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
+++ 
b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
@@ -24,7 +24,6 @@ import java.util.ArrayList;
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.conf.DMLConfig;
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.IndexingOp;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.hops.codegen.SpoofCompiler;
@@ -94,10 +93,8 @@ public class ProgramRecompiler
         * @param var variable
         * @param ec execution context
         * @param force if true, set and recompile the respective indexing hops
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        public static void rFindAndRecompileIndexingHOP( StatementBlock sb, 
ProgramBlock pb, String var, ExecutionContext ec, boolean force )
-               throws DMLRuntimeException
        {
                if( pb instanceof IfProgramBlock && sb instanceof 
IfStatementBlock )
                {
@@ -200,9 +197,7 @@ public class ProgramRecompiler
                }
        }
 
-       public static LocalVariableMap getReusableScalarVariables( DMLProgram 
prog, StatementBlock parforSB, LocalVariableMap vars ) 
-               throws DMLRuntimeException
-       {
+       public static LocalVariableMap getReusableScalarVariables( DMLProgram 
prog, StatementBlock parforSB, LocalVariableMap vars ) {
                LocalVariableMap constVars = new LocalVariableMap(); 
                
                for( String varname : vars.keySet() )
@@ -219,7 +214,6 @@ public class ProgramRecompiler
        }
        
        public static void replaceConstantScalarVariables( StatementBlock sb, 
LocalVariableMap vars )
-               throws DMLRuntimeException, HopsException
        {
                if( sb instanceof IfStatementBlock )
                {
@@ -262,9 +256,7 @@ public class ProgramRecompiler
                }
        }
 
-       private static void replacePredicateLiterals( Hop pred, 
LocalVariableMap vars )
-               throws DMLRuntimeException
-       {
+       private static void replacePredicateLiterals( Hop pred, 
LocalVariableMap vars ) {
                if( pred != null ){
                        pred.resetVisitStatus();
                        Recompiler.rReplaceLiterals(pred, vars, true);
@@ -281,40 +273,30 @@ public class ProgramRecompiler
         * @param parforSB parfor statement block
         * @param var variable
         * @return true if can reuse variable
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public static boolean isApplicableForReuseVariable( DMLProgram prog, 
StatementBlock parforSB, String var )
-               throws DMLRuntimeException
-       {
+       public static boolean isApplicableForReuseVariable( DMLProgram prog, 
StatementBlock parforSB, String var ) {
                boolean ret = false;
-               
                for( StatementBlock sb : prog.getStatementBlocks() )
                        ret |= isApplicableForReuseVariable(sb, parforSB, var);
-               
-               return  ret;    
+               return  ret;
        }
 
-       private static boolean isApplicableForReuseVariable( StatementBlock sb, 
StatementBlock parforSB, String var )
-                       throws DMLRuntimeException
-       {
+       private static boolean isApplicableForReuseVariable( StatementBlock sb, 
StatementBlock parforSB, String var ) {
                boolean ret = false;
                
-               if( sb instanceof IfStatementBlock )
-               {
+               if( sb instanceof IfStatementBlock ) {
                        IfStatement is = (IfStatement) sb.getStatement(0);
                        for( StatementBlock lsb : is.getIfBody() )
                                ret |= isApplicableForReuseVariable(lsb, 
parforSB, var);
                        for( StatementBlock lsb : is.getElseBody() )
                                ret |= isApplicableForReuseVariable(lsb, 
parforSB, var);
                }
-               else if( sb instanceof WhileStatementBlock )
-               {
+               else if( sb instanceof WhileStatementBlock ) {
                        WhileStatement ws = (WhileStatement) sb.getStatement(0);
                        for( StatementBlock lsb : ws.getBody() )
-                               ret |= isApplicableForReuseVariable(lsb, 
parforSB, var);                
+                               ret |= isApplicableForReuseVariable(lsb, 
parforSB, var);
                }
-               else if( sb instanceof ForStatementBlock ) //for or parfor
-               {
+               else if( sb instanceof ForStatementBlock ) { //for or parfor
                        ForStatementBlock fsb = (ForStatementBlock)sb;
                        ForStatement fs = (ForStatement) fsb.getStatement(0);
                        if( fsb == parforSB ) {
@@ -326,8 +308,7 @@ public class ProgramRecompiler
                                        ret |= 
isApplicableForReuseVariable(lsb, parforSB, var);
                        }
                }
-               
-               return  ret && !sb.variablesUpdated().containsVariable(var);    
+               return  ret && !sb.variablesUpdated().containsVariable(var);
        }
 
        public static boolean containsAtLeastOneFunction( ProgramBlock pb )
@@ -368,7 +349,6 @@ public class ProgramRecompiler
        }
 
        private static ArrayList<Instruction> rFindAndRecompileIndexingHOP( Hop 
hop, ArrayList<Instruction> in, String var, ExecutionContext ec, boolean force 
) 
-               throws DMLRuntimeException
        {
                ArrayList<Instruction> tmp = in;
                
@@ -468,9 +448,7 @@ public class ProgramRecompiler
        ///////
        // additional general-purpose functionalities
 
-       protected static ArrayList<Instruction> 
createNestedParallelismToInstructionSet(String iterVar, String offset) 
-               throws DMLRuntimeException 
-       {
+       protected static ArrayList<Instruction> 
createNestedParallelismToInstructionSet(String iterVar, String offset) {
                //create instruction string
                StringBuilder sb = new 
StringBuilder("CP"+Lop.OPERAND_DELIMITOR+"+"+Lop.OPERAND_DELIMITOR);
                sb.append(iterVar);

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/FrameReader.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameReader.java 
b/src/main/java/org/apache/sysml/runtime/io/FrameReader.java
index 584ff4d..66589d8 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameReader.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameReader.java
@@ -94,10 +94,9 @@ public abstract class FrameReader
         * @param nrow number of rows
         * @return frame block
         * @throws IOException if IOException occurs
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        protected static FrameBlock createOutputFrameBlock(ValueType[] schema, 
String[] names, long nrow)
-               throws IOException, DMLRuntimeException
+               throws IOException
        {
                //check schema and column names
                if( !OptimizerUtils.isValidCPDimensions(schema, names) )

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/FrameReaderFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameReaderFactory.java 
b/src/main/java/org/apache/sysml/runtime/io/FrameReaderFactory.java
index efb4014..0f9d634 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameReaderFactory.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameReaderFactory.java
@@ -29,18 +29,13 @@ import org.apache.sysml.runtime.matrix.data.InputInfo;
 public class FrameReaderFactory 
 {
 
-       public static FrameReader createFrameReader( InputInfo iinfo ) 
-               throws DMLRuntimeException
-       {
+       public static FrameReader createFrameReader( InputInfo iinfo ) {
                FileFormatProperties props = (iinfo==InputInfo.CSVInputInfo) ?
-                       new CSVFileFormatProperties() : null;           
-               
+                       new CSVFileFormatProperties() : null;
                return createFrameReader(iinfo, props);
        }
 
-       public static FrameReader createFrameReader( InputInfo iinfo, 
FileFormatProperties props ) 
-               throws DMLRuntimeException
-       {
+       public static FrameReader createFrameReader( InputInfo iinfo, 
FileFormatProperties props ) {
                FrameReader reader = null;
 
                if( iinfo == InputInfo.TextCellInputInfo ) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/FrameWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameWriter.java 
b/src/main/java/org/apache/sysml/runtime/io/FrameWriter.java
index a4ffaba..2b44829 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameWriter.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameWriter.java
@@ -38,9 +38,7 @@ public abstract class FrameWriter
        public abstract void writeFrameToHDFS( FrameBlock src, String fname, 
long rlen, long clen )
                throws IOException, DMLRuntimeException;
 
-       public static FrameBlock[] createFrameBlocksForReuse( ValueType[] 
schema, String[] names, long rlen ) 
-               throws DMLRuntimeException
-       {
+       public static FrameBlock[] createFrameBlocksForReuse( ValueType[] 
schema, String[] names, long rlen ) {
                FrameBlock frameBlock[] = new FrameBlock[1];
                frameBlock[0] = new FrameBlock(schema, names);
                return frameBlock;

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java 
b/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java
index d6b12c9..3425a8d 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java
@@ -82,12 +82,11 @@ public class FrameWriterBinaryBlock extends FrameWriter
         * @param blen block length
         * @param rl lower row
         * @param ru upper row
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         * @throws IOException if IOException occurs
         */
        @SuppressWarnings("deprecation")
        protected static void writeBinaryBlockFrameToSequenceFile( Path path, 
JobConf job, FileSystem fs, FrameBlock src, int blen, int rl, int ru ) 
-               throws DMLRuntimeException, IOException
+               throws IOException
        {
                //1) create sequence file writer 
                SequenceFile.Writer writer = null;

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/FrameWriterFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameWriterFactory.java 
b/src/main/java/org/apache/sysml/runtime/io/FrameWriterFactory.java
index 3555a38..df1ed89 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameWriterFactory.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameWriterFactory.java
@@ -28,15 +28,11 @@ import org.apache.sysml.runtime.matrix.data.OutputInfo;
 
 public class FrameWriterFactory 
 {
-
-       public static FrameWriter createFrameWriter( OutputInfo oinfo ) 
-                       throws DMLRuntimeException
-       {
+       public static FrameWriter createFrameWriter( OutputInfo oinfo ) {
                return createFrameWriter(oinfo, null);
        }
 
        public static FrameWriter createFrameWriter( OutputInfo oinfo, 
FileFormatProperties props ) 
-               throws DMLRuntimeException
        {
                FrameWriter writer = null;
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/MatrixReader.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/MatrixReader.java 
b/src/main/java/org/apache/sysml/runtime/io/MatrixReader.java
index 513a741..f9df756 100644
--- a/src/main/java/org/apache/sysml/runtime/io/MatrixReader.java
+++ b/src/main/java/org/apache/sysml/runtime/io/MatrixReader.java
@@ -69,11 +69,10 @@ public abstract class MatrixReader
         * @param mallocSparse if true and sparse, allocate sparse rows block
         * @return matrix block
         * @throws IOException if IOException occurs
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        protected static MatrixBlock createOutputMatrixBlock( long rlen, long 
clen, 
                        int bclen, int brlen, long estnnz, boolean mallocDense, 
boolean mallocSparse ) 
-               throws IOException, DMLRuntimeException
+               throws IOException
        {
                //check input dimension
                if( !OptimizerUtils.isValidCPDimensions(rlen, clen) )

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/MatrixReaderFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/MatrixReaderFactory.java 
b/src/main/java/org/apache/sysml/runtime/io/MatrixReaderFactory.java
index d35e856..68a1d2b 100644
--- a/src/main/java/org/apache/sysml/runtime/io/MatrixReaderFactory.java
+++ b/src/main/java/org/apache/sysml/runtime/io/MatrixReaderFactory.java
@@ -31,7 +31,6 @@ public class MatrixReaderFactory
 {
 
        public static MatrixReader createMatrixReader( InputInfo iinfo ) 
-               throws DMLRuntimeException
        {
                MatrixReader reader = null;
                
@@ -66,7 +65,6 @@ public class MatrixReaderFactory
        }
 
        public static MatrixReader createMatrixReader( ReadProperties props ) 
-               throws DMLRuntimeException
        {
                //check valid read properties
                if( props == null )

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/MatrixWriter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/MatrixWriter.java 
b/src/main/java/org/apache/sysml/runtime/io/MatrixWriter.java
index 67dd8c2..45ba2d9 100644
--- a/src/main/java/org/apache/sysml/runtime/io/MatrixWriter.java
+++ b/src/main/java/org/apache/sysml/runtime/io/MatrixWriter.java
@@ -46,13 +46,11 @@ public abstract class MatrixWriter
         * @param brlen number of rows in block
         * @param bclen number of columns in block
         * @throws IOException if IOException occurs
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        public abstract void writeEmptyMatrixToHDFS( String fname, long rlen, 
long clen, int brlen, int bclen )
-               throws IOException, DMLRuntimeException;
+               throws IOException;
 
        public static MatrixBlock[] createMatrixBlocksForReuse( long rlen, long 
clen, int brlen, int bclen, boolean sparse, long nonZeros ) 
-               throws DMLRuntimeException
        {
                MatrixBlock[] blocks = new MatrixBlock[4];
                double sparsity = ((double)nonZeros)/(rlen*clen);

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/MatrixWriterFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/MatrixWriterFactory.java 
b/src/main/java/org/apache/sysml/runtime/io/MatrixWriterFactory.java
index 930c241..f5a93bb 100644
--- a/src/main/java/org/apache/sysml/runtime/io/MatrixWriterFactory.java
+++ b/src/main/java/org/apache/sysml/runtime/io/MatrixWriterFactory.java
@@ -29,14 +29,11 @@ import org.apache.sysml.runtime.matrix.data.OutputInfo;
 public class MatrixWriterFactory 
 {
 
-       public static MatrixWriter createMatrixWriter( OutputInfo oinfo ) 
-                       throws DMLRuntimeException
-       {
+       public static MatrixWriter createMatrixWriter( OutputInfo oinfo ) {
                return createMatrixWriter(oinfo, -1, null);
        }
 
        public static MatrixWriter createMatrixWriter( OutputInfo oinfo, int 
replication, FileFormatProperties props ) 
-               throws DMLRuntimeException
        {
                MatrixWriter writer = null;
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/ReaderBinaryBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/ReaderBinaryBlock.java 
b/src/main/java/org/apache/sysml/runtime/io/ReaderBinaryBlock.java
index 98edac4..a0c1ca3 100644
--- a/src/main/java/org/apache/sysml/runtime/io/ReaderBinaryBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/io/ReaderBinaryBlock.java
@@ -135,10 +135,9 @@ public class ReaderBinaryBlock extends MatrixReader
         * @param brlen number of rows in block
         * @param bclen number of columns in block
         * @throws IOException if IOException occurs
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        private static void readBinaryBlockMatrixFromHDFS( Path path, JobConf 
job, FileSystem fs, MatrixBlock dest, long rlen, long clen, int brlen, int 
bclen )
-               throws IOException, DMLRuntimeException
+               throws IOException
        {
                boolean sparse = dest.isInSparseFormat();
                MatrixIndexes key = new MatrixIndexes(); 

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/io/WriterBinaryBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/WriterBinaryBlock.java 
b/src/main/java/org/apache/sysml/runtime/io/WriterBinaryBlock.java
index c9cea0f..59fe573 100644
--- a/src/main/java/org/apache/sysml/runtime/io/WriterBinaryBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/io/WriterBinaryBlock.java
@@ -103,7 +103,7 @@ public class WriterBinaryBlock extends MatrixWriter
 
        @SuppressWarnings("deprecation")
        protected final void writeBinaryBlockMatrixToSequenceFile( Path path, 
JobConf job, FileSystem fs, MatrixBlock src, int brlen, int bclen, int rl, int 
ru ) 
-               throws DMLRuntimeException, IOException
+               throws IOException
        {
                boolean sparse = src.isInSparseFormat();
                int rlen = src.getNumRows();

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java 
b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
index 78c01fa..bfb394f 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
@@ -312,11 +312,8 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock, Externalizab
         * @param arr double array matrix
         * @param r number of rows
         * @param c number of columns
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public void init(double[] arr, int r, int c) 
-               throws DMLRuntimeException 
-       {       
+       public void init(double[] arr, int r, int c) {
                //input checks 
                if ( sparse )
                        throw new DMLRuntimeException("MatrixBlockDSM.init() 
can be invoked only on matrices with dense representation.");
@@ -332,8 +329,7 @@ public class MatrixBlock extends MatrixValue implements 
CacheBlock, Externalizab
        }
 
        public boolean isAllocated() {
-               return sparse ? (sparseBlock!=null)
-                       : (denseBlock!=null);
+               return sparse ? (sparseBlock!=null) : (denseBlock!=null);
        }
 
        public MatrixBlock allocateDenseBlock() {

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/transform/decode/DecoderFactory.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/transform/decode/DecoderFactory.java 
b/src/main/java/org/apache/sysml/runtime/transform/decode/DecoderFactory.java
index 19aca0f..d8b9f3a 100644
--- 
a/src/main/java/org/apache/sysml/runtime/transform/decode/DecoderFactory.java
+++ 
b/src/main/java/org/apache/sysml/runtime/transform/decode/DecoderFactory.java
@@ -38,8 +38,7 @@ public class DecoderFactory
 {
        @SuppressWarnings("unchecked")
        public static Decoder createDecoder(String spec, String[] colnames, 
ValueType[] schema, FrameBlock meta) 
-               throws DMLRuntimeException 
-       {       
+       {
                Decoder decoder = null;
                
                try 

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/transform/encode/EncoderFactory.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/transform/encode/EncoderFactory.java 
b/src/main/java/org/apache/sysml/runtime/transform/encode/EncoderFactory.java
index a1cc0d0..3914f11 100644
--- 
a/src/main/java/org/apache/sysml/runtime/transform/encode/EncoderFactory.java
+++ 
b/src/main/java/org/apache/sysml/runtime/transform/encode/EncoderFactory.java
@@ -36,19 +36,17 @@ import org.apache.wink.json4j.JSONObject;
 
 public class EncoderFactory 
 {
-       public static Encoder createEncoder(String spec, String[] colnames, int 
clen, FrameBlock meta) throws DMLRuntimeException {
+       public static Encoder createEncoder(String spec, String[] colnames, int 
clen, FrameBlock meta) {
                return createEncoder(spec, colnames, 
UtilFunctions.nCopies(clen, ValueType.STRING), meta);
        }
 
-       public static Encoder createEncoder(String spec, String[] colnames, 
ValueType[] schema, int clen, FrameBlock meta) throws DMLRuntimeException {
+       public static Encoder createEncoder(String spec, String[] colnames, 
ValueType[] schema, int clen, FrameBlock meta) {
                ValueType[] lschema = (schema==null) ? 
UtilFunctions.nCopies(clen, ValueType.STRING) : schema;
                return createEncoder(spec, colnames, lschema, meta);
        }
        
        @SuppressWarnings("unchecked")
-       public static Encoder createEncoder(String spec, String[] colnames, 
ValueType[] schema, FrameBlock meta) 
-               throws DMLRuntimeException 
-       {
+       public static Encoder createEncoder(String spec, String[] colnames, 
ValueType[] schema, FrameBlock meta) {
                Encoder encoder = null;
                int clen = schema.length;
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/transform/meta/TfMetaUtils.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/transform/meta/TfMetaUtils.java 
b/src/main/java/org/apache/sysml/runtime/transform/meta/TfMetaUtils.java
index e8d512e..9242d4a 100644
--- a/src/main/java/org/apache/sysml/runtime/transform/meta/TfMetaUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/transform/meta/TfMetaUtils.java
@@ -50,7 +50,7 @@ import org.apache.wink.json4j.JSONObject;
 
 public class TfMetaUtils 
 {
-       public static boolean isIDSpec(String spec) throws DMLRuntimeException {
+       public static boolean isIDSpec(String spec) {
                try {
                        JSONObject jSpec = new JSONObject(spec);
                        return isIDSpec(jSpec);
@@ -64,13 +64,11 @@ public class TfMetaUtils
                return spec.containsKey("ids") && spec.getBoolean("ids");
        }
 
-       public static boolean containsOmitSpec(String spec, String[] colnames) 
throws DMLRuntimeException {
+       public static boolean containsOmitSpec(String spec, String[] colnames) {
                return (TfMetaUtils.parseJsonIDList(spec, colnames, 
TfUtils.TXMETHOD_OMIT).length > 0); 
        }
 
-       public static int[] parseJsonIDList(String spec, String[] colnames, 
String group) 
-               throws DMLRuntimeException 
-       {
+       public static int[] parseJsonIDList(String spec, String[] colnames, 
String group) {
                try {
                        JSONObject jSpec = new JSONObject(spec);
                        return parseJsonIDList(jSpec, colnames, group);

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/util/ConvolutionUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/util/ConvolutionUtils.java 
b/src/main/java/org/apache/sysml/runtime/util/ConvolutionUtils.java
index 9800773..bf66681 100644
--- a/src/main/java/org/apache/sysml/runtime/util/ConvolutionUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/util/ConvolutionUtils.java
@@ -21,7 +21,6 @@ package org.apache.sysml.runtime.util;
 
 import java.util.Arrays;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.matrix.data.MatrixBlock;
 
 
@@ -70,7 +69,7 @@ public class ConvolutionUtils {
                return ret;
        }
        
-       public static void fillBias(MatrixBlock bias, double [] outputArray, 
int src_rl, int src_ru, int N, int K, int PQ) throws DMLRuntimeException {
+       public static void fillBias(MatrixBlock bias, double [] outputArray, 
int src_rl, int src_ru, int N, int K, int PQ) {
                // bias.getNumColumns() == 1 checked outside
                if(bias.isInSparseFormat()) {
                        for(int k = 0; k < K; k++) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/util/DataConverter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/util/DataConverter.java 
b/src/main/java/org/apache/sysml/runtime/util/DataConverter.java
index 83b8149..82eee9d 100644
--- a/src/main/java/org/apache/sysml/runtime/util/DataConverter.java
+++ b/src/main/java/org/apache/sysml/runtime/util/DataConverter.java
@@ -410,11 +410,8 @@ public class DataConverter
         * 
         * @param data 2d double array
         * @return matrix block
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public static MatrixBlock convertToMatrixBlock( double[][] data ) 
-               throws DMLRuntimeException
-       {
+       public static MatrixBlock convertToMatrixBlock( double[][] data ) {
                int rows = data.length;
                int cols = (rows > 0)? data[0].length : 0;
                MatrixBlock mb = new MatrixBlock(rows, cols, false);
@@ -437,25 +434,14 @@ public class DataConverter
         * @param data double array
         * @param columnVector if true, create matrix with single column. if 
false, create matrix with single row
         * @return matrix block
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public static MatrixBlock convertToMatrixBlock( double[] data, boolean 
columnVector ) 
-               throws DMLRuntimeException
-       {
+       public static MatrixBlock convertToMatrixBlock( double[] data, boolean 
columnVector ) {
                int rows = columnVector ? data.length : 1;
                int cols = columnVector ? 1 : data.length;
                MatrixBlock mb = new MatrixBlock(rows, cols, false);
-               
-               try
-               { 
-                       //copy data to mb (can be used because we create a 
dense matrix)
-                       mb.init( data, rows, cols );
-               } 
-               catch (Exception e){} //can never happen
-               
-               //check and convert internal representation
+               //copy data to mb (can be used because we create a dense matrix)
+               mb.init( data, rows, cols );
                mb.examSparsity();
-               
                return mb;
        }
 
@@ -551,10 +537,8 @@ public class DataConverter
         * 
         * @param frame frame block
         * @return matrix block
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
        public static MatrixBlock convertToMatrixBlock(FrameBlock frame) 
-               throws DMLRuntimeException
        {
                int m = frame.getNumRows();
                int n = frame.getNumColumns();
@@ -744,7 +728,6 @@ public class DataConverter
        }
 
        public static MatrixBlock[] convertToMatrixBlockPartitions( MatrixBlock 
mb, boolean colwise ) 
-               throws DMLRuntimeException
        {
                MatrixBlock[] ret = null;
                int rows = mb.getNumRows();
@@ -799,11 +782,8 @@ public class DataConverter
         * 
         * @param mo matrix object
         * @return matrix as a commons-math3 Array2DRowRealMatrix
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public static Array2DRowRealMatrix 
convertToArray2DRowRealMatrix(MatrixObject mo) 
-               throws DMLRuntimeException 
-       {
+       public static Array2DRowRealMatrix 
convertToArray2DRowRealMatrix(MatrixObject mo) {
                MatrixBlock mb = mo.acquireRead();
                double[][] data = DataConverter.convertToDoubleMatrix(mb);
                mo.release();

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/util/LocalFileUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/util/LocalFileUtils.java 
b/src/main/java/org/apache/sysml/runtime/util/LocalFileUtils.java
index deda468..b1a466e 100644
--- a/src/main/java/org/apache/sysml/runtime/util/LocalFileUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/util/LocalFileUtils.java
@@ -369,19 +369,18 @@ public class LocalFileUtils
        ///
 
        public static String checkAndCreateStagingDir(String dir) {
-               File f =  new File(dir);                
+               File f =  new File(dir);
                if( !f.exists() )
                        f.mkdirs();
                
                return dir;
        }
 
-       public static String createWorkingDirectory() throws 
DMLRuntimeException {
+       public static String createWorkingDirectory() {
                return createWorkingDirectoryWithUUID( DMLScript.getUUID() );
        }
 
        public static String createWorkingDirectoryWithUUID(String uuid)
-               throws DMLRuntimeException 
        {
                //create local tmp dir if not existing
                String dirRoot = null;
@@ -389,7 +388,7 @@ public class LocalFileUtils
                if( conf != null ) 
                        dirRoot = conf.getTextValue(DMLConfig.LOCAL_TMP_DIR);
                else 
-                       dirRoot = 
DMLConfig.getDefaultTextValue(DMLConfig.LOCAL_TMP_DIR);               
+                       dirRoot = 
DMLConfig.getDefaultTextValue(DMLConfig.LOCAL_TMP_DIR);
                
                //create shared staging dir if not existing
                if( !LocalFileUtils.createLocalFileIfNotExist(dirRoot, 
DMLConfig.DEFAULT_SHARED_DIR_PERMISSION) ){
@@ -477,27 +476,20 @@ public class LocalFileUtils
                return count;
        }
 
-       public static String getWorkingDir(String category) 
-               throws DMLRuntimeException
-       {
+       public static String getWorkingDir(String category) {
                if( _workingDir == null )
                        createWorkingDirectory();
-               
                StringBuilder sb = new StringBuilder();
                sb.append( _workingDir );
                sb.append( Lop.FILE_SEPARATOR );
                sb.append( category );
                sb.append( Lop.FILE_SEPARATOR );
-               
                return sb.toString();
        }
 
-       public static String getUniqueWorkingDir(String category) 
-               throws DMLRuntimeException
-       {
+       public static String getUniqueWorkingDir(String category) {
                if( _workingDir == null )
                        createWorkingDirectory();
-               
                StringBuilder sb = new StringBuilder();
                sb.append( _workingDir );
                sb.append( Lop.FILE_SEPARATOR );
@@ -505,7 +497,6 @@ public class LocalFileUtils
                sb.append( Lop.FILE_SEPARATOR );
                sb.append( "tmp" );
                sb.append( _seq.getNextID() );
-               
                return sb.toString();
        }
        

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/udf/ExternalFunctionInvocationInstruction.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/udf/ExternalFunctionInvocationInstruction.java 
b/src/main/java/org/apache/sysml/udf/ExternalFunctionInvocationInstruction.java
index bfa76ba..0c21982 100644
--- 
a/src/main/java/org/apache/sysml/udf/ExternalFunctionInvocationInstruction.java
+++ 
b/src/main/java/org/apache/sysml/udf/ExternalFunctionInvocationInstruction.java
@@ -67,15 +67,11 @@ public class ExternalFunctionInvocationInstruction extends 
Instruction
        }
 
        @Override
-       public void processInstruction(ExecutionContext ec)
-                       throws DMLRuntimeException 
-       {
+       public void processInstruction(ExecutionContext ec) {
                // get the inputs, wrapped into external data types
                fun.setFunctionInputs(getInputObjects(inputs, 
ec.getVariables()));
-               
                //executes function
                fun.execute(ec);
-               
                // get and verify the outputs
                verifyAndAttachOutputs(ec, fun, outputs);
        }
@@ -122,7 +118,6 @@ public class ExternalFunctionInvocationInstruction extends 
Instruction
        }
        
        private void verifyAndAttachOutputs(ExecutionContext ec, 
PackageFunction fun, CPOperand[] outputs) 
-               throws DMLRuntimeException 
        {
                for( int i = 0; i < outputs.length; i++) {
                        CPOperand output = outputs[i];
@@ -161,8 +156,7 @@ public class ExternalFunctionInvocationInstruction extends 
Instruction
                }
        }
        
-       private MatrixObject createOutputMatrixObject(Matrix m) throws 
DMLRuntimeException
-       {
+       private MatrixObject createOutputMatrixObject(Matrix m) {
                MatrixObject ret = m.getMatrixObject();
                
                if( ret == null ) { //otherwise, pass in-memory matrix from 
extfunct back to invoking program

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/udf/Matrix.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/udf/Matrix.java 
b/src/main/java/org/apache/sysml/udf/Matrix.java
index 2fae725..dc4a353 100644
--- a/src/main/java/org/apache/sysml/udf/Matrix.java
+++ b/src/main/java/org/apache/sysml/udf/Matrix.java
@@ -24,7 +24,6 @@ import java.io.IOException;
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.parser.Expression;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.caching.MatrixObject;
 import org.apache.sysml.runtime.io.MatrixReader;
 import org.apache.sysml.runtime.io.MatrixReaderFactory;
@@ -147,12 +146,9 @@ public class Matrix extends FunctionParameter
         * representation.
         * 
         * @return matrix as two-dimensional double array
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         * @throws IOException if IOException occurs
         */
-       public double[][] getMatrixAsDoubleArray() 
-               throws DMLRuntimeException, IOException 
-       {
+       public double[][] getMatrixAsDoubleArray() throws IOException {
                double[][] ret = null;
                
                if( _mo != null ) { //CP ext function
@@ -177,11 +173,8 @@ public class Matrix extends FunctionParameter
         * 
         * @param data matrix as 2-dimensional double array
         * @throws IOException if IOException occurs
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public void setMatrixDoubleArray(double[][] data /*, OutputInfo oinfo, 
InputInfo iinfo*/) 
-               throws IOException, DMLRuntimeException 
-       {
+       public void setMatrixDoubleArray(double[][] data) throws IOException {
                MatrixBlock mb = DataConverter.convertToMatrixBlock(data);
                setMatrixDoubleArray(mb, OutputInfo.BinaryBlockOutputInfo, 
InputInfo.BinaryBlockInputInfo);
        }
@@ -193,11 +186,8 @@ public class Matrix extends FunctionParameter
         * 
         * @param data matrix as double array
         * @throws IOException if IOException occurs
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       public void setMatrixDoubleArray(double[] data /*, OutputInfo oinfo, 
InputInfo iinfo*/) 
-               throws IOException, DMLRuntimeException 
-       {
+       public void setMatrixDoubleArray(double[] data) throws IOException {
                MatrixBlock mb = DataConverter.convertToMatrixBlock(data, true);
                setMatrixDoubleArray(mb, OutputInfo.BinaryBlockOutputInfo, 
InputInfo.BinaryBlockInputInfo);
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/utils/Explain.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/utils/Explain.java 
b/src/main/java/org/apache/sysml/utils/Explain.java
index 12f4d0f..c7731c0 100644
--- a/src/main/java/org/apache/sysml/utils/Explain.java
+++ b/src/main/java/org/apache/sysml/utils/Explain.java
@@ -52,7 +52,6 @@ import org.apache.sysml.parser.ParForStatementBlock;
 import org.apache.sysml.parser.StatementBlock;
 import org.apache.sysml.parser.WhileStatement;
 import org.apache.sysml.parser.WhileStatementBlock;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.ExternalFunctionProgramBlock;
 import org.apache.sysml.runtime.controlprogram.ForProgramBlock;
 import org.apache.sysml.runtime.controlprogram.FunctionProgramBlock;
@@ -406,25 +405,18 @@ public class Explain
                return sb.toString();
        }
 
-       public static String explain( Hop hop ) 
-               throws DMLRuntimeException
-       {
+       public static String explain( Hop hop ) {
                return explain(hop, 0);
        }
 
-       public static String explain( Hop hop, int level ) 
-               throws DMLRuntimeException
-       {
+       public static String explain( Hop hop, int level ) {
                hop.resetVisitStatus();
                String ret = explainHop(hop, level);
                hop.resetVisitStatus();
-               
                return ret;
        }
        
-       public static String explainCPlan( CNodeTpl cplan ) 
-               throws DMLRuntimeException 
-       {
+       public static String explainCPlan( CNodeTpl cplan ) {
                StringBuilder sb = new StringBuilder();
                
                //create template header
@@ -446,11 +438,11 @@ public class Explain
                return sb.toString();
        }
        
-       public static String explain( CNode node ) throws DMLRuntimeException {
+       public static String explain( CNode node ) {
                return explain(node, 0);
        }
        
-       public static String explain( CNode node, int level ) throws 
DMLRuntimeException {
+       public static String explain( CNode node, int level ) {
                return explainCNode(node, level);
        }
 
@@ -691,11 +683,8 @@ public class Explain
         * @param hop high-level operator
         * @param level offset
         * @return string explanation of Hop DAG
-        * @throws DMLRuntimeException if DMLRuntimeException occurs
         */
-       private static String explainHop(Hop hop, int level) 
-               throws DMLRuntimeException 
-       {
+       private static String explainHop(Hop hop, int level) {
                if( hop.isVisited() || (!SHOW_LITERAL_HOPS && hop instanceof 
LiteralOp) )
                        return "";
                
@@ -780,8 +769,7 @@ public class Explain
                return isInRange;
        }
 
-       private static StringBuilder getHopDAG(Hop hop, StringBuilder nodes, 
ArrayList<Integer> lines, boolean withSubgraph)
-                       throws DMLRuntimeException {
+       private static StringBuilder getHopDAG(Hop hop, StringBuilder nodes, 
ArrayList<Integer> lines, boolean withSubgraph) {
                StringBuilder sb = new StringBuilder();
                if (hop.isVisited() || (!SHOW_LITERAL_HOPS && hop instanceof 
LiteralOp))
                        return sb;
@@ -901,9 +889,7 @@ public class Explain
        //////////////
        // internal explain CNODE
 
-       private static String explainCNode(CNode cnode, int level) 
-               throws DMLRuntimeException 
-       {
+       private static String explainCNode(CNode cnode, int level) {
                if( cnode.isVisited() )
                        return "";
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/utils/NativeHelper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/utils/NativeHelper.java 
b/src/main/java/org/apache/sysml/utils/NativeHelper.java
index 25e9847..246c5bd 100644
--- a/src/main/java/org/apache/sysml/utils/NativeHelper.java
+++ b/src/main/java/org/apache/sysml/utils/NativeHelper.java
@@ -97,9 +97,8 @@ public class NativeHelper {
         * 
         * @param customLibPath specified by sysml.native.blas.directory
         * @param userSpecifiedBLAS specified by sysml.native.blas
-        * @throws DMLRuntimeException if error
         */
-       public static void initialize(String customLibPath, String 
userSpecifiedBLAS) throws DMLRuntimeException {
+       public static void initialize(String customLibPath, String 
userSpecifiedBLAS) {
                if(isBLASLoaded() && isSupportedBLAS(userSpecifiedBLAS) && 
!blasType.equalsIgnoreCase(userSpecifiedBLAS)) {
                        throw new DMLRuntimeException("Cannot replace 
previously loaded blas \"" + blasType + "\" with \"" + userSpecifiedBLAS + 
"\".");
                }

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/yarn/DMLAppMasterUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/yarn/DMLAppMasterUtils.java 
b/src/main/java/org/apache/sysml/yarn/DMLAppMasterUtils.java
index bd4a9a4..1c23a46 100644
--- a/src/main/java/org/apache/sysml/yarn/DMLAppMasterUtils.java
+++ b/src/main/java/org/apache/sysml/yarn/DMLAppMasterUtils.java
@@ -19,7 +19,6 @@
 
 package org.apache.sysml.yarn;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 
@@ -29,12 +28,9 @@ import org.apache.sysml.api.DMLScript;
 import org.apache.sysml.conf.CompilerConfig;
 import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.conf.DMLConfig;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.hops.OptimizerUtils.OptimizationLevel;
 import org.apache.sysml.lops.Lop;
-import org.apache.sysml.lops.LopsException;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.Program;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 import 
org.apache.sysml.runtime.controlprogram.parfor.stat.InfrastructureAnalyzer;
@@ -59,7 +55,6 @@ public class DMLAppMasterUtils
        }
 
        public static void setupConfigRemoteMaxMemory(DMLConfig conf) 
-               throws DMLRuntimeException
        {
                //set remote max memory (if in yarn appmaster context)
                if( DMLScript.isActiveAM() ){
@@ -96,9 +91,7 @@ public class DMLAppMasterUtils
                }
        }
 
-       public static void setupProgramMappingRemoteMaxMemory(Program prog) 
-               throws DMLRuntimeException, HopsException, LopsException, 
IOException
-       {
+       public static void setupProgramMappingRemoteMaxMemory(Program prog) {
                if( DMLScript.isActiveAM() && isResourceOptimizerEnabled() )
                {
                        ArrayList<ProgramBlock> pbProg = 
getRuntimeProgramBlocks( prog ); 
@@ -111,8 +104,7 @@ public class DMLAppMasterUtils
                }
        }
 
-       public static void setupProgramBlockRemoteMaxMemory(ProgramBlock pb)
-       {
+       public static void setupProgramBlockRemoteMaxMemory(ProgramBlock pb) {
                if( DMLScript.isActiveAM() && isResourceOptimizerEnabled() )
                {
                        if( _rcMap != null && _rcMap.containsKey(pb) ){ 
@@ -122,7 +114,7 @@ public class DMLAppMasterUtils
                                
InfrastructureAnalyzer.setRemoteMaxMemoryReduce(mem);
                                OptimizerUtils.resetDefaultSize();
                        }
-               }       
+               }
        }
 
        public static void setupMRJobRemoteMaxMemory(JobConf job, DMLConfig 
conf)
@@ -152,30 +144,23 @@ public class DMLAppMasterUtils
                }
        }
 
-       public static boolean isResourceOptimizerEnabled()
-       {
+       public static boolean isResourceOptimizerEnabled() {
                return ( DMLYarnClientProxy.RESOURCE_OPTIMIZER
-                               || 
OptimizerUtils.isOptLevel(OptimizationLevel.O3_LOCAL_RESOURCE_TIME_MEMORY) );
+                       || 
OptimizerUtils.isOptLevel(OptimizationLevel.O3_LOCAL_RESOURCE_TIME_MEMORY) );
        }
 
-       protected static ArrayList<ProgramBlock> 
getRuntimeProgramBlocks(Program prog) 
-               throws DMLRuntimeException
-       {
+       protected static ArrayList<ProgramBlock> 
getRuntimeProgramBlocks(Program prog) {
                //construct single list of all program blocks including 
functions
                ArrayList<ProgramBlock> ret = new ArrayList<>();
                ret.addAll(prog.getProgramBlocks());
                ret.addAll(prog.getFunctionProgramBlocks().values());
-               
                return ret;
        }
 
-       protected static void setupRemoteParallelTasks( YarnClusterConfig cc )
-       {
+       protected static void setupRemoteParallelTasks( YarnClusterConfig cc ) {
                int pmap = (int) cc.getNumCores();
                int preduce = (int) cc.getNumCores()/2;
                InfrastructureAnalyzer.setRemoteParallelMapTasks(pmap);
                InfrastructureAnalyzer.setRemoteParallelReduceTasks(preduce);
        }
-       
-       
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/yarn/ropt/GridEnumeration.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/yarn/ropt/GridEnumeration.java 
b/src/main/java/org/apache/sysml/yarn/ropt/GridEnumeration.java
index d1a3877..f4cd626 100644
--- a/src/main/java/org/apache/sysml/yarn/ropt/GridEnumeration.java
+++ b/src/main/java/org/apache/sysml/yarn/ropt/GridEnumeration.java
@@ -21,7 +21,6 @@ package org.apache.sysml.yarn.ropt;
 
 import java.util.ArrayList;
 
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 
@@ -32,9 +31,7 @@ public abstract class GridEnumeration
        protected long  _min = -1;
        protected long  _max = -1;
 
-       public GridEnumeration( ArrayList<ProgramBlock> prog, long min, long 
max ) 
-               throws DMLRuntimeException
-       {
+       public GridEnumeration( ArrayList<ProgramBlock> prog, long min, long 
max ) {
                if( min > max )
                        throw new DMLRuntimeException("Invalid parameters: 
min=" + min + ", max=" + max);
                
@@ -43,6 +40,5 @@ public abstract class GridEnumeration
                _max = max;
        }
        
-       public abstract ArrayList<Long> enumerateGridPoints() 
-               throws DMLRuntimeException, HopsException; 
+       public abstract ArrayList<Long> enumerateGridPoints();
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationEqui.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationEqui.java 
b/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationEqui.java
index 7e7a09a..364db70 100644
--- a/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationEqui.java
+++ b/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationEqui.java
@@ -21,7 +21,6 @@ package org.apache.sysml.yarn.ropt;
 
 import java.util.ArrayList;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 
 public class GridEnumerationEqui extends GridEnumeration
@@ -31,9 +30,7 @@ public class GridEnumerationEqui extends GridEnumeration
 
        private int _nsteps = -1;
        
-       public GridEnumerationEqui( ArrayList<ProgramBlock> prog, long min, 
long max ) 
-               throws DMLRuntimeException
-       {
+       public GridEnumerationEqui( ArrayList<ProgramBlock> prog, long min, 
long max ) {
                super(prog, min, max);
                _nsteps = DEFAULT_NSTEPS;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationExp.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationExp.java 
b/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationExp.java
index 922c60b..4516b2b 100644
--- a/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationExp.java
+++ b/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationExp.java
@@ -21,7 +21,6 @@ package org.apache.sysml.yarn.ropt;
 
 import java.util.ArrayList;
 
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 
 public class GridEnumerationExp extends GridEnumeration
@@ -31,9 +30,7 @@ public class GridEnumerationExp extends GridEnumeration
 
        private double _factor = -1;
        
-       public GridEnumerationExp( ArrayList<ProgramBlock> prog, long min, long 
max ) 
-               throws DMLRuntimeException
-       {
+       public GridEnumerationExp( ArrayList<ProgramBlock> prog, long min, long 
max ) {
                super(prog, min, max);
                _factor = DEFAULT_FACTOR;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationHybrid.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationHybrid.java 
b/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationHybrid.java
index beabc4e..53839b1 100644
--- a/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationHybrid.java
+++ b/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationHybrid.java
@@ -23,8 +23,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
 
-import org.apache.sysml.hops.HopsException;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 
 /**
@@ -33,16 +31,12 @@ import org.apache.sysml.runtime.controlprogram.ProgramBlock;
  */
 public class GridEnumerationHybrid extends GridEnumeration
 {
-       public GridEnumerationHybrid( ArrayList<ProgramBlock> prog, long min, 
long max ) 
-               throws DMLRuntimeException
-       {
+       public GridEnumerationHybrid( ArrayList<ProgramBlock> prog, long min, 
long max ) {
                super(prog, min, max);
        }
        
        @Override
-       public ArrayList<Long> enumerateGridPoints() 
-               throws DMLRuntimeException, HopsException
-       {
+       public ArrayList<Long> enumerateGridPoints() {
                GridEnumeration ge1 = new GridEnumerationMemory(_prog, _min, 
_max);
                GridEnumeration ge2 = new GridEnumerationExp(_prog, _min, _max);
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationMemory.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationMemory.java 
b/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationMemory.java
index a295218..5d5e5d5 100644
--- a/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationMemory.java
+++ b/src/main/java/org/apache/sysml/yarn/ropt/GridEnumerationMemory.java
@@ -24,10 +24,8 @@ import java.util.Collections;
 import java.util.HashSet;
 
 import org.apache.sysml.hops.Hop;
-import org.apache.sysml.hops.HopsException;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.parser.StatementBlock;
-import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.controlprogram.ForProgramBlock;
 import org.apache.sysml.runtime.controlprogram.FunctionProgramBlock;
 import org.apache.sysml.runtime.controlprogram.IfProgramBlock;
@@ -42,9 +40,7 @@ public class GridEnumerationMemory extends GridEnumeration
        
        private int _nsteps = -1;
        
-       public GridEnumerationMemory( ArrayList<ProgramBlock> prog, long min, 
long max ) 
-               throws DMLRuntimeException
-       {
+       public GridEnumerationMemory( ArrayList<ProgramBlock> prog, long min, 
long max ) {
                super(prog, min, max);
                _nsteps = DEFAULT_NSTEPS;
        }
@@ -54,9 +50,7 @@ public class GridEnumerationMemory extends GridEnumeration
        }
        
        @Override
-       public ArrayList<Long> enumerateGridPoints() 
-               throws DMLRuntimeException, HopsException
-       {
+       public ArrayList<Long> enumerateGridPoints() {
                ArrayList<Long> ret = new ArrayList<>();
                long gap = (long)(_max - _min) / (_nsteps-1);
                

http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/yarn/ropt/ResourceConfig.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/yarn/ropt/ResourceConfig.java 
b/src/main/java/org/apache/sysml/yarn/ropt/ResourceConfig.java
index 610fe79..129ab12 100644
--- a/src/main/java/org/apache/sysml/yarn/ropt/ResourceConfig.java
+++ b/src/main/java/org/apache/sysml/yarn/ropt/ResourceConfig.java
@@ -78,19 +78,15 @@ public class ResourceConfig
                return ret;
        }
        
-       public void setMRResources( ArrayList<ProgramBlock> B, double[][] res ) 
-               throws DMLRuntimeException
-       {
+       public void setMRResources( ArrayList<ProgramBlock> B, double[][] res ) 
{
                if( _mrres.size() != res.length )
                        throw new DMLRuntimeException("Memo table sizes do not 
match: "+_mrres.size()+" vs "+res.length);
-               
                int len = res.length;
                for( int i=0; i<len; i++ )
                        _mrres.set(i, (long)res[i][0]);
        }
 
-       public long getMaxMRResource()
-       {
+       public long getMaxMRResource() {
                double val = (double) Collections.max(_mrres);
                return (long)val;
        }

Reply via email to