[SYSTEMML-2191] Cleanup exception hierarchy and handling, part 1 This patch converts the entire DMLException hierarchy to runtime exceptions to ease the APIs and internal handling, removes unnecessary exceptions such as the CacheException, and removes unnecessary throws clauses and their useless java doc.
Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/215a1cc6 Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/215a1cc6 Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/215a1cc6 Branch: refs/heads/master Commit: 215a1cc6b36ed1f6db5bf1e77b19c7928150ddec Parents: 2b74a79 Author: Matthias Boehm <[email protected]> Authored: Fri Mar 23 22:16:20 2018 -0700 Committer: Matthias Boehm <[email protected]> Committed: Fri Mar 23 22:18:28 2018 -0700 ---------------------------------------------------------------------- .../java/org/apache/sysml/api/DMLException.java | 37 ++- .../java/org/apache/sysml/api/DMLScript.java | 22 +- .../apache/sysml/api/ScriptExecutorUtils.java | 9 +- .../api/mlcontext/MLContextConversionUtil.java | 260 +++++++++---------- .../sysml/api/mlcontext/MLContextUtil.java | 21 +- .../sysml/api/mlcontext/ScriptExecutor.java | 6 +- .../java/org/apache/sysml/conf/DMLConfig.java | 21 +- .../sysml/debug/DMLDebuggerFunctions.java | 6 +- .../java/org/apache/sysml/debug/DebugState.java | 3 +- .../java/org/apache/sysml/hops/AggBinaryOp.java | 106 +++----- .../java/org/apache/sysml/hops/AggUnaryOp.java | 12 +- .../java/org/apache/sysml/hops/BinaryOp.java | 33 +-- .../org/apache/sysml/hops/ConvolutionOp.java | 12 +- .../java/org/apache/sysml/hops/DataGenOp.java | 9 +- src/main/java/org/apache/sysml/hops/DataOp.java | 6 +- .../java/org/apache/sysml/hops/FunctionOp.java | 5 +- src/main/java/org/apache/sysml/hops/Hop.java | 24 +- .../org/apache/sysml/hops/HopsException.java | 6 +- .../java/org/apache/sysml/hops/IndexingOp.java | 10 +- .../org/apache/sysml/hops/LeftIndexingOp.java | 10 +- .../java/org/apache/sysml/hops/LiteralOp.java | 11 +- src/main/java/org/apache/sysml/hops/NaryOp.java | 12 +- .../org/apache/sysml/hops/OptimizerUtils.java | 13 +- .../sysml/hops/ParameterizedBuiltinOp.java | 10 +- .../org/apache/sysml/hops/QuaternaryOp.java | 35 +-- .../java/org/apache/sysml/hops/ReorgOp.java | 8 +- .../java/org/apache/sysml/hops/TernaryOp.java | 32 +-- .../java/org/apache/sysml/hops/UnaryOp.java | 19 +- .../sysml/hops/codegen/SpoofCompiler.java | 34 +-- .../apache/sysml/hops/codegen/SpoofFusedOp.java | 8 +- .../sysml/hops/cost/CostEstimationWrapper.java | 4 +- .../apache/sysml/hops/cost/CostEstimator.java | 27 +- .../hops/cost/CostEstimatorStaticRuntime.java | 32 +-- .../sysml/hops/ipa/FunctionCallGraph.java | 4 +- .../sysml/hops/ipa/FunctionCallSizeInfo.java | 12 +- .../java/org/apache/sysml/hops/ipa/IPAPass.java | 5 +- .../hops/ipa/IPAPassApplyStaticHopRewrites.java | 4 +- .../ipa/IPAPassFlagFunctionsRecompileOnce.java | 1 - .../sysml/hops/ipa/IPAPassInlineFunctions.java | 2 - .../ipa/IPAPassPropagateReplaceLiterals.java | 10 +- .../ipa/IPAPassRemoveConstantBinaryOps.java | 9 +- .../IPAPassRemoveUnnecessaryCheckpoints.java | 17 +- .../hops/ipa/IPAPassRemoveUnusedFunctions.java | 4 +- .../sysml/hops/ipa/InterProceduralAnalysis.java | 48 +--- .../hops/recompile/LiteralReplacement.java | 22 +- .../apache/sysml/hops/recompile/Recompiler.java | 61 +---- .../sysml/hops/rewrite/HopDagValidator.java | 4 +- .../sysml/hops/rewrite/HopRewriteRule.java | 11 +- .../sysml/hops/rewrite/HopRewriteUtils.java | 106 ++------ .../sysml/hops/rewrite/ProgramRewriter.java | 28 +- .../RewriteAlgebraicSimplificationDynamic.java | 66 +---- .../RewriteAlgebraicSimplificationStatic.java | 37 +-- .../rewrite/RewriteBlockSizeAndReblock.java | 3 - .../RewriteCommonSubexpressionElimination.java | 8 +- .../hops/rewrite/RewriteCompressedReblock.java | 16 +- .../hops/rewrite/RewriteConstantFolding.java | 38 +-- ...RewriteElementwiseMultChainOptimization.java | 5 +- .../rewrite/RewriteForLoopVectorization.java | 9 +- .../rewrite/RewriteIndexingVectorization.java | 24 +- .../RewriteInjectSparkLoopCheckpointing.java | 5 +- .../RewriteInjectSparkPReadCheckpointing.java | 10 +- .../RewriteMarkLoopVariablesUpdateInPlace.java | 6 +- .../RewriteMatrixMultChainOptimization.java | 10 +- .../hops/rewrite/RewriteMergeBlockSequence.java | 12 +- .../RewriteRemoveDanglingParentReferences.java | 13 +- .../rewrite/RewriteRemoveEmptyBasicBlocks.java | 8 +- .../RewriteRemovePersistentReadWrite.java | 17 +- .../rewrite/RewriteRemoveReadAfterWrite.java | 11 +- .../RewriteRemoveUnnecessaryBranches.java | 5 +- .../rewrite/RewriteRemoveUnnecessaryCasts.java | 14 +- .../RewriteSplitDagDataDependentOperators.java | 4 +- .../rewrite/RewriteSplitDagUnknownCSVRead.java | 5 +- .../RewriteTransientWriteParentHandling.java | 14 +- .../hops/rewrite/StatementBlockRewriteRule.java | 9 +- .../java/org/apache/sysml/lops/Aggregate.java | 3 +- src/main/java/org/apache/sysml/lops/Append.java | 4 +- .../java/org/apache/sysml/lops/AppendG.java | 8 +- .../org/apache/sysml/lops/AppendGAlignedSP.java | 1 - .../java/org/apache/sysml/lops/AppendM.java | 8 +- .../java/org/apache/sysml/lops/AppendR.java | 8 +- src/main/java/org/apache/sysml/lops/Binary.java | 6 +- .../java/org/apache/sysml/lops/BinaryM.java | 23 +- .../org/apache/sysml/lops/BinaryScalar.java | 3 +- .../org/apache/sysml/lops/BinaryUAggChain.java | 7 +- .../java/org/apache/sysml/lops/CSVReBlock.java | 8 +- .../java/org/apache/sysml/lops/Checkpoint.java | 11 +- .../java/org/apache/sysml/lops/CoVariance.java | 10 +- .../org/apache/sysml/lops/CombineBinary.java | 4 +- .../org/apache/sysml/lops/CombineTernary.java | 3 +- .../org/apache/sysml/lops/CombineUnary.java | 4 +- .../java/org/apache/sysml/lops/Compression.java | 11 +- .../apache/sysml/lops/ConvolutionTransform.java | 6 +- src/main/java/org/apache/sysml/lops/Ctable.java | 4 +- .../sysml/lops/CumulativeOffsetBinary.java | 8 +- .../sysml/lops/CumulativePartialAggregate.java | 4 +- .../sysml/lops/CumulativeSplitAggregate.java | 4 +- src/main/java/org/apache/sysml/lops/Data.java | 35 +-- .../java/org/apache/sysml/lops/DataGen.java | 29 +-- .../org/apache/sysml/lops/DataPartition.java | 3 +- .../org/apache/sysml/lops/FunctionCallCP.java | 7 +- .../apache/sysml/lops/FunctionCallCPSingle.java | 16 +- .../org/apache/sysml/lops/GroupedAggregate.java | 4 +- .../java/org/apache/sysml/lops/LeftIndex.java | 12 +- src/main/java/org/apache/sysml/lops/Lop.java | 52 ++-- .../java/org/apache/sysml/lops/MapMult.java | 11 +- .../org/apache/sysml/lops/MapMultChain.java | 14 +- src/main/java/org/apache/sysml/lops/Nary.java | 7 +- .../org/apache/sysml/lops/OutputParameters.java | 4 +- src/main/java/org/apache/sysml/lops/PMMJ.java | 7 +- .../java/org/apache/sysml/lops/PMapMult.java | 6 +- .../apache/sysml/lops/ParameterizedBuiltin.java | 22 +- .../org/apache/sysml/lops/PartialAggregate.java | 17 +- .../java/org/apache/sysml/lops/PickByCount.java | 11 +- .../java/org/apache/sysml/lops/ReBlock.java | 4 +- src/main/java/org/apache/sysml/lops/RepMat.java | 7 +- .../java/org/apache/sysml/lops/RightIndex.java | 9 +- .../java/org/apache/sysml/lops/SpoofFused.java | 20 +- .../org/apache/sysml/lops/TernaryAggregate.java | 2 +- .../java/org/apache/sysml/lops/Transform.java | 16 +- .../org/apache/sysml/lops/UAggOuterChain.java | 4 +- src/main/java/org/apache/sysml/lops/Unary.java | 30 +-- .../java/org/apache/sysml/lops/UnaryCP.java | 5 +- .../apache/sysml/lops/WeightedCrossEntropy.java | 6 +- .../sysml/lops/WeightedCrossEntropyR.java | 10 +- .../org/apache/sysml/lops/WeightedDivMM.java | 6 +- .../org/apache/sysml/lops/WeightedDivMMR.java | 10 +- .../org/apache/sysml/lops/WeightedSigmoid.java | 6 +- .../org/apache/sysml/lops/WeightedSigmoidR.java | 12 +- .../apache/sysml/lops/WeightedSquaredLoss.java | 8 +- .../apache/sysml/lops/WeightedSquaredLossR.java | 10 +- .../org/apache/sysml/lops/WeightedUnaryMM.java | 16 +- .../org/apache/sysml/lops/WeightedUnaryMMR.java | 18 +- .../java/org/apache/sysml/lops/ZeroOut.java | 31 +-- .../java/org/apache/sysml/lops/compile/Dag.java | 91 ++----- .../org/apache/sysml/lops/compile/JobType.java | 5 +- .../apache/sysml/lops/runtime/RunMRJobs.java | 17 +- .../sysml/parser/AssignmentStatement.java | 6 +- .../apache/sysml/parser/BinaryExpression.java | 9 +- .../apache/sysml/parser/BooleanExpression.java | 4 +- .../apache/sysml/parser/BooleanIdentifier.java | 2 +- .../sysml/parser/BuiltinFunctionExpression.java | 68 ++--- .../apache/sysml/parser/ConstIdentifier.java | 4 +- .../org/apache/sysml/parser/DMLProgram.java | 10 +- .../org/apache/sysml/parser/DMLTranslator.java | 154 ++++------- .../org/apache/sysml/parser/DataExpression.java | 27 +- .../org/apache/sysml/parser/DataIdentifier.java | 5 +- .../apache/sysml/parser/DoubleIdentifier.java | 2 +- .../org/apache/sysml/parser/Expression.java | 31 +-- .../org/apache/sysml/parser/ExpressionList.java | 2 +- .../sysml/parser/ExternalFunctionStatement.java | 7 +- .../org/apache/sysml/parser/ForStatement.java | 6 +- .../apache/sysml/parser/ForStatementBlock.java | 17 +- .../sysml/parser/FunctionCallIdentifier.java | 6 +- .../apache/sysml/parser/FunctionStatement.java | 6 +- .../sysml/parser/FunctionStatementBlock.java | 11 +- .../org/apache/sysml/parser/Identifier.java | 1 - .../org/apache/sysml/parser/IfStatement.java | 8 +- .../apache/sysml/parser/IfStatementBlock.java | 15 +- .../apache/sysml/parser/ImportStatement.java | 2 +- .../apache/sysml/parser/IndexedIdentifier.java | 7 +- .../org/apache/sysml/parser/IntIdentifier.java | 2 +- .../apache/sysml/parser/IterablePredicate.java | 7 +- .../sysml/parser/LiveVariableAnalysis.java | 6 +- .../sysml/parser/MultiAssignmentStatement.java | 3 +- .../apache/sysml/parser/OutputStatement.java | 14 +- .../sysml/parser/ParForStatementBlock.java | 34 +-- .../ParameterizedBuiltinFunctionExpression.java | 35 +-- .../org/apache/sysml/parser/ParserWrapper.java | 3 +- .../org/apache/sysml/parser/PathStatement.java | 2 +- .../org/apache/sysml/parser/PrintStatement.java | 13 +- .../sysml/parser/RelationalExpression.java | 13 +- .../java/org/apache/sysml/parser/Statement.java | 10 +- .../org/apache/sysml/parser/StatementBlock.java | 35 +-- .../apache/sysml/parser/StringIdentifier.java | 6 +- .../org/apache/sysml/parser/WhileStatement.java | 8 +- .../sysml/parser/WhileStatementBlock.java | 13 +- .../sysml/parser/dml/DMLParserWrapper.java | 6 +- .../sysml/parser/pydml/PyDMLParserWrapper.java | 6 +- .../controlprogram/ParForProgramBlock.java | 2 - .../controlprogram/caching/CacheException.java | 50 ---- .../controlprogram/caching/CacheableData.java | 193 ++++++-------- .../controlprogram/caching/FrameObject.java | 4 +- .../controlprogram/caching/MatrixObject.java | 27 +- .../parfor/ResultMergeLocalFile.java | 3 +- .../parfor/opt/OptTreePlanChecker.java | 1 - .../parfor/opt/ProgramRecompiler.java | 3 - .../instructions/cp/ScalarObjectFactory.java | 3 +- .../ParameterizedBuiltinCPFileInstruction.java | 10 +- .../instructions/gpu/context/GPUObject.java | 47 ++-- .../org/apache/sysml/udf/lib/CumSumProd.java | 92 +++---- .../apache/sysml/udf/lib/MultiInputCbind.java | 127 +++++---- .../apache/sysml/udf/lib/SGDNesterovUpdate.java | 3 - .../java/org/apache/sysml/utils/Explain.java | 45 +--- .../org/apache/sysml/utils/MLContextProxy.java | 5 +- .../org/apache/sysml/yarn/DMLYarnClient.java | 3 +- .../sysml/yarn/ropt/GridEnumerationMemory.java | 8 +- .../apache/sysml/yarn/ropt/ResourceConfig.java | 25 +- .../sysml/yarn/ropt/ResourceOptimizer.java | 10 +- .../yarn/ropt/ResourceOptimizerCPMigration.java | 246 +----------------- 199 files changed, 1101 insertions(+), 2740 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/api/DMLException.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/api/DMLException.java b/src/main/java/org/apache/sysml/api/DMLException.java index 7da5aef..b585c11 100644 --- a/src/main/java/org/apache/sysml/api/DMLException.java +++ b/src/main/java/org/apache/sysml/api/DMLException.java @@ -22,26 +22,25 @@ package org.apache.sysml.api; /** * <p>Exception occurring in the DML framework.</p> */ -public class DMLException extends Exception +public class DMLException extends RuntimeException { - - public static String ERROR_MSG_DELIMITER = " : "; - + public static final String ERROR_MSG_DELIMITER = " : "; + private static final long serialVersionUID = 1L; - public DMLException() { - super(); - } - - public DMLException(String message) { - super(message); - } - - public DMLException(Throwable cause) { - super(cause); - } - - public DMLException(String message, Throwable cause) { - super(message, cause); - } + public DMLException() { + super(); + } + + public DMLException(String message) { + super(message); + } + + public DMLException(Throwable cause) { + super(cause); + } + + public DMLException(String message, Throwable cause) { + super(message, cause); + } } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/api/DMLScript.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/api/DMLScript.java b/src/main/java/org/apache/sysml/api/DMLScript.java index 7e5e1f3..36a23a0 100644 --- a/src/main/java/org/apache/sysml/api/DMLScript.java +++ b/src/main/java/org/apache/sysml/api/DMLScript.java @@ -60,12 +60,9 @@ import org.apache.sysml.conf.CompilerConfig; import org.apache.sysml.conf.ConfigurationManager; import org.apache.sysml.conf.DMLConfig; import org.apache.sysml.debug.DMLDebugger; -import org.apache.sysml.debug.DMLDebuggerException; import org.apache.sysml.debug.DMLDebuggerProgramInfo; -import org.apache.sysml.hops.HopsException; import org.apache.sysml.hops.OptimizerUtils; import org.apache.sysml.lops.Lop; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.parser.DMLProgram; import org.apache.sysml.parser.DMLTranslator; import org.apache.sysml.parser.LanguageException; @@ -456,7 +453,6 @@ public class DMLScript * @param args arguments * @return true if success, false otherwise * @throws DMLException if DMLException occurs - * @throws ParseException if ParseException occurs */ public static boolean executeScript( Configuration conf, String[] args ) throws DMLException @@ -565,10 +561,9 @@ public class DMLScript * @param scriptOrFilename script or filename * @return a string representation of the script * @throws IOException if error - * @throws LanguageException if error */ protected static String readDMLScript( boolean isFile, String scriptOrFilename ) - throws IOException, LanguageException + throws IOException { String dmlScriptStr; @@ -663,15 +658,10 @@ public class DMLScript * @param argVals map of argument values * @param allArgs arguments * @param scriptType type of script (DML or PyDML) - * @throws ParseException if ParseException occurs * @throws IOException if IOException occurs - * @throws DMLRuntimeException if DMLRuntimeException occurs - * @throws LanguageException if LanguageException occurs - * @throws HopsException if HopsException occurs - * @throws LopsException if LopsException occurs */ private static void execute(String dmlScriptStr, String fnameOptConfig, Map<String,String> argVals, String[] allArgs, ScriptType scriptType) - throws ParseException, IOException, DMLRuntimeException, LanguageException, HopsException, LopsException + throws IOException { SCRIPT_TYPE = scriptType; @@ -774,16 +764,10 @@ public class DMLScript * @param fnameOptConfig Full path of configuration file for SystemML * @param argVals Key-value pairs defining arguments of DML script * @param scriptType type of script (DML or PyDML) - * @throws ParseException if ParseException occurs * @throws IOException if IOException occurs - * @throws DMLRuntimeException if DMLRuntimeException occurs - * @throws DMLDebuggerException if DMLDebuggerException occurs - * @throws LanguageException if LanguageException occurs - * @throws HopsException if HopsException occurs - * @throws LopsException if LopsException occurs */ private static void launchDebugger(String dmlScriptStr, String fnameOptConfig, Map<String,String> argVals, ScriptType scriptType) - throws ParseException, IOException, DMLRuntimeException, DMLDebuggerException, LanguageException, HopsException, LopsException + throws IOException { DMLDebuggerProgramInfo dbprog = new DMLDebuggerProgramInfo(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/api/ScriptExecutorUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/api/ScriptExecutorUtils.java b/src/main/java/org/apache/sysml/api/ScriptExecutorUtils.java index d6258a5..d587f48 100644 --- a/src/main/java/org/apache/sysml/api/ScriptExecutorUtils.java +++ b/src/main/java/org/apache/sysml/api/ScriptExecutorUtils.java @@ -44,10 +44,8 @@ public class ScriptExecutorUtils { * script executor * @param statisticsMaxHeavyHitters * maximum number of statistics to print - * @throws DMLRuntimeException - * if exception occurs */ - public static void executeRuntimeProgram(ScriptExecutor se, int statisticsMaxHeavyHitters) throws DMLRuntimeException { + public static void executeRuntimeProgram(ScriptExecutor se, int statisticsMaxHeavyHitters) { Program prog = se.getRuntimeProgram(); ExecutionContext ec = se.getExecutionContext(); DMLConfig config = se.getConfig(); @@ -67,11 +65,8 @@ public class ScriptExecutorUtils { * dml configuration * @param statisticsMaxHeavyHitters * maximum number of statistics to print - * @throws DMLRuntimeException - * if error occurs */ - public static void executeRuntimeProgram(Program rtprog, ExecutionContext ec, DMLConfig dmlconf, int statisticsMaxHeavyHitters) - throws DMLRuntimeException { + public static void executeRuntimeProgram(Program rtprog, ExecutionContext ec, DMLConfig dmlconf, int statisticsMaxHeavyHitters) { // Whether extra statistics useful for developers and others interested // in digging into performance problems are recorded and displayed DMLScript.FINEGRAINED_STATISTICS = DMLScript.STATISTICS && dmlconf.getBooleanValue(DMLConfig.EXTRA_FINEGRAINED_STATS); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java b/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java index 02b07c0..5d2478f 100644 --- a/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java +++ b/src/main/java/org/apache/sysml/api/mlcontext/MLContextConversionUtil.java @@ -44,7 +44,6 @@ import org.apache.sysml.conf.ConfigurationManager; import org.apache.sysml.hops.OptimizerUtils; import org.apache.sysml.parser.Expression.ValueType; import org.apache.sysml.runtime.DMLRuntimeException; -import org.apache.sysml.runtime.controlprogram.caching.CacheException; import org.apache.sysml.runtime.controlprogram.caching.FrameObject; import org.apache.sysml.runtime.controlprogram.caching.MatrixObject; import org.apache.sysml.runtime.controlprogram.context.SparkExecutionContext; @@ -954,58 +953,54 @@ public class MLContextConversionUtil { * @return the {@code MatrixObject} converted to a {@code List<String>} */ public static List<String> matrixObjectToListStringCSV(MatrixObject matrixObject) { - try { - MatrixBlock mb = matrixObject.acquireRead(); - - int rows = mb.getNumRows(); - int cols = mb.getNumColumns(); - List<String> list = new ArrayList<>(); - - if ( !mb.isEmptyBlock(false) ) { - if (mb.isInSparseFormat()) { - Iterator<IJV> iter = mb.getSparseBlockIterator(); - int prevCellRow = -1; - StringBuilder sb = null; - while (iter.hasNext()) { - IJV cell = iter.next(); - int i = cell.getI(); - double v = cell.getV(); - if (i > prevCellRow) { - if (sb == null) { - sb = new StringBuilder(); - } else { - list.add(sb.toString()); - sb = new StringBuilder(); - } - sb.append(v); - prevCellRow = i; - } else if (i == prevCellRow) { - sb.append(","); - sb.append(v); + MatrixBlock mb = matrixObject.acquireRead(); + + int rows = mb.getNumRows(); + int cols = mb.getNumColumns(); + List<String> list = new ArrayList<>(); + + if ( !mb.isEmptyBlock(false) ) { + if (mb.isInSparseFormat()) { + Iterator<IJV> iter = mb.getSparseBlockIterator(); + int prevCellRow = -1; + StringBuilder sb = null; + while (iter.hasNext()) { + IJV cell = iter.next(); + int i = cell.getI(); + double v = cell.getV(); + if (i > prevCellRow) { + if (sb == null) { + sb = new StringBuilder(); + } else { + list.add(sb.toString()); + sb = new StringBuilder(); } + sb.append(v); + prevCellRow = i; + } else if (i == prevCellRow) { + sb.append(","); + sb.append(v); } - if (sb != null) { - list.add(sb.toString()); - } - } else { - for (int i = 0; i < rows; i++) { - StringBuilder sb = new StringBuilder(); - for (int j = 0; j < cols; j++) { - if (j > 0) { - sb.append(","); - } - sb.append(mb.getValueDenseUnsafe(i, j)); + } + if (sb != null) { + list.add(sb.toString()); + } + } else { + for (int i = 0; i < rows; i++) { + StringBuilder sb = new StringBuilder(); + for (int j = 0; j < cols; j++) { + if (j > 0) { + sb.append(","); } - list.add(sb.toString()); + sb.append(mb.getValueDenseUnsafe(i, j)); } + list.add(sb.toString()); } } - - matrixObject.release(); - return list; - } catch (CacheException e) { - throw new MLContextException("Cache exception while converting matrix object to List<String> CSV format", e); } + + matrixObject.release(); + return list; } /** @@ -1018,31 +1013,27 @@ public class MLContextConversionUtil { * @return the {@code FrameObject} converted to a {@code List<String>} */ public static List<String> frameObjectToListStringCSV(FrameObject frameObject, String delimiter) { - try { - FrameBlock fb = frameObject.acquireRead(); + FrameBlock fb = frameObject.acquireRead(); - int rows = fb.getNumRows(); - int cols = fb.getNumColumns(); - List<String> list = new ArrayList<>(); + int rows = fb.getNumRows(); + int cols = fb.getNumColumns(); + List<String> list = new ArrayList<>(); - for (int i = 0; i < rows; i++) { - StringBuilder sb = new StringBuilder(); - for (int j = 0; j < cols; j++) { - if (j > 0) { - sb.append(delimiter); - } - if (fb.get(i, j) != null) { - sb.append(fb.get(i, j)); - } + for (int i = 0; i < rows; i++) { + StringBuilder sb = new StringBuilder(); + for (int j = 0; j < cols; j++) { + if (j > 0) { + sb.append(delimiter); + } + if (fb.get(i, j) != null) { + sb.append(fb.get(i, j)); } - list.add(sb.toString()); } - - frameObject.release(); - return list; - } catch (CacheException e) { - throw new MLContextException("Cache exception while converting frame object to List<String> CSV format", e); + list.add(sb.toString()); } + + frameObject.release(); + return list; } /** @@ -1053,50 +1044,45 @@ public class MLContextConversionUtil { * @return the {@code MatrixObject} converted to a {@code List<String>} */ public static List<String> matrixObjectToListStringIJV(MatrixObject matrixObject) { - try { - MatrixBlock mb = matrixObject.acquireRead(); - - int rows = mb.getNumRows(); - int cols = mb.getNumColumns(); - List<String> list = new ArrayList<>(); - - if (mb.getNonZeros() > 0) { - if (mb.isInSparseFormat()) { - Iterator<IJV> iter = mb.getSparseBlockIterator(); - StringBuilder sb = null; - while (iter.hasNext()) { - IJV cell = iter.next(); + MatrixBlock mb = matrixObject.acquireRead(); + + int rows = mb.getNumRows(); + int cols = mb.getNumColumns(); + List<String> list = new ArrayList<>(); + + if (mb.getNonZeros() > 0) { + if (mb.isInSparseFormat()) { + Iterator<IJV> iter = mb.getSparseBlockIterator(); + StringBuilder sb = null; + while (iter.hasNext()) { + IJV cell = iter.next(); + sb = new StringBuilder(); + sb.append(cell.getI() + 1); + sb.append(" "); + sb.append(cell.getJ() + 1); + sb.append(" "); + sb.append(cell.getV()); + list.add(sb.toString()); + } + } else { + StringBuilder sb = null; + for (int i = 0; i < rows; i++) { + sb = new StringBuilder(); + for (int j = 0; j < cols; j++) { sb = new StringBuilder(); - sb.append(cell.getI() + 1); + sb.append(i + 1); sb.append(" "); - sb.append(cell.getJ() + 1); + sb.append(j + 1); sb.append(" "); - sb.append(cell.getV()); + sb.append(mb.getValueDenseUnsafe(i, j)); list.add(sb.toString()); } - } else { - StringBuilder sb = null; - for (int i = 0; i < rows; i++) { - sb = new StringBuilder(); - for (int j = 0; j < cols; j++) { - sb = new StringBuilder(); - sb.append(i + 1); - sb.append(" "); - sb.append(j + 1); - sb.append(" "); - sb.append(mb.getValueDenseUnsafe(i, j)); - list.add(sb.toString()); - } - } } } - - matrixObject.release(); - return list; - } catch (CacheException e) { - throw new MLContextException("Cache exception while converting matrix object to List<String> IJV format", - e); } + + matrixObject.release(); + return list; } /** @@ -1107,34 +1093,30 @@ public class MLContextConversionUtil { * @return the {@code FrameObject} converted to a {@code List<String>} */ public static List<String> frameObjectToListStringIJV(FrameObject frameObject) { - try { - FrameBlock fb = frameObject.acquireRead(); - - int rows = fb.getNumRows(); - int cols = fb.getNumColumns(); - List<String> list = new ArrayList<>(); - - StringBuilder sb = null; - for (int i = 0; i < rows; i++) { - sb = new StringBuilder(); - for (int j = 0; j < cols; j++) { - if (fb.get(i, j) != null) { - sb = new StringBuilder(); - sb.append(i + 1); - sb.append(" "); - sb.append(j + 1); - sb.append(" "); - sb.append(fb.get(i, j)); - list.add(sb.toString()); - } + FrameBlock fb = frameObject.acquireRead(); + + int rows = fb.getNumRows(); + int cols = fb.getNumColumns(); + List<String> list = new ArrayList<>(); + + StringBuilder sb = null; + for (int i = 0; i < rows; i++) { + sb = new StringBuilder(); + for (int j = 0; j < cols; j++) { + if (fb.get(i, j) != null) { + sb = new StringBuilder(); + sb.append(i + 1); + sb.append(" "); + sb.append(j + 1); + sb.append(" "); + sb.append(fb.get(i, j)); + list.add(sb.toString()); } } - - frameObject.release(); - return list; - } catch (CacheException e) { - throw new MLContextException("Cache exception while converting frame object to List<String> IJV format", e); } + + frameObject.release(); + return list; } /** @@ -1145,14 +1127,10 @@ public class MLContextConversionUtil { * @return the {@code MatrixObject} converted to a {@code double[][]} */ public static double[][] matrixObjectTo2DDoubleArray(MatrixObject matrixObject) { - try { - MatrixBlock mb = matrixObject.acquireRead(); - double[][] matrix = DataConverter.convertToDoubleMatrix(mb); - matrixObject.release(); - return matrix; - } catch (CacheException e) { - throw new MLContextException("Cache exception while converting matrix object to double matrix", e); - } + MatrixBlock mb = matrixObject.acquireRead(); + double[][] matrix = DataConverter.convertToDoubleMatrix(mb); + matrixObject.release(); + return matrix; } /** @@ -1257,14 +1235,10 @@ public class MLContextConversionUtil { * @return the {@code FrameObject} converted to a {@code String[][]} */ public static String[][] frameObjectTo2DStringArray(FrameObject frameObject) { - try { - FrameBlock fb = frameObject.acquireRead(); - String[][] frame = DataConverter.convertToStringFrame(fb); - frameObject.release(); - return frame; - } catch (CacheException e) { - throw new MLContextException("CacheException while converting frame object to 2D string array", e); - } + FrameBlock fb = frameObject.acquireRead(); + String[][] frame = DataConverter.convertToStringFrame(fb); + frameObject.release(); + return frame; } /** http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java b/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java index af99ab1..dcf4595 100644 --- a/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java +++ b/src/main/java/org/apache/sysml/api/mlcontext/MLContextUtil.java @@ -54,11 +54,8 @@ import org.apache.sysml.conf.CompilerConfig; import org.apache.sysml.conf.CompilerConfig.ConfigType; import org.apache.sysml.conf.ConfigurationManager; import org.apache.sysml.conf.DMLConfig; -import org.apache.sysml.hops.HopsException; -import org.apache.sysml.parser.LanguageException; import org.apache.sysml.parser.ParseException; import org.apache.sysml.parser.Statement; -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; @@ -1181,15 +1178,8 @@ public final class MLContextUtil { * If false, the dot graph will be created without subgraphs for * statement blocks. * @return hop DAG in dot format - * @throws LanguageException - * if error occurs - * @throws DMLRuntimeException - * if error occurs - * @throws HopsException - * if error occurs */ - public static String getHopDAG(MLContext mlCtx, Script script, ArrayList<Integer> lines, boolean performHOPRewrites, - boolean withSubgraph) throws HopsException, DMLRuntimeException, LanguageException { + public static String getHopDAG(MLContext mlCtx, Script script, ArrayList<Integer> lines, boolean performHOPRewrites, boolean withSubgraph) { return getHopDAG(mlCtx, script, lines, null, performHOPRewrites, withSubgraph); } @@ -1213,16 +1203,9 @@ public final class MLContextUtil { * If false, the dot graph will be created without subgraphs for * statement blocks. * @return hop DAG in dot format - * @throws LanguageException - * if error occurs - * @throws DMLRuntimeException - * if error occurs - * @throws HopsException - * if error occurs */ public static String getHopDAG(MLContext mlCtx, Script script, ArrayList<Integer> lines, SparkConf newConf, - boolean performHOPRewrites, boolean withSubgraph) - throws HopsException, DMLRuntimeException, LanguageException { + boolean performHOPRewrites, boolean withSubgraph) { SparkConf oldConf = mlCtx.getSparkSession().sparkContext().getConf(); SparkExecutionContext.SparkClusterConfig systemmlConf = SparkExecutionContext.getSparkClusterConfig(); long oldMaxMemory = InfrastructureAnalyzer.getLocalMaxMemory(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java b/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java index 1fa9e4e..26b744b 100644 --- a/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java +++ b/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java @@ -548,11 +548,7 @@ public class ScriptExecutor { protected void validateScript() { try { dmlTranslator.validateParseTree(dmlProgram); - } catch (LanguageException e) { - throw new MLContextException("Exception occurred while validating script", e); - } catch (ParseException e) { - throw new MLContextException("Exception occurred while validating script", e); - } catch (IOException e) { + } catch (LanguageException | ParseException e) { throw new MLContextException("Exception occurred while validating script", e); } } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/conf/DMLConfig.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/conf/DMLConfig.java b/src/main/java/org/apache/sysml/conf/DMLConfig.java index 62e1bd0..fb0237f 100644 --- a/src/main/java/org/apache/sysml/conf/DMLConfig.java +++ b/src/main/java/org/apache/sysml/conf/DMLConfig.java @@ -147,13 +147,13 @@ public class DMLConfig } public DMLConfig(String fileName) - throws ParseException, FileNotFoundException + throws FileNotFoundException { this( fileName, false ); } public DMLConfig(String fileName, boolean silent) - throws ParseException, FileNotFoundException + throws FileNotFoundException { _fileName = fileName; try { @@ -279,9 +279,8 @@ public class DMLConfig * Method to update the key value * @param paramName parameter name * @param paramValue parameter value - * @throws DMLRuntimeException if DMLRuntimeException occurs */ - public void setTextValue(String paramName, String paramValue) throws DMLRuntimeException { + public void setTextValue(String paramName, String paramValue) { if(_xmlRoot != null) { NodeList list = _xmlRoot.getElementsByTagName(paramName); if (list != null && list.getLength() > 0) { @@ -336,11 +335,9 @@ public class DMLConfig } public synchronized String serializeDMLConfig() - throws DMLRuntimeException { String ret = null; - try - { + try { Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); //transformer.setOutputProperty(OutputKeys.INDENT, "yes"); @@ -349,17 +346,14 @@ public class DMLConfig transformer.transform(source, result); ret = result.getWriter().toString(); } - catch(Exception ex) - { + catch(Exception ex) { throw new DMLRuntimeException("Unable to serialize DML config.", ex); } return ret; } - public static DMLConfig parseDMLConfig( String content ) - throws DMLRuntimeException - { + public static DMLConfig parseDMLConfig( String content ) { DMLConfig ret = null; try { DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); @@ -383,11 +377,10 @@ public class DMLConfig * * @param configPath User-defined path of the configuration file. * @return dml configuration - * @throws ParseException if ParseException occurs * @throws FileNotFoundException if FileNotFoundException occurs */ public static DMLConfig readConfigurationFile(String configPath) - throws ParseException, FileNotFoundException + throws FileNotFoundException { // Always start with the internal defaults DMLConfig config = new DMLConfig(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/debug/DMLDebuggerFunctions.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/debug/DMLDebuggerFunctions.java b/src/main/java/org/apache/sysml/debug/DMLDebuggerFunctions.java index 3b75d4b..d32d0e5 100644 --- a/src/main/java/org/apache/sysml/debug/DMLDebuggerFunctions.java +++ b/src/main/java/org/apache/sysml/debug/DMLDebuggerFunctions.java @@ -29,7 +29,6 @@ import org.apache.commons.lang.math.IntRange; import org.apache.sysml.hops.OptimizerUtils; import org.apache.sysml.lops.Lop; import org.apache.sysml.parser.Expression.DataType; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.controlprogram.LocalVariableMap; import org.apache.sysml.runtime.controlprogram.caching.MatrixObject; import org.apache.sysml.runtime.instructions.Instruction; @@ -278,7 +277,7 @@ public class DMLDebuggerFunctions { System.out.println("Symbol table for current frame is empty"); } - public void print(LocalVariableMap variables, String varname, String displayFunction, int rowIndex, int colIndex) throws DMLRuntimeException { + public void print(LocalVariableMap variables, String varname, String displayFunction, int rowIndex, int colIndex) { if (varname == null) { System.err.println("No matrix variable name entered."); return; @@ -357,9 +356,8 @@ public class DMLDebuggerFunctions { * Print DML matrix variable in current frame (if existing) * @param variables Current frame variables * @param varname Variable name - * @throws DMLRuntimeException if DMLRuntimeException occurs */ - public void printMatrixVariable(LocalVariableMap variables, String varname) throws DMLRuntimeException { + public void printMatrixVariable(LocalVariableMap variables, String varname) { if (varname == null) { System.err.println("No matrix variable name entered."); return; http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/debug/DebugState.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/debug/DebugState.java b/src/main/java/org/apache/sysml/debug/DebugState.java index ed1bea3..567b3bd 100644 --- a/src/main/java/org/apache/sysml/debug/DebugState.java +++ b/src/main/java/org/apache/sysml/debug/DebugState.java @@ -58,9 +58,8 @@ public class DebugState /** * Getter for current frame's program counter * @return Current frame program counter - * @throws DMLRuntimeException if DMLRuntimeException occurs */ - public DMLProgramCounter getPC() throws DMLRuntimeException { + public DMLProgramCounter getPC() { if(!DMLScript.ENABLE_DEBUG_MODE) { System.err.println("Error: This functionality (getPC) is available only in debug mode"); //// Fatal error to avoid unintentional bugs http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/AggBinaryOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/AggBinaryOp.java b/src/main/java/org/apache/sysml/hops/AggBinaryOp.java index 241dd86..3c5f157 100644 --- a/src/main/java/org/apache/sysml/hops/AggBinaryOp.java +++ b/src/main/java/org/apache/sysml/hops/AggBinaryOp.java @@ -29,7 +29,6 @@ import org.apache.sysml.lops.DataPartition; import org.apache.sysml.lops.Group; import org.apache.sysml.lops.Lop; import org.apache.sysml.lops.LopProperties.ExecType; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.lops.MMCJ; import org.apache.sysml.lops.MMCJ.MMCJType; import org.apache.sysml.lops.MMRJ; @@ -117,7 +116,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop } @Override - public void checkArity() throws HopsException { + public void checkArity() { HopsException.check(_input.size() == 2, this, "should have arity 2 but has arity %d", _input.size()); } @@ -177,7 +176,6 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop */ @Override public Lop constructLops() - throws HopsException, LopsException { //return already created lops if( getLops() != null ) @@ -434,8 +432,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop @Override protected ExecType optFindExecType() - throws HopsException - { + { checkAndSetForcedPlatform(); ExecType REMOTE = OptimizerUtils.isSparkExecutionMode() ? ExecType.SPARK : ExecType.MR; @@ -489,7 +486,6 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop } private boolean isApplicableForTransitiveSparkExecType(boolean left) - throws HopsException { int index = left ? 0 : 1; return !(getInput().get(index) instanceof DataOp && ((DataOp)getInput().get(index)).requiresCheckpoint()) @@ -587,21 +583,16 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop // CP Lops generation ///////////////////////// - private void constructCPLopsTSMM( MMTSJType mmtsj, ExecType et ) - throws HopsException, LopsException - { + private void constructCPLopsTSMM( MMTSJType mmtsj, ExecType et ) { int k = OptimizerUtils.getConstrainedNumThreads(_maxNumThreads); - Lop matmultCP = new MMTSJ(getInput().get(mmtsj.isLeft()?1:0).constructLops(), - getDataType(), getValueType(), et, mmtsj, false, k); - + getDataType(), getValueType(), et, mmtsj, false, k); matmultCP.getOutputParameters().setDimensions(getDim1(), getDim2(), getRowsInBlock(), getColsInBlock(), getNnz()); setLineNumbers( matmultCP ); setLops(matmultCP); } - private void constructCPLopsMMChain( ChainType chain ) - throws LopsException, HopsException + private void constructCPLopsMMChain( ChainType chain ) { MapMultChain mapmmchain = null; if( chain == ChainType.XtXv ) { @@ -632,12 +623,8 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop * NOTE: exists for consistency since removeEmtpy might be scheduled to MR * but matrix mult on small output might be scheduled to CP. Hence, we * need to handle directly passed selection vectors in CP as well. - * - * @throws HopsException if HopsException occurs - * @throws LopsException if LopsException occurs */ private void constructCPLopsPMM() - throws HopsException, LopsException { Hop pmInput = getInput().get(0); Hop rightInput = getInput().get(1); @@ -663,7 +650,6 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop } private void constructCPLopsMM(ExecType et) - throws HopsException, LopsException { Lop matmultCP = null; @@ -701,7 +687,6 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop } private Lop constructCPLopsMMWithLeftTransposeRewrite() - throws HopsException, LopsException { Hop X = getInput().get(0).getInput().get(0); //guaranteed to exists Hop Y = getInput().get(1); @@ -730,9 +715,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop // Spark Lops generation ///////////////////////// - private void constructSparkLopsTSMM(MMTSJType mmtsj, boolean multiPass) - throws HopsException, LopsException - { + private void constructSparkLopsTSMM(MMTSJType mmtsj, boolean multiPass) { Hop input = getInput().get(mmtsj.isLeft()?1:0); MMTSJ tsmm = new MMTSJ(input.constructLops(), getDataType(), getValueType(), ExecType.SPARK, mmtsj, multiPass); @@ -741,8 +724,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop setLops(tsmm); } - private void constructSparkLopsMapMM(MMultMethod method) - throws LopsException, HopsException + private void constructSparkLopsMapMM(MMultMethod method) { Lop mapmult = null; if( isLeftTransposeRewriteApplicable(false, false) ) @@ -767,8 +749,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop setLops(mapmult); } - private Lop constructSparkLopsMapMMWithLeftTransposeRewrite() - throws HopsException, LopsException + private Lop constructSparkLopsMapMMWithLeftTransposeRewrite() { Hop X = getInput().get(0).getInput().get(0); //guaranteed to exists Hop Y = getInput().get(1); @@ -794,9 +775,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop return out; } - private void constructSparkLopsMapMMChain(ChainType chain) - throws LopsException, HopsException - { + private void constructSparkLopsMapMMChain(ChainType chain) { MapMultChain mapmmchain = null; if( chain == ChainType.XtXv ) { Hop hX = getInput().get(0).getInput().get(0); @@ -816,9 +795,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop setLops(mapmmchain); } - private void constructSparkLopsPMapMM() - throws LopsException, HopsException - { + private void constructSparkLopsPMapMM() { PMapMult pmapmult = new PMapMult( getInput().get(0).constructLops(), getInput().get(1).constructLops(), @@ -828,9 +805,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop setLops(pmapmult); } - private void constructSparkLopsCPMM() - throws HopsException, LopsException - { + private void constructSparkLopsCPMM() { if( isLeftTransposeRewriteApplicable(false, false) ) { setLops( constructSparkLopsCPMMWithLeftTransposeRewrite() ); @@ -847,9 +822,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop } } - private Lop constructSparkLopsCPMMWithLeftTransposeRewrite() - throws HopsException, LopsException - { + private Lop constructSparkLopsCPMMWithLeftTransposeRewrite() { SparkAggType aggtype = getSparkMMAggregationType(true); Hop X = getInput().get(0).getInput().get(0); //guaranteed to exists @@ -872,19 +845,15 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop return out; } - private void constructSparkLopsRMM() - throws LopsException, HopsException - { + private void constructSparkLopsRMM() { Lop rmm = new MMRJ(getInput().get(0).constructLops(),getInput().get(1).constructLops(), - getDataType(), getValueType(), ExecType.SPARK); + getDataType(), getValueType(), ExecType.SPARK); setOutputDimensions(rmm); setLineNumbers( rmm ); setLops(rmm); } - private void constructSparkLopsPMM() - throws HopsException, LopsException - { + private void constructSparkLopsPMM() { //PMM has two potential modes (a) w/ full permutation matrix input, and //(b) w/ already condensed input vector of target row positions. @@ -894,7 +863,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop Lop lpmInput = pmInput.constructLops(); Hop nrow = null; double mestPM = OptimizerUtils.estimateSize(pmInput.getDim1(), 1); - ExecType etVect = (mestPM>OptimizerUtils.getLocalMemBudget())?ExecType.MR:ExecType.CP; + ExecType etVect = (mestPM>OptimizerUtils.getLocalMemBudget())?ExecType.MR:ExecType.CP; //a) full permutation matrix input (potentially without empty block materialized) if( pmInput.getDim2() != 1 ) //not a vector @@ -939,12 +908,10 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop setLineNumbers(pmm); setLops(pmm); - HopRewriteUtils.removeChildReference(pmInput, nrow); + HopRewriteUtils.removeChildReference(pmInput, nrow); } - private void constructSparkLopsZIPMM() - throws HopsException, LopsException - { + private void constructSparkLopsZIPMM() { //zipmm applies to t(X)%*%y if ncol(X)<=blocksize and it prevents //unnecessary reshuffling by keeping the original indexes (and partitioning) //joining the datasets, and internally doing the necessary transpose operations @@ -965,8 +932,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop // MR Lops generation ///////////////////////// - private void constructMRLopsMapMM(MMultMethod method) - throws HopsException, LopsException + private void constructMRLopsMapMM(MMultMethod method) { if( method == MMultMethod.MAPMM_R && isLeftTransposeRewriteApplicable(false, true) ) { @@ -1002,7 +968,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop rightInput.getOutputParameters().setDimensions(input.getDim1(), input.getDim2(), getRowsInBlock(), getColsInBlock(), input.getNnz()); setLineNumbers(rightInput); } - } + } //core matrix mult MapMult mapmult = new MapMult( leftInput, rightInput, getDataType(), getValueType(), @@ -1027,11 +993,10 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop else { setLops(mapmult); } - } + } } - private Lop constructMRLopsMapMMWithLeftTransposeRewrite() - throws HopsException, LopsException + private Lop constructMRLopsMapMMWithLeftTransposeRewrite() { Hop X = getInput().get(0).getInput().get(0); //guaranteed to exists Hop Y = getInput().get(1); @@ -1087,8 +1052,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop return out; } - private void constructMRLopsMapMMChain( ChainType chainType ) - throws HopsException, LopsException + private void constructMRLopsMapMMChain( ChainType chainType ) { Lop mapmult = null; @@ -1140,8 +1104,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop setLops(agg1); } - private void constructMRLopsCPMM() - throws HopsException, LopsException + private void constructMRLopsCPMM() { if( isLeftTransposeRewriteApplicable(false, false) ) { @@ -1172,9 +1135,7 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop } } - private Lop constructMRLopsCPMMWithLeftTransposeRewrite() - throws HopsException, LopsException - { + private Lop constructMRLopsCPMMWithLeftTransposeRewrite() { Hop X = getInput().get(0).getInput().get(0); //guaranteed to exists Hop Y = getInput().get(1); @@ -1208,36 +1169,27 @@ public class AggBinaryOp extends Hop implements MultiThreadedHop return out; } - private void constructMRLopsRMM() - throws HopsException, LopsException - { + private void constructMRLopsRMM() { MMRJ rmm = new MMRJ(getInput().get(0).constructLops(), getInput().get(1).constructLops(), - getDataType(), getValueType(), ExecType.MR); - + getDataType(), getValueType(), ExecType.MR); setOutputDimensions(rmm); setLineNumbers(rmm); setLops(rmm); } - private void constructMRLopsTSMM(MMTSJType mmtsj) - throws HopsException, LopsException - { + private void constructMRLopsTSMM(MMTSJType mmtsj) { Hop input = getInput().get(mmtsj.isLeft()?1:0); - MMTSJ tsmm = new MMTSJ(input.constructLops(), getDataType(), getValueType(), ExecType.MR, mmtsj); tsmm.getOutputParameters().setDimensions(getDim1(), getDim2(), getRowsInBlock(), getColsInBlock(), getNnz()); setLineNumbers(tsmm); - Aggregate agg1 = new Aggregate(tsmm, HopsAgg2Lops.get(outerOp), getDataType(), getValueType(), ExecType.MR); agg1.getOutputParameters().setDimensions(getDim1(), getDim2(), getRowsInBlock(), getColsInBlock(), getNnz()); agg1.setupCorrectionLocation(CorrectionLocationType.NONE); // aggregation uses kahanSum but the inputs do not have correction values setLineNumbers(agg1); - setLops(agg1); - } + } private void constructMRLopsPMM() - throws HopsException, LopsException { //PMM has two potential modes (a) w/ full permutation matrix input, and //(b) w/ already condensed input vector of target row positions. http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/AggUnaryOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/AggUnaryOp.java b/src/main/java/org/apache/sysml/hops/AggUnaryOp.java index 79c1610..136d2d6 100644 --- a/src/main/java/org/apache/sysml/hops/AggUnaryOp.java +++ b/src/main/java/org/apache/sysml/hops/AggUnaryOp.java @@ -29,7 +29,6 @@ import org.apache.sysml.lops.Binary; import org.apache.sysml.lops.ConvolutionTransform; import org.apache.sysml.lops.Group; import org.apache.sysml.lops.Lop; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.lops.PartialAggregate; import org.apache.sysml.lops.PartialAggregate.DirectionTypes; import org.apache.sysml.lops.TernaryAggregate; @@ -74,7 +73,7 @@ public class AggUnaryOp extends Hop implements MultiThreadedHop } @Override - public void checkArity() throws HopsException { + public void checkArity() { HopsException.check(_input.size() == 1, this, "should have arity 1 but has arity %d", _input.size()); } @@ -148,8 +147,7 @@ public class AggUnaryOp extends Hop implements MultiThreadedHop @Override public Lop constructLops() - throws HopsException, LopsException - { + { //return already created lops if( getLops() != null ) return getLops(); @@ -473,14 +471,14 @@ public class AggUnaryOp extends Hop implements MultiThreadedHop @Override - protected ExecType optFindExecType() throws HopsException { + protected ExecType optFindExecType() { checkAndSetForcedPlatform(); ExecType REMOTE = OptimizerUtils.isSparkExecutionMode() ? ExecType.SPARK : ExecType.MR; //forced / memory-based / threshold-based decision - if( _etypeForced != null ) + if( _etypeForced != null ) { _etype = _etypeForced; } @@ -547,7 +545,6 @@ public class AggUnaryOp extends Hop implements MultiThreadedHop } private boolean isTernaryAggregateRewriteApplicable() - throws HopsException { boolean ret = false; @@ -701,7 +698,6 @@ public class AggUnaryOp extends Hop implements MultiThreadedHop } private Lop constructLopsTernaryAggregateRewrite(ExecType et) - throws HopsException, LopsException { BinaryOp input1 = (BinaryOp)getInput().get(0); Hop input11 = input1.getInput().get(0); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/BinaryOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/BinaryOp.java b/src/main/java/org/apache/sysml/hops/BinaryOp.java index 279d14d..35d40c5 100644 --- a/src/main/java/org/apache/sysml/hops/BinaryOp.java +++ b/src/main/java/org/apache/sysml/hops/BinaryOp.java @@ -43,7 +43,6 @@ import org.apache.sysml.lops.DataPartition; import org.apache.sysml.lops.Group; import org.apache.sysml.lops.Lop; import org.apache.sysml.lops.LopProperties.ExecType; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.lops.PartialAggregate; import org.apache.sysml.lops.PickByCount; import org.apache.sysml.lops.RepMat; @@ -112,7 +111,7 @@ public class BinaryOp extends Hop } @Override - public void checkArity() throws HopsException { + public void checkArity() { HopsException.check(_input.size() == 2, this, "should have arity 2 but has arity %d", _input.size()); } @@ -184,8 +183,7 @@ public class BinaryOp extends Hop @Override public Lop constructLops() - throws HopsException, LopsException - { + { //return already created lops if( getLops() != null ) return getLops(); @@ -231,7 +229,7 @@ public class BinaryOp extends Hop return getLops(); } - private void constructLopsIQM(ExecType et) throws HopsException, LopsException { + private void constructLopsIQM(ExecType et) { if ( et == ExecType.MR ) { CombineBinary combine = CombineBinary.constructCombineLop( OperationTypes.PreSort, (Lop) getInput().get(0) @@ -329,7 +327,7 @@ public class BinaryOp extends Hop } } - private void constructLopsMedian(ExecType et) throws HopsException, LopsException { + private void constructLopsMedian(ExecType et) { if ( et == ExecType.MR ) { CombineBinary combine = CombineBinary .constructCombineLop( @@ -400,7 +398,6 @@ public class BinaryOp extends Hop } private void constructLopsCentralMoment(ExecType et) - throws HopsException, LopsException { // The output data type is a SCALAR if central moment // gets computed in CP/SPARK, and it will be MATRIX otherwise. @@ -427,9 +424,7 @@ public class BinaryOp extends Hop } } - private void constructLopsCovariance(ExecType et) - throws LopsException, HopsException - { + private void constructLopsCovariance(ExecType et) { if ( et == ExecType.MR ) { // combineBinary -> CoVariance -> CastAsScalar CombineBinary combine = CombineBinary.constructCombineLop( @@ -469,7 +464,7 @@ public class BinaryOp extends Hop } } - private void constructLopsQuantile(ExecType et) throws HopsException, LopsException { + private void constructLopsQuantile(ExecType et) { // 1st arguments needs to be a 1-dimensional matrix // For QUANTILE: 2nd argument is scalar or 1-dimensional matrix // For INTERQUANTILE: 2nd argument is always a scalar @@ -540,7 +535,6 @@ public class BinaryOp extends Hop } private void constructLopsAppend(ExecType et) - throws HopsException, LopsException { DataType dt1 = getInput().get(0).getDataType(); DataType dt2 = getInput().get(1).getDataType(); @@ -593,7 +587,6 @@ public class BinaryOp extends Hop } private void constructLopsBinaryDefault() - throws HopsException, LopsException { /* Default behavior for BinaryOp */ // it depends on input data types @@ -995,7 +988,7 @@ public class BinaryOp extends Hop } @Override - protected ExecType optFindExecType() throws HopsException { + protected ExecType optFindExecType() { checkAndSetForcedPlatform(); @@ -1088,11 +1081,8 @@ public class BinaryOp extends Hop * @param cbind true if cbind * @param current current high-level operator * @return low-level operator - * @throws HopsException if HopsException occurs - * @throws LopsException if LopsException occurs */ - public static Lop constructMRAppendLop( Hop left, Hop right, DataType dt, ValueType vt, boolean cbind, Hop current ) - throws HopsException, LopsException + public static Lop constructMRAppendLop( Hop left, Hop right, DataType dt, ValueType vt, boolean cbind, Hop current ) { Lop ret = null; @@ -1178,7 +1168,6 @@ public class BinaryOp extends Hop } public static Lop constructSPAppendLop( Hop left, Hop right, DataType dt, ValueType vt, boolean cbind, Hop current ) - throws HopsException, LopsException { Lop ret = null; @@ -1234,12 +1223,8 @@ public class BinaryOp extends Hop * @param cbind ? * @param current ? * @return low-level operator - * @throws HopsException if HopsException occurs - * @throws LopsException if LopsException occurs */ - public static Lop constructAppendLopChain( Hop left, Hop right1, Hop right2, DataType dt, ValueType vt, boolean cbind, Hop current ) - throws HopsException, LopsException - { + public static Lop constructAppendLopChain( Hop left, Hop right1, Hop right2, DataType dt, ValueType vt, boolean cbind, Hop current ) { long m1_dim1 = left.getDim1(); long m1_dim2 = left.getDim2(); long m2_dim1 = right1.getDim1(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/ConvolutionOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/ConvolutionOp.java b/src/main/java/org/apache/sysml/hops/ConvolutionOp.java index 410a83a..c137462 100644 --- a/src/main/java/org/apache/sysml/hops/ConvolutionOp.java +++ b/src/main/java/org/apache/sysml/hops/ConvolutionOp.java @@ -26,7 +26,6 @@ import org.apache.sysml.lops.ConvolutionTransform; import org.apache.sysml.lops.ConvolutionTransform.OperationTypes; import org.apache.sysml.lops.Lop; import org.apache.sysml.lops.LopProperties.ExecType; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.parser.Expression.DataType; import org.apache.sysml.parser.Expression.ValueType; import org.apache.sysml.runtime.DMLRuntimeException; @@ -81,7 +80,7 @@ public class ConvolutionOp extends Hop implements MultiThreadedHop } @Override - public void checkArity() throws HopsException { + public void checkArity() { HopsException.check(_input.size() >= 1, this, "should have at least one input but has %d inputs", _input.size()); } @@ -107,7 +106,6 @@ public class ConvolutionOp extends Hop implements MultiThreadedHop @Override public Lop constructLops() - throws HopsException, LopsException { //return already created lops if( getLops() != null ) @@ -213,10 +211,8 @@ public class ConvolutionOp extends Hop implements MultiThreadedHop * If corresponding output lop is not found or if this is not a max_pool_backward operation, this function returns null * * @return output lop of max_pool/avg_pool operation with same parameters as this hop - * @throws HopsException if error - * @throws LopsException if error */ - private Lop getMaxPoolOutputLop() throws HopsException, LopsException { + private Lop getMaxPoolOutputLop() { if(op == ConvOp.MAX_POOLING_BACKWARD || op == ConvOp.AVG_POOLING_BACKWARD) { ConvOp opType = (op == ConvOp.MAX_POOLING_BACKWARD) ? ConvOp.MAX_POOLING : ConvOp.AVG_POOLING; Hop inputImage = getInput().get(0); @@ -232,7 +228,7 @@ public class ConvolutionOp extends Hop implements MultiThreadedHop return null; } - public Lop constructConvolutionLops(ExecType et, ArrayList<Hop> inputs) throws HopsException, LopsException { + public Lop constructConvolutionLops(ExecType et, ArrayList<Hop> inputs) { if(inputs.size() != getNumExpectedInputs()) throw new HopsException("Incorrect number of inputs for " + op.name()); @@ -533,7 +529,7 @@ public class ConvolutionOp extends Hop implements MultiThreadedHop } @Override - protected ExecType optFindExecType() throws HopsException { + protected ExecType optFindExecType() { checkAndSetForcedPlatform(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/DataGenOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/DataGenOp.java b/src/main/java/org/apache/sysml/hops/DataGenOp.java index 6980cd3..3e271d5 100644 --- a/src/main/java/org/apache/sysml/hops/DataGenOp.java +++ b/src/main/java/org/apache/sysml/hops/DataGenOp.java @@ -29,7 +29,6 @@ import org.apache.sysml.hops.rewrite.HopRewriteUtils; import org.apache.sysml.hops.Hop.MultiThreadedHop; import org.apache.sysml.lops.Lop; import org.apache.sysml.lops.DataGen; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.lops.LopProperties.ExecType; import org.apache.sysml.parser.DataIdentifier; import org.apache.sysml.parser.DataExpression; @@ -119,7 +118,7 @@ public class DataGenOp extends Hop implements MultiThreadedHop } @Override - public void checkArity() throws HopsException { + public void checkArity() { int sz = _input.size(); int pz = _paramIndexMap.size(); HopsException.check(sz == pz, this, "has %d inputs but %d parameters", sz, pz); @@ -151,7 +150,6 @@ public class DataGenOp extends Hop implements MultiThreadedHop @Override public Lop constructLops() - throws HopsException, LopsException { //return already created lops if( getLops() != null ) @@ -274,13 +272,12 @@ public class DataGenOp extends Hop implements MultiThreadedHop } @Override - protected ExecType optFindExecType() throws HopsException { - + protected ExecType optFindExecType() { checkAndSetForcedPlatform(); ExecType REMOTE = OptimizerUtils.isSparkExecutionMode() ? ExecType.SPARK : ExecType.MR; - if( _etypeForced != null ) + if( _etypeForced != null ) _etype = _etypeForced; else { http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/DataOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/DataOp.java b/src/main/java/org/apache/sysml/hops/DataOp.java index 2495997..fd3665f 100644 --- a/src/main/java/org/apache/sysml/hops/DataOp.java +++ b/src/main/java/org/apache/sysml/hops/DataOp.java @@ -188,7 +188,7 @@ public class DataOp extends Hop /** Check for N (READ) or N+1 (WRITE) inputs. */ @Override - public void checkArity() throws HopsException { + public void checkArity() { int sz = _input.size(); int pz = _paramIndexMap.size(); switch (_dataop) { @@ -247,8 +247,7 @@ public class DataOp extends Hop @Override public Lop constructLops() - throws HopsException, LopsException - { + { //return already created lops if( getLops() != null ) return getLops(); @@ -441,7 +440,6 @@ public class DataOp extends Hop @Override protected ExecType optFindExecType() - throws HopsException { //MB: find exec type has two meanings here: (1) for write it means the actual //exec type, while (2) for read it affects the recompilation decision as needed http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/FunctionOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/FunctionOp.java b/src/main/java/org/apache/sysml/hops/FunctionOp.java index 49000e2..3631f00 100644 --- a/src/main/java/org/apache/sysml/hops/FunctionOp.java +++ b/src/main/java/org/apache/sysml/hops/FunctionOp.java @@ -24,7 +24,6 @@ import java.util.ArrayList; import org.apache.sysml.lops.FunctionCallCP; import org.apache.sysml.lops.FunctionCallCPSingle; import org.apache.sysml.lops.Lop; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.lops.LopProperties.ExecType; import org.apache.sysml.parser.DMLProgram; import org.apache.sysml.parser.Expression.DataType; @@ -84,7 +83,7 @@ public class FunctionOp extends Hop /** FunctionOps may have any number of inputs. */ @Override - public void checkArity() throws HopsException {} + public void checkArity() {} public String getFunctionKey() { return DMLProgram.constructFunctionKey( @@ -221,7 +220,6 @@ public class FunctionOp extends Hop @Override public Lop constructLops() - throws HopsException, LopsException { //return already created lops if( getLops() != null ) @@ -253,7 +251,6 @@ public class FunctionOp extends Hop @Override protected ExecType optFindExecType() - throws HopsException { checkAndSetForcedPlatform(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/Hop.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/Hop.java b/src/main/java/org/apache/sysml/hops/Hop.java index 0ced336..8d799f9 100644 --- a/src/main/java/org/apache/sysml/hops/Hop.java +++ b/src/main/java/org/apache/sysml/hops/Hop.java @@ -151,9 +151,8 @@ public abstract class Hop implements ParseInfo * * Parameterized Hops (such as DataOp) can check that the number of parameters matches the number of inputs. * - * @throws HopsException if this Hop has an illegal number of inputs (a kind of Illegal State) */ - public abstract void checkArity() throws HopsException; + public abstract void checkArity(); public ExecType getExecType() { @@ -282,9 +281,7 @@ public abstract class Hop implements ParseInfo return _requiresCompression; } - public void constructAndSetLopsDataFlowProperties() - throws HopsException - { + public void constructAndSetLopsDataFlowProperties() { //Step 1: construct reblock lop if required (output of hop) constructAndSetReblockLopIfRequired(); @@ -296,7 +293,6 @@ public abstract class Hop implements ParseInfo } private void constructAndSetReblockLopIfRequired() - throws HopsException { //determine execution type ExecType et = ExecType.CP; @@ -337,9 +333,7 @@ public abstract class Hop implements ParseInfo } } - private void constructAndSetCheckpointLopIfRequired() - throws HopsException - { + private void constructAndSetCheckpointLopIfRequired() { //determine execution type ExecType et = ExecType.CP; if( OptimizerUtils.isSparkExecutionMode() @@ -397,7 +391,6 @@ public abstract class Hop implements ParseInfo } private void constructAndSetCompressionLopIfRequired() - throws HopsException { //determine execution type ExecType et = ExecType.CP; @@ -435,7 +428,6 @@ public abstract class Hop implements ParseInfo } public static Lop createOffsetLop( Hop hop, boolean repCols ) - throws HopsException, LopsException { Lop offset = null; @@ -819,11 +811,9 @@ public abstract class Hop implements ParseInfo return _updateType; } - public abstract Lop constructLops() - throws HopsException, LopsException; + public abstract Lop constructLops(); - protected abstract ExecType optFindExecType() - throws HopsException; + protected abstract ExecType optFindExecType(); public abstract String getOpString(); @@ -1000,9 +990,7 @@ public abstract class Hop implements ParseInfo return OptimizerUtils.getSparsity(_dim1, _dim2, _nnz); } - protected void setOutputDimensions(Lop lop) - throws HopsException - { + protected void setOutputDimensions(Lop lop) { lop.getOutputParameters().setDimensions( getDim1(), getDim2(), getRowsInBlock(), getColsInBlock(), getNnz(), getUpdateType()); } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/HopsException.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/HopsException.java b/src/main/java/org/apache/sysml/hops/HopsException.java index 17d9a09..7979da1 100644 --- a/src/main/java/org/apache/sysml/hops/HopsException.java +++ b/src/main/java/org/apache/sysml/hops/HopsException.java @@ -50,9 +50,8 @@ public class HopsException extends DMLException * @param condition Condition to test * @param message Message to print if the condition fails * @param objects Objects to print with the message, as per String.format - * @throws HopsException Thrown if condition is false */ - public static void check(boolean condition, String message, Object... objects) throws HopsException { + public static void check(boolean condition, String message, Object... objects) { if (!condition) throw new HopsException(String.format(message, objects)); } @@ -62,9 +61,8 @@ public class HopsException extends DMLException * @param hop Hop to print as a cause of the problem, if the condition fails * @param message Message to print if the condition fails * @param objects Objects to print with the message, as per String.format - * @throws HopsException Thrown if condition is false */ - public static void check(boolean condition, Hop hop, String message, Object... objects) throws HopsException { + public static void check(boolean condition, Hop hop, String message, Object... objects) { if (!condition) throw new HopsException(String.format(hop.getOpString()+" id="+hop.getHopID()+" "+message, objects)); } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/IndexingOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/IndexingOp.java b/src/main/java/org/apache/sysml/hops/IndexingOp.java index 0b8509a..c265d59 100644 --- a/src/main/java/org/apache/sysml/hops/IndexingOp.java +++ b/src/main/java/org/apache/sysml/hops/IndexingOp.java @@ -26,7 +26,6 @@ import org.apache.sysml.lops.Aggregate; import org.apache.sysml.lops.Data; import org.apache.sysml.lops.Group; import org.apache.sysml.lops.Lop; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.lops.RightIndex; import org.apache.sysml.lops.LopProperties.ExecType; import org.apache.sysml.parser.Expression.DataType; @@ -76,7 +75,7 @@ public class IndexingOp extends Hop } @Override - public void checkArity() throws HopsException { + public void checkArity() { HopsException.check(_input.size() == 5, this, "should have 5 inputs but has %d inputs", _input.size()); } @@ -116,8 +115,7 @@ public class IndexingOp extends Hop @Override public Lop constructLops() - throws HopsException, LopsException - { + { //return already created lops if( getLops() != null ) return getLops(); @@ -362,13 +360,13 @@ public class IndexingOp extends Hop } @Override - protected ExecType optFindExecType() throws HopsException { + protected ExecType optFindExecType() { checkAndSetForcedPlatform(); ExecType REMOTE = OptimizerUtils.isSparkExecutionMode() ? ExecType.SPARK : ExecType.MR; - if( _etypeForced != null ) + if( _etypeForced != null ) { _etype = _etypeForced; } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/LeftIndexingOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/LeftIndexingOp.java b/src/main/java/org/apache/sysml/hops/LeftIndexingOp.java index 2ca90ab..ba355e2 100644 --- a/src/main/java/org/apache/sysml/hops/LeftIndexingOp.java +++ b/src/main/java/org/apache/sysml/hops/LeftIndexingOp.java @@ -25,7 +25,6 @@ import org.apache.sysml.lops.Group; import org.apache.sysml.lops.LeftIndex; import org.apache.sysml.lops.LeftIndex.LixCacheType; import org.apache.sysml.lops.Lop; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.lops.RightIndex; import org.apache.sysml.lops.UnaryCP; import org.apache.sysml.lops.ZeroOut; @@ -78,7 +77,7 @@ public class LeftIndexingOp extends Hop } @Override - public void checkArity() throws HopsException { + public void checkArity() { HopsException.check(_input.size() == 6, this, "should have 6 inputs but has %d inputs", 6); } @@ -105,8 +104,7 @@ public class LeftIndexingOp extends Hop @Override public Lop constructLops() - throws HopsException, LopsException - { + { //return already created lops if( getLops() != null ) return getLops(); @@ -361,13 +359,13 @@ public class LeftIndexingOp extends Hop @Override - protected ExecType optFindExecType() throws HopsException { + protected ExecType optFindExecType() { checkAndSetForcedPlatform(); ExecType REMOTE = OptimizerUtils.isSparkExecutionMode() ? ExecType.SPARK : ExecType.MR; - if( _etypeForced != null ) + if( _etypeForced != null ) { _etype = _etypeForced; } http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/LiteralOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/LiteralOp.java b/src/main/java/org/apache/sysml/hops/LiteralOp.java index d385d6b..6747708 100644 --- a/src/main/java/org/apache/sysml/hops/LiteralOp.java +++ b/src/main/java/org/apache/sysml/hops/LiteralOp.java @@ -70,7 +70,7 @@ public class LiteralOp extends Hop } @Override - public void checkArity() throws HopsException { + public void checkArity() { HopsException.check(_input.isEmpty(), this, "should have 0 inputs but has %d inputs", _input.size()); } @@ -81,8 +81,7 @@ public class LiteralOp extends Hop @Override public Lop constructLops() - throws HopsException, LopsException - { + { //return already created lops if( getLops() != null ) return getLops(); @@ -187,7 +186,7 @@ public class LiteralOp extends Hop } @Override - protected ExecType optFindExecType() throws HopsException { + protected ExecType optFindExecType() { // Since a Literal hop does not represent any computation, // this function is not applicable. return null; @@ -214,7 +213,7 @@ public class LiteralOp extends Hop } } - public double getDoubleValue() throws HopsException { + public double getDoubleValue() { switch( getValueType() ) { case INT: return value_long; @@ -229,7 +228,7 @@ public class LiteralOp extends Hop } } - public boolean getBooleanValue() throws HopsException { + public boolean getBooleanValue() { switch( getValueType() ) { case INT: return (value_long != 0); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/NaryOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/NaryOp.java b/src/main/java/org/apache/sysml/hops/NaryOp.java index 1a6da2e..4b950de 100644 --- a/src/main/java/org/apache/sysml/hops/NaryOp.java +++ b/src/main/java/org/apache/sysml/hops/NaryOp.java @@ -22,7 +22,6 @@ package org.apache.sysml.hops; import org.apache.sysml.hops.rewrite.HopRewriteUtils; import org.apache.sysml.lops.Lop; import org.apache.sysml.lops.LopProperties.ExecType; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.lops.Nary; import org.apache.sysml.parser.Expression.DataType; import org.apache.sysml.parser.Expression.ValueType; @@ -53,14 +52,11 @@ public class NaryOp extends Hop { * the operation type (such as PRINTF) * @param inputs * a variable number of input Hops - * @throws HopsException - * thrown if a HopsException occurs */ public NaryOp(String name, DataType dataType, ValueType valueType, - OpOpN op, Hop... inputs) throws HopsException { + OpOpN op, Hop... inputs) { super(name, dataType, valueType); _op = op; - for (int i = 0; i < inputs.length; i++) { getInput().add(i, inputs[i]); inputs[i].getParent().add(this); @@ -69,7 +65,7 @@ public class NaryOp extends Hop { /** MultipleOp may have any number of inputs. */ @Override - public void checkArity() throws HopsException {} + public void checkArity() {} public OpOpN getOp() { return _op; @@ -89,7 +85,7 @@ public class NaryOp extends Hop { * Construct the corresponding Lops for this Hop */ @Override - public Lop constructLops() throws HopsException, LopsException { + public Lop constructLops() { // reuse existing lop if (getLops() != null) return getLops(); @@ -131,7 +127,7 @@ public class NaryOp extends Hop { } @Override - protected ExecType optFindExecType() throws HopsException { + protected ExecType optFindExecType() { checkAndSetForcedPlatform(); http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/OptimizerUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java index 274abad..e9fe24e 100644 --- a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java +++ b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java @@ -919,9 +919,7 @@ public class OptimizerUtils + Dag.getNextUniqueFilenameSuffix(); } - public static boolean allowsToFilterEmptyBlockOutputs( Hop hop ) - throws HopsException - { + public static boolean allowsToFilterEmptyBlockOutputs( Hop hop ) { boolean ret = true; for( Hop p : hop.getParent() ) { p.optFindExecType(); //ensure exec type evaluated @@ -1206,10 +1204,8 @@ public class OptimizerUtils * @param root the root high-level operator * @param valMemo ? * @return size expression - * @throws HopsException if HopsException occurs */ public static long rEvalSimpleLongExpression( Hop root, HashMap<Long, Long> valMemo ) - throws HopsException { long ret = Long.MAX_VALUE; @@ -1223,7 +1219,6 @@ public class OptimizerUtils } public static long rEvalSimpleLongExpression( Hop root, HashMap<Long, Long> valMemo, LocalVariableMap vars ) - throws HopsException { long ret = Long.MAX_VALUE; @@ -1237,7 +1232,6 @@ public class OptimizerUtils } public static double rEvalSimpleDoubleExpression( Hop root, HashMap<Long, Double> valMemo ) - throws HopsException { //memoization (prevent redundant computation of common subexpr) if( valMemo.containsKey(root.getHopID()) ) @@ -1263,7 +1257,6 @@ public class OptimizerUtils } public static double rEvalSimpleDoubleExpression( Hop root, HashMap<Long, Double> valMemo, LocalVariableMap vars ) - throws HopsException { //memoization (prevent redundant computation of common subexpr) if( valMemo.containsKey(root.getHopID()) ) @@ -1292,7 +1285,6 @@ public class OptimizerUtils } protected static double rEvalSimpleUnaryDoubleExpression( Hop root, HashMap<Long, Double> valMemo ) - throws HopsException { //memoization (prevent redundant computation of common subexpr) if( valMemo.containsKey(root.getHopID()) ) @@ -1331,7 +1323,6 @@ public class OptimizerUtils } protected static double rEvalSimpleUnaryDoubleExpression( Hop root, HashMap<Long, Double> valMemo, LocalVariableMap vars ) - throws HopsException { //memoization (prevent redundant computation of common subexpr) if( valMemo.containsKey(root.getHopID()) ) @@ -1370,7 +1361,6 @@ public class OptimizerUtils } protected static double rEvalSimpleBinaryDoubleExpression( Hop root, HashMap<Long, Double> valMemo ) - throws HopsException { //memoization (prevent redundant computation of common subexpr) if( valMemo.containsKey(root.getHopID()) ) @@ -1406,7 +1396,6 @@ public class OptimizerUtils } protected static double rEvalSimpleBinaryDoubleExpression( Hop root, HashMap<Long, Double> valMemo, LocalVariableMap vars ) - throws HopsException { //memoization (prevent redundant computation of common subexpr) if( valMemo.containsKey(root.getHopID()) ) http://git-wip-us.apache.org/repos/asf/systemml/blob/215a1cc6/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java b/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java index a1cea17..35ed54b 100644 --- a/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java +++ b/src/main/java/org/apache/sysml/hops/ParameterizedBuiltinOp.java @@ -33,7 +33,6 @@ import org.apache.sysml.lops.GroupedAggregate; import org.apache.sysml.lops.GroupedAggregateM; import org.apache.sysml.lops.Lop; import org.apache.sysml.lops.LopProperties.ExecType; -import org.apache.sysml.lops.LopsException; import org.apache.sysml.lops.PMMJ; import org.apache.sysml.lops.PartialAggregate.CorrectionLocationType; import org.apache.sysml.lops.ParameterizedBuiltin; @@ -109,7 +108,7 @@ public class ParameterizedBuiltinOp extends Hop implements MultiThreadedHop } @Override - public void checkArity() throws HopsException { + public void checkArity() { int sz = _input.size(); int pz = _paramIndexMap.size(); HopsException.check(sz == pz, this, "has %d inputs but %d parameters", sz, pz); @@ -158,8 +157,7 @@ public class ParameterizedBuiltinOp extends Hop implements MultiThreadedHop @Override public Lop constructLops() - throws HopsException, LopsException - { + { //return already created lops if( getLops() != null ) return getLops(); @@ -213,7 +211,6 @@ public class ParameterizedBuiltinOp extends Hop implements MultiThreadedHop } private void constructLopsGroupedAggregate(HashMap<String, Lop> inputlops, ExecType et) - throws HopsException, LopsException { //reset reblock requirement (see MR aggregate / construct lops) setRequiresReblock( false ); @@ -403,7 +400,6 @@ public class ParameterizedBuiltinOp extends Hop implements MultiThreadedHop } private void constructLopsRemoveEmpty(HashMap<String, Lop> inputlops, ExecType et) - throws HopsException, LopsException { Hop targetHop = getTargetHop(); Hop marginHop = getParameterHop("margin"); @@ -749,7 +745,6 @@ public class ParameterizedBuiltinOp extends Hop implements MultiThreadedHop } private void constructLopsRExpand(HashMap<String, Lop> inputlops, ExecType et) - throws HopsException, LopsException { if( et == ExecType.CP || et == ExecType.SPARK ) { @@ -1040,7 +1035,6 @@ public class ParameterizedBuiltinOp extends Hop implements MultiThreadedHop @Override protected ExecType optFindExecType() - throws HopsException { checkAndSetForcedPlatform();
