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; }
