[SYSTEMML-2191] Cleanup exception hierarchy and handling, part 2 Project: http://git-wip-us.apache.org/repos/asf/systemml/repo Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/583f3448 Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/583f3448 Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/583f3448
Branch: refs/heads/master Commit: 583f3448031cd3112a6ed16ed54dbd4b59071de8 Parents: ad41c3a Author: Matthias Boehm <[email protected]> Authored: Sat Mar 24 01:32:40 2018 -0700 Committer: Matthias Boehm <[email protected]> Committed: Sat Mar 24 01:32:40 2018 -0700 ---------------------------------------------------------------------- .../org/apache/sysml/hops/ConvolutionOp.java | 9 +- .../org/apache/sysml/hops/OptimizerUtils.java | 3 +- .../sysml/hops/cost/CostEstimationWrapper.java | 8 +- .../sysml/hops/cost/CostEstimatorNumMRJobs.java | 11 +- .../apache/sysml/hops/recompile/Recompiler.java | 48 ++--- .../apache/sysml/lops/runtime/RunMRJobs.java | 10 +- .../org/apache/sysml/parser/DMLTranslator.java | 5 +- .../sysml/runtime/codegen/CodegenUtils.java | 42 ++-- .../sysml/runtime/codegen/SpoofCellwise.java | 46 +---- .../runtime/codegen/SpoofMultiAggregate.java | 24 +-- .../sysml/runtime/codegen/SpoofOperator.java | 24 +-- .../runtime/codegen/SpoofOuterProduct.java | 8 +- .../sysml/runtime/codegen/SpoofRowwise.java | 17 +- .../apache/sysml/runtime/compress/ColGroup.java | 15 +- .../sysml/runtime/compress/ColGroupDDC.java | 2 - .../sysml/runtime/compress/ColGroupDDC1.java | 10 +- .../sysml/runtime/compress/ColGroupDDC2.java | 7 +- .../sysml/runtime/compress/ColGroupOLE.java | 5 - .../sysml/runtime/compress/ColGroupOffset.java | 9 +- .../sysml/runtime/compress/ColGroupRLE.java | 7 +- .../runtime/compress/ColGroupUncompressed.java | 24 +-- .../sysml/runtime/compress/ColGroupValue.java | 22 +-- .../runtime/compress/CompressedMatrixBlock.java | 197 ++++++------------- .../compress/cocode/PlanningCoCoder.java | 4 +- .../estim/CompressedSizeEstimatorSample.java | 2 - .../compress/estim/SizeEstimatorFactory.java | 3 +- .../ExternalFunctionProgramBlock.java | 15 +- .../ExternalFunctionProgramBlockCP.java | 7 +- .../runtime/controlprogram/ForProgramBlock.java | 5 +- .../controlprogram/FunctionProgramBlock.java | 3 +- .../runtime/controlprogram/IfProgramBlock.java | 4 +- .../controlprogram/LocalVariableMap.java | 7 +- .../controlprogram/ParForProgramBlock.java | 52 ++--- .../sysml/runtime/controlprogram/Program.java | 6 +- .../runtime/controlprogram/ProgramBlock.java | 30 +-- .../controlprogram/WhileProgramBlock.java | 3 +- .../controlprogram/caching/CacheBlock.java | 9 +- .../controlprogram/caching/CacheableData.java | 15 +- .../controlprogram/caching/FrameObject.java | 4 +- .../controlprogram/caching/MatrixObject.java | 6 +- .../context/ExecutionContext.java | 138 ++++--------- .../context/SparkExecutionContext.java | 94 ++------- .../controlprogram/parfor/DataPartitioner.java | 16 +- .../parfor/DataPartitionerLocal.java | 18 +- .../parfor/DataPartitionerRemoteMR.java | 1 - .../parfor/DataPartitionerRemoteSpark.java | 1 - .../DataPartitionerRemoteSparkMapper.java | 4 +- .../controlprogram/parfor/ParWorker.java | 13 +- .../controlprogram/parfor/ProgramConverter.java | 132 +++---------- .../controlprogram/parfor/RemoteDPParForMR.java | 4 +- .../parfor/RemoteDPParForSpark.java | 3 - .../parfor/RemoteDPParForSparkWorker.java | 3 +- .../controlprogram/parfor/RemoteParForMR.java | 4 +- .../parfor/RemoteParForSpark.java | 2 - .../parfor/RemoteParForSparkWorker.java | 8 +- .../parfor/RemoteParForUtils.java | 21 +- .../controlprogram/parfor/ResultMerge.java | 14 +- .../parfor/ResultMergeLocalAutomatic.java | 9 +- .../parfor/ResultMergeLocalFile.java | 23 +-- .../parfor/ResultMergeLocalMemory.java | 17 +- .../parfor/ResultMergeRemoteMR.java | 6 +- .../parfor/ResultMergeRemoteReducer.java | 4 +- .../parfor/ResultMergeRemoteSpark.java | 6 +- .../parfor/ResultMergeRemoteSparkWCompare.java | 4 +- .../controlprogram/parfor/TaskPartitioner.java | 9 +- .../parfor/TaskPartitionerFactoring.java | 6 +- .../parfor/TaskPartitionerFixedsize.java | 2 - .../parfor/mqo/RuntimePiggybacking.java | 19 +- .../parfor/opt/CostEstimator.java | 38 +--- .../parfor/opt/CostEstimatorHops.java | 2 - .../parfor/opt/CostEstimatorRuntime.java | 9 +- .../parfor/opt/OptTreeConverter.java | 27 +-- .../parfor/opt/OptTreePlanChecker.java | 17 +- .../parfor/opt/OptimizationWrapper.java | 49 ++--- .../controlprogram/parfor/opt/Optimizer.java | 7 +- .../parfor/opt/OptimizerConstrained.java | 15 +- .../parfor/opt/OptimizerRuleBased.java | 131 +++--------- .../parfor/opt/ProgramRecompiler.java | 44 ++--- .../apache/sysml/runtime/io/FrameReader.java | 3 +- .../sysml/runtime/io/FrameReaderFactory.java | 11 +- .../apache/sysml/runtime/io/FrameWriter.java | 4 +- .../runtime/io/FrameWriterBinaryBlock.java | 3 +- .../sysml/runtime/io/FrameWriterFactory.java | 6 +- .../apache/sysml/runtime/io/MatrixReader.java | 3 +- .../sysml/runtime/io/MatrixReaderFactory.java | 2 - .../apache/sysml/runtime/io/MatrixWriter.java | 4 +- .../sysml/runtime/io/MatrixWriterFactory.java | 5 +- .../sysml/runtime/io/ReaderBinaryBlock.java | 3 +- .../sysml/runtime/io/WriterBinaryBlock.java | 2 +- .../sysml/runtime/matrix/data/MatrixBlock.java | 8 +- .../transform/decode/DecoderFactory.java | 3 +- .../transform/encode/EncoderFactory.java | 8 +- .../runtime/transform/meta/TfMetaUtils.java | 8 +- .../sysml/runtime/util/ConvolutionUtils.java | 3 +- .../sysml/runtime/util/DataConverter.java | 30 +-- .../sysml/runtime/util/LocalFileUtils.java | 19 +- .../ExternalFunctionInvocationInstruction.java | 10 +- src/main/java/org/apache/sysml/udf/Matrix.java | 16 +- .../java/org/apache/sysml/utils/Explain.java | 30 +-- .../org/apache/sysml/utils/NativeHelper.java | 3 +- .../apache/sysml/yarn/DMLAppMasterUtils.java | 29 +-- .../apache/sysml/yarn/ropt/GridEnumeration.java | 8 +- .../sysml/yarn/ropt/GridEnumerationEqui.java | 5 +- .../sysml/yarn/ropt/GridEnumerationExp.java | 5 +- .../sysml/yarn/ropt/GridEnumerationHybrid.java | 10 +- .../sysml/yarn/ropt/GridEnumerationMemory.java | 10 +- .../apache/sysml/yarn/ropt/ResourceConfig.java | 8 +- .../sysml/yarn/ropt/ResourceOptimizer.java | 67 ++----- .../conversion/RDDConverterUtilsExtTest.java | 7 +- .../functions/data/FullReblockTest.java | 3 +- 110 files changed, 494 insertions(+), 1490 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/hops/ConvolutionOp.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/ConvolutionOp.java b/src/main/java/org/apache/sysml/hops/ConvolutionOp.java index c137462..299f7c9 100644 --- a/src/main/java/org/apache/sysml/hops/ConvolutionOp.java +++ b/src/main/java/org/apache/sysml/hops/ConvolutionOp.java @@ -565,7 +565,7 @@ public class ConvolutionOp extends Hop implements MultiThreadedHop // stride1, stride2, padding1, padding2 // input_shape1, input_shape2, input_shape3, input_shape4, // filter_shape1, filter_shape2, filter_shape3, filter_shape4 - ConvolutionParameters parseInput() throws DMLRuntimeException { + ConvolutionParameters parseInput() { Hop imageHeightHop = null; Hop filterHeightHop = null; if(op == ConvOp.MAX_POOLING_BACKWARD || op == ConvOp.AVG_POOLING_BACKWARD @@ -652,9 +652,8 @@ public class ConvolutionOp extends Hop implements MultiThreadedHop * @param dim1 inferred shape * @param dim2 given shape * @param paramType string denoting the parameter for pretty printing of the error message - * @throws DMLRuntimeException if dim1 != dim2 */ - private void throwExceptionIfNotEqual(int dim1, int dim2, String paramType) throws DMLRuntimeException { + private void throwExceptionIfNotEqual(int dim1, int dim2, String paramType) { if(dim1 >= 0 && dim2 >= 0 && dim1 != dim2) { throw new DMLRuntimeException("Inferred " + paramType + " from parent doesn't match with given " + paramType + ":" + dim1 + " != " + dim2); } @@ -662,10 +661,8 @@ public class ConvolutionOp extends Hop implements MultiThreadedHop /** * Gets the values for the parameters C, H, W, P, Q from parent hops - * - * @throws DMLRuntimeException if error occurs */ - private void inferCHWPQFromParentOp() throws DMLRuntimeException { + private void inferCHWPQFromParentOp() { Hop tmp = getInput().get(0); // Skip bias_add and go to its parent tmp = isInputBiasAdd(tmp) ? tmp.getInput().get(0) : tmp; http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/hops/OptimizerUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java index e9fe24e..3156afd 100644 --- a/src/main/java/org/apache/sysml/hops/OptimizerUtils.java +++ b/src/main/java/org/apache/sysml/hops/OptimizerUtils.java @@ -262,12 +262,11 @@ public class OptimizerUtils return (getOptLevel() == level); } - public static CompilerConfig constructCompilerConfig( DMLConfig dmlconf ) throws DMLRuntimeException { + public static CompilerConfig constructCompilerConfig( DMLConfig dmlconf ) { return constructCompilerConfig(new CompilerConfig(), dmlconf); } public static CompilerConfig constructCompilerConfig( CompilerConfig cconf, DMLConfig dmlconf ) - throws DMLRuntimeException { //each script sets its own block size, opt level etc cconf.set(ConfigType.BLOCK_SIZE, dmlconf.getIntValue( DMLConfig.DEFAULT_BLOCK_SIZE )); http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java b/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java index 91300e7..6fc1fd1 100644 --- a/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java +++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimationWrapper.java @@ -78,9 +78,7 @@ public class CostEstimationWrapper return costs; } - public static double getTimeEstimate(ProgramBlock pb, ExecutionContext ec, boolean recursive) - throws DMLRuntimeException - { + public static double getTimeEstimate(ProgramBlock pb, ExecutionContext ec, boolean recursive) { Timing time = new Timing(true); HashMap<String,VarStats> stats = new HashMap<>(); @@ -91,9 +89,7 @@ public class CostEstimationWrapper return costs; } - private static CostEstimator createCostEstimator( CostType type ) - throws DMLRuntimeException - { + private static CostEstimator createCostEstimator( CostType type ) { switch( type ) { case NUM_MRJOBS: http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java b/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java index 4308a5c..07d8c09 100644 --- a/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java +++ b/src/main/java/org/apache/sysml/hops/cost/CostEstimatorNumMRJobs.java @@ -19,24 +19,17 @@ package org.apache.sysml.hops.cost; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.instructions.Instruction; public class CostEstimatorNumMRJobs extends CostEstimator { - - @Override - protected double getCPInstTimeEstimate( Instruction inst, VarStats[] vs, String[] args ) - throws DMLRuntimeException - { + protected double getCPInstTimeEstimate( Instruction inst, VarStats[] vs, String[] args ) { return 0; } @Override - protected double getMRJobInstTimeEstimate( Instruction inst, VarStats[] vs, String[] args ) - throws DMLRuntimeException - { + protected double getMRJobInstTimeEstimate( Instruction inst, VarStats[] vs, String[] args ) { return 1; } } http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java b/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java index e10e006..2cfeada 100644 --- a/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java +++ b/src/main/java/org/apache/sysml/hops/recompile/Recompiler.java @@ -389,9 +389,7 @@ public class Recompiler return newInst; } - private static void logExplainDAG(StatementBlock sb, ArrayList<Hop> hops, ArrayList<Instruction> inst) - throws DMLRuntimeException - { + private static void logExplainDAG(StatementBlock sb, ArrayList<Hop> hops, ArrayList<Instruction> inst) { if( DMLScript.EXPLAIN == ExplainType.RECOMPILE_HOPS ) { LOG.info("EXPLAIN RECOMPILE \nGENERIC (lines "+sb.getBeginLine()+"-"+sb.getEndLine()+"):\n" + Explain.explainHops(hops, 1)); @@ -402,31 +400,18 @@ public class Recompiler } } - private static void logExplainPred(Hop hops, ArrayList<Instruction> inst) - throws DMLRuntimeException - { + private static void logExplainPred(Hop hops, ArrayList<Instruction> inst) { if( DMLScript.EXPLAIN == ExplainType.RECOMPILE_HOPS ) LOG.info("EXPLAIN RECOMPILE \nPRED (line "+hops.getBeginLine()+"):\n" + Explain.explain(hops,1)); if( DMLScript.EXPLAIN == ExplainType.RECOMPILE_RUNTIME ) LOG.info("EXPLAIN RECOMPILE \nPRED (line "+hops.getBeginLine()+"):\n" + Explain.explain(inst,1)); } - public static void recompileProgramBlockHierarchy( ArrayList<ProgramBlock> pbs, LocalVariableMap vars, long tid, ResetType resetRecompile ) - throws DMLRuntimeException - { - try - { - RecompileStatus status = new RecompileStatus(); - - synchronized( pbs ) - { - for( ProgramBlock pb : pbs ) - rRecompileProgramBlock(pb, vars, status, tid, resetRecompile); - } - } - catch(Exception ex) - { - throw new DMLRuntimeException("Unable to recompile program block hierarchy.", ex); + public static void recompileProgramBlockHierarchy( ArrayList<ProgramBlock> pbs, LocalVariableMap vars, long tid, ResetType resetRecompile ) { + RecompileStatus status = new RecompileStatus(); + synchronized( pbs ) { + for( ProgramBlock pb : pbs ) + rRecompileProgramBlock(pb, vars, status, tid, resetRecompile); } } @@ -439,22 +424,11 @@ public class Recompiler * @param tid thread id * @param fnStack function stack * @param et execution type - * @throws DMLRuntimeException if DMLRuntimeException occurs */ - public static void recompileProgramBlockHierarchy2Forced( ArrayList<ProgramBlock> pbs, long tid, HashSet<String> fnStack, ExecType et ) - throws DMLRuntimeException - { - try - { - synchronized( pbs ) - { - for( ProgramBlock pb : pbs ) - rRecompileProgramBlock2Forced(pb, tid, fnStack, et); - } - } - catch(Exception ex) - { - throw new DMLRuntimeException("Unable to recompile program block hierarchy to CP.", ex); + public static void recompileProgramBlockHierarchy2Forced( ArrayList<ProgramBlock> pbs, long tid, HashSet<String> fnStack, ExecType et ) { + synchronized( pbs ) { + for( ProgramBlock pb : pbs ) + rRecompileProgramBlock2Forced(pb, tid, fnStack, et); } } http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java b/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java index 3c395de..cf39048 100644 --- a/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java +++ b/src/main/java/org/apache/sysml/lops/runtime/RunMRJobs.java @@ -354,9 +354,7 @@ public class RunMRJobs throw new DMLRuntimeException("Unexpected Job Type: " + inst.getJobType()); } - private static void checkEmptyInputs( MRJobInstruction inst, MatrixObject[] inputMatrices ) - throws DMLRuntimeException - { + private static void checkEmptyInputs( MRJobInstruction inst, MatrixObject[] inputMatrices ) { // Check if any of the input files are empty.. only for those job types // for which empty inputs are NOT allowed if (!inst.getJobType().areEmptyInputsAllowed()) { @@ -445,9 +443,7 @@ public class RunMRJobs } - private static long[] getNNZ( MatrixObject[] inputMatrices ) - throws DMLRuntimeException - { + private static long[] getNNZ( MatrixObject[] inputMatrices ) { int len = inputMatrices.length; long[] ret = new long[len]; for( int i=0; i<len; i++ ) @@ -463,7 +459,6 @@ public class RunMRJobs } private static JobReturn executeInMemoryReblockOperations( MRJobInstruction inst, String shuffleInst, MatrixObject[] inputMatrices, MatrixObject[] outputMatrices ) - throws DMLRuntimeException { MatrixCharacteristics[] mc = new MatrixCharacteristics[outputMatrices.length]; ReblockInstruction[] rblkSet = MRInstructionParser.parseReblockInstructions(shuffleInst); @@ -486,7 +481,6 @@ public class RunMRJobs } private static JobReturn executeInMemoryDataGenOperations( MRJobInstruction inst, String randInst, MatrixObject[] outputMatrices ) - throws DMLRuntimeException { MatrixCharacteristics[] mc = new MatrixCharacteristics[outputMatrices.length]; DataGenMRInstruction[] dgSet = MRInstructionParser.parseDataGenInstructions(randInst); http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/parser/DMLTranslator.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/parser/DMLTranslator.java b/src/main/java/org/apache/sysml/parser/DMLTranslator.java index b0b1938..9753465 100644 --- a/src/main/java/org/apache/sysml/parser/DMLTranslator.java +++ b/src/main/java/org/apache/sysml/parser/DMLTranslator.java @@ -94,11 +94,8 @@ public class DMLTranslator private static final Log LOG = LogFactory.getLog(DMLTranslator.class.getName()); private DMLProgram _dmlProg = null; - public DMLTranslator(DMLProgram dmlp) - throws DMLRuntimeException - { + public DMLTranslator(DMLProgram dmlp) { _dmlProg = dmlp; - //setup default size for unknown dimensions OptimizerUtils.resetDefaultSize(); //reinit rewriter according to opt level flags http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/CodegenUtils.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/codegen/CodegenUtils.java b/src/main/java/org/apache/sysml/runtime/codegen/CodegenUtils.java index 726e267..c302b0c 100644 --- a/src/main/java/org/apache/sysml/runtime/codegen/CodegenUtils.java +++ b/src/main/java/org/apache/sysml/runtime/codegen/CodegenUtils.java @@ -67,9 +67,7 @@ public class CodegenUtils //javac-specific working directory for src/class files private static String _workingDir = null; - public static Class<?> compileClass(String name, String src) - throws DMLRuntimeException - { + public static Class<?> compileClass(String name, String src) { //reuse existing compiled class Class<?> ret = _cache.get(name); if( ret != null ) @@ -94,13 +92,11 @@ public class CodegenUtils return ret; } - public static Class<?> getClass(String name) throws DMLRuntimeException { + public static Class<?> getClass(String name) { return getClass(name, null); } - public synchronized static Class<?> getClassSync(String name, byte[] classBytes) - throws DMLRuntimeException - { + public synchronized static Class<?> getClassSync(String name, byte[] classBytes) { //In order to avoid anomalies of concurrently compiling and loading the same //class with the same name multiple times in spark executors, this indirection //synchronizes the class compilation. This synchronization leads to the first @@ -110,9 +106,7 @@ public class CodegenUtils return getClass(name, classBytes); } - public static Class<?> getClass(String name, byte[] classBytes) - throws DMLRuntimeException - { + public static Class<?> getClass(String name, byte[] classBytes) { //reuse existing compiled class Class<?> ret = _cache.get(name); if( ret != null ) @@ -129,9 +123,7 @@ public class CodegenUtils return ret; } - public static byte[] getClassData(String name) - throws DMLRuntimeException - { + public static byte[] getClassData(String name) { //get class in a compiler-specific manner if( SpoofCompiler.JAVA_COMPILER == CompilerType.JANINO ) return _src.get(name).getBytes(); @@ -152,13 +144,11 @@ public class CodegenUtils iter.remove(); } - public static SpoofOperator createInstance(Class<?> cla) - throws DMLRuntimeException - { + public static SpoofOperator createInstance(Class<?> cla) { SpoofOperator ret = null; try { - ret = (SpoofOperator) cla.newInstance(); + ret = (SpoofOperator) cla.newInstance(); } catch( Exception ex ) { throw new DMLRuntimeException(ex); @@ -177,9 +167,7 @@ public class CodegenUtils //////////////////////////// //JANINO-specific methods (used for spark environments) - private static Class<?> compileClassJanino(String name, String src) - throws DMLRuntimeException - { + private static Class<?> compileClassJanino(String name, String src) { try { //compile source code SimpleCompiler compiler = new SimpleCompiler(); @@ -201,9 +189,7 @@ public class CodegenUtils //////////////////////////// //JAVAC-specific methods (used for hadoop environments) - private static Class<?> compileClassJavac(String name, String src) - throws DMLRuntimeException - { + private static Class<?> compileClassJavac(String name, String src) { try { //create working dir on demand @@ -264,9 +250,7 @@ public class CodegenUtils } } - private static Class<?> loadFromClassFile(String name, byte[] classBytes) - throws DMLRuntimeException - { + private static Class<?> loadFromClassFile(String name, byte[] classBytes) { if(classBytes != null) { //load from byte representation of class file try(ByteClassLoader byteLoader = new ByteClassLoader(new URL[]{}, @@ -292,9 +276,7 @@ public class CodegenUtils } } - private static byte[] getClassAsByteArray(String name) - throws DMLRuntimeException - { + private static byte[] getClassAsByteArray(String name) { String classAsPath = name.replace('.', '/') + ".class"; URLClassLoader classLoader = null; @@ -318,7 +300,7 @@ public class CodegenUtils } } - private static void createWorkingDir() throws DMLRuntimeException { + private static void createWorkingDir() { if( _workingDir != null ) return; String tmp = LocalFileUtils.getWorkingDir(LocalFileUtils.CATEGORY_CODEGEN); http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/SpoofCellwise.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/codegen/SpoofCellwise.java b/src/main/java/org/apache/sysml/runtime/codegen/SpoofCellwise.java index ea070b3..20e6a95 100644 --- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofCellwise.java +++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofCellwise.java @@ -110,9 +110,7 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl } @Override - public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, int k) - throws DMLRuntimeException - { + public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, int k) { //sanity check if( inputs==null || inputs.size() < 1 ) throw new RuntimeException("Invalid input arguments."); @@ -188,16 +186,12 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl } @Override - public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out) - throws DMLRuntimeException - { + public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out) { return execute(inputs, scalarObjects, out, 1); } @Override - public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int k) - throws DMLRuntimeException - { + public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int k) { //sanity check if( inputs==null || inputs.size() < 1 || out==null ) throw new RuntimeException("Invalid input arguments."); @@ -292,9 +286,7 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl //function dispatch private long executeDense(DenseBlock a, SideInput[] b, double[] scalars, - MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException - { + MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) { DenseBlock c = out.getDenseBlock(); SideInput[] lb = createSparseSideInputs(b); @@ -317,7 +309,7 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl } private double executeDenseAndAgg(DenseBlock a, SideInput[] b, double[] scalars, - int m, int n, boolean sparseSafe, int rl, int ru) throws DMLRuntimeException + int m, int n, boolean sparseSafe, int rl, int ru) { SideInput[] lb = createSparseSideInputs(b); @@ -330,7 +322,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeSparse(SparseBlock sblock, SideInput[] b, double[] scalars, MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { if( sparseSafe && sblock == null ) return 0; @@ -360,7 +351,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private double executeSparseAndAgg(SparseBlock sblock, SideInput[] b, double[] scalars, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { if( sparseSafe && sblock == null ) return 0; @@ -374,7 +364,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeCompressed(CompressedMatrixBlock a, SideInput[] b, double[] scalars, MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { //NOTE: we don't create sparse side inputs w/ row-major cursors because //compressed data is access in a column-major order @@ -403,7 +392,7 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl } private double executeCompressedAndAgg(CompressedMatrixBlock a, SideInput[] b, double[] scalars, - int m, int n, boolean sparseSafe, int rl, int ru) throws DMLRuntimeException + int m, int n, boolean sparseSafe, int rl, int ru) { //NOTE: we don't create sparse side inputs w/ row-major cursors because //compressed data is access in a column-major order @@ -420,7 +409,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeDenseNoAgg(DenseBlock a, SideInput[] b, double[] scalars, DenseBlock c, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { long lnnz = 0; if( a == null && !sparseSafe ) { @@ -483,7 +471,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeDenseRowAggMxx(DenseBlock a, SideInput[] b, double[] scalars, DenseBlock c, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { double[] lc = c.valuesAt(0); //single block @@ -555,7 +542,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeDenseColAggMxx(DenseBlock a, SideInput[] b, double[] scalars, DenseBlock c, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { double[] lc = c.valuesAt(0); //single block @@ -591,7 +577,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private double executeDenseAggSum(DenseBlock a, SideInput[] b, double[] scalars, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { KahanFunction kplus = (KahanFunction) getAggFunction(); KahanObject kbuff = new KahanObject(0, 0); @@ -618,7 +603,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private double executeDenseAggMxx(DenseBlock a, SideInput[] b, double[] scalars, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { //safe aggregation for min/max w/ handling of zero entries //note: sparse safe with zero value as min/max handled outside @@ -647,7 +631,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeSparseNoAggSparse(SparseBlock sblock, SideInput[] b, double[] scalars, MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { //note: sequential scan algorithm for both sparse-safe and -unsafe //in order to avoid binary search for sparse-unsafe @@ -684,7 +667,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeSparseNoAggDense(SparseBlock sblock, SideInput[] b, double[] scalars, MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { //note: sequential scan algorithm for both sparse-safe and -unsafe //in order to avoid binary search for sparse-unsafe @@ -723,7 +705,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeSparseRowAggSum(SparseBlock sblock, SideInput[] b, double[] scalars, MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { KahanFunction kplus = (KahanFunction) getAggFunction(); KahanObject kbuff = new KahanObject(0, 0); @@ -762,7 +743,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeSparseRowAggMxx(SparseBlock sblock, SideInput[] b, double[] scalars, MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { double initialVal = (_aggOp==AggOp.MIN) ? Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY; ValueFunction vfun = getAggFunction(); @@ -801,7 +781,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeSparseColAggSum(SparseBlock sblock, SideInput[] b, double[] scalars, MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { KahanFunction kplus = (KahanFunction) getAggFunction(); KahanObject kbuff = new KahanObject(0, 0); @@ -850,7 +829,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeSparseColAggMxx(SparseBlock sblock, SideInput[] b, double[] scalars, MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { double initialVal = (_aggOp==AggOp.MIN) ? Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY; ValueFunction vfun = getAggFunction(); @@ -892,7 +870,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private double executeSparseAggSum(SparseBlock sblock, SideInput[] b, double[] scalars, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { KahanFunction kplus = (KahanFunction) getAggFunction(); KahanObject kbuff = new KahanObject(0, 0); @@ -927,7 +904,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private double executeSparseAggMxx(SparseBlock sblock, SideInput[] b, double[] scalars, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { double ret = (_aggOp==AggOp.MIN) ? Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY; ret = (sparseSafe && sblock.size() < (long)m*n) ? 0 : ret; @@ -963,7 +939,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeCompressedNoAgg(CompressedMatrixBlock a, SideInput[] b, double[] scalars, MatrixBlock out, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { double[] c = (out.getDenseBlock() != null) ? out.getDenseBlockValues() : null; @@ -997,7 +972,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeCompressedRowAggSum(CompressedMatrixBlock a, SideInput[] b, double[] scalars, double[] c, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { KahanFunction kplus = (KahanFunction) getAggFunction(); KahanObject kbuff = new KahanObject(0, 0); @@ -1017,7 +991,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeCompressedRowAggMxx(CompressedMatrixBlock a, SideInput[] b, double[] scalars, double[] c, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { Arrays.fill(c, rl, ru, (_aggOp==AggOp.MIN) ? Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY); ValueFunction vfun = getAggFunction(); @@ -1054,7 +1027,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private long executeCompressedColAggMxx(CompressedMatrixBlock a, SideInput[] b, double[] scalars, double[] c, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { Arrays.fill(c, rl, ru, (_aggOp==AggOp.MIN) ? Double.POSITIVE_INFINITY : Double.NEGATIVE_INFINITY); ValueFunction vfun = getAggFunction(); @@ -1072,7 +1044,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private double executeCompressedAggSum(CompressedMatrixBlock a, SideInput[] b, double[] scalars, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { KahanFunction kplus = (KahanFunction) getAggFunction(); KahanObject kbuff = new KahanObject(0, 0); @@ -1111,7 +1082,6 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl private double executeCompressedAggMxx(CompressedMatrixBlock a, SideInput[] b, double[] scalars, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { //safe aggregation for min/max w/ handling of zero entries //note: sparse safe with zero value as min/max handled outside @@ -1154,7 +1124,7 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl } @Override - public Double call() throws DMLRuntimeException { + public Double call() { if( _a instanceof CompressedMatrixBlock ) return executeCompressedAndAgg((CompressedMatrixBlock)_a, _b, _scalars, _rlen, _clen, _safe, _rl, _ru); else if (!_a.isInSparseFormat()) @@ -1190,7 +1160,7 @@ public abstract class SpoofCellwise extends SpoofOperator implements Serializabl } @Override - public Long call() throws DMLRuntimeException { + public Long call() { if( _type==CellType.COL_AGG ) { _c = new MatrixBlock(1,_clen, false); _c.allocateDenseBlock(); http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/SpoofMultiAggregate.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/codegen/SpoofMultiAggregate.java b/src/main/java/org/apache/sysml/runtime/codegen/SpoofMultiAggregate.java index 3801285..8db037e 100644 --- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofMultiAggregate.java +++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofMultiAggregate.java @@ -72,16 +72,12 @@ public abstract class SpoofMultiAggregate extends SpoofOperator implements Seria } @Override - public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out) - throws DMLRuntimeException - { + public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out) { return execute(inputs, scalarObjects, out, 1); } @Override - public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int k) - throws DMLRuntimeException - { + public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int k) { //sanity check if( inputs==null || inputs.size() < 1 ) throw new RuntimeException("Invalid input arguments."); @@ -146,7 +142,6 @@ public abstract class SpoofMultiAggregate extends SpoofOperator implements Seria } private void executeDense(DenseBlock a, SideInput[] b, double[] scalars, double[] c, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { SideInput[] lb = createSparseSideInputs(b); @@ -168,7 +163,6 @@ public abstract class SpoofMultiAggregate extends SpoofOperator implements Seria private void executeSparse(SparseBlock sblock, SideInput[] b, double[] scalars, double[] c, int m, int n, boolean sparseSafe, int rl, int ru) - throws DMLRuntimeException { if( sblock == null && sparseSafe ) return; @@ -202,7 +196,7 @@ public abstract class SpoofMultiAggregate extends SpoofOperator implements Seria } } - private void executeCompressed(CompressedMatrixBlock a, SideInput[] b, double[] scalars, double[] c, int m, int n, int rl, int ru) throws DMLRuntimeException + private void executeCompressed(CompressedMatrixBlock a, SideInput[] b, double[] scalars, double[] c, int m, int n, int rl, int ru) { //core compressed aggregation operation Iterator<IJV> iter = a.getIterator(rl, ru, true); @@ -231,9 +225,7 @@ public abstract class SpoofMultiAggregate extends SpoofOperator implements Seria } - private void aggregatePartialResults(double[] c, ArrayList<double[]> pret) - throws DMLRuntimeException - { + private void aggregatePartialResults(double[] c, ArrayList<double[]> pret) { ValueFunction[] vfun = getAggFunctions(_aggOps); for( int k=0; k<_aggOps.length; k++ ) { if( vfun[k] instanceof KahanFunction ) { @@ -249,10 +241,8 @@ public abstract class SpoofMultiAggregate extends SpoofOperator implements Seria } } } - - public static void aggregatePartialResults(AggOp[] aggOps, MatrixBlock c, MatrixBlock b) - throws DMLRuntimeException - { + + public static void aggregatePartialResults(AggOp[] aggOps, MatrixBlock c, MatrixBlock b) { ValueFunction[] vfun = getAggFunctions(aggOps); for( int k=0; k< aggOps.length; k++ ) { @@ -310,7 +300,7 @@ public abstract class SpoofMultiAggregate extends SpoofOperator implements Seria } @Override - public double[] call() throws DMLRuntimeException { + public double[] call() { double[] c = new double[_aggOps.length]; setInitialOutputValues(c); if( _a instanceof CompressedMatrixBlock ) http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/SpoofOperator.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/codegen/SpoofOperator.java b/src/main/java/org/apache/sysml/runtime/codegen/SpoofOperator.java index af0a22b..f6b225d 100644 --- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofOperator.java +++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofOperator.java @@ -44,47 +44,41 @@ public abstract class SpoofOperator implements Serializable protected static final long PAR_MINFLOP_THRESHOLD = 2L*1024*1024; //MIN 2 MFLOP - public abstract MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalars, MatrixBlock out) - throws DMLRuntimeException; + public abstract MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalars, MatrixBlock out); - public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalars, MatrixBlock out, int k) - throws DMLRuntimeException - { + public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalars, MatrixBlock out, int k) { //default implementation serial execution return execute(inputs, scalars, out); } public abstract String getSpoofType(); - public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalars) throws DMLRuntimeException { - throw new RuntimeException("Invalid invocation in base class."); + public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalars) { + throw new DMLRuntimeException("Invalid invocation in base class."); } - public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalars, int k) - throws DMLRuntimeException - { + public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalars, int k) { //default implementation serial execution return execute(inputs, scalars); } - protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs) throws DMLRuntimeException { + protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs) { return prepInputMatrices(inputs, 1, inputs.size()-1, false, false); } - protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, boolean denseOnly) throws DMLRuntimeException { + protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, boolean denseOnly) { return prepInputMatrices(inputs, 1, inputs.size()-1, denseOnly, false); } - protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, int offset, boolean denseOnly) throws DMLRuntimeException { + protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, int offset, boolean denseOnly) { return prepInputMatrices(inputs, offset, inputs.size()-offset, denseOnly, false); } - protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, boolean denseOnly, boolean tB1) throws DMLRuntimeException { + protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, boolean denseOnly, boolean tB1) { return prepInputMatrices(inputs, 1, inputs.size()-1, denseOnly, tB1); } protected SideInput[] prepInputMatrices(ArrayList<MatrixBlock> inputs, int offset, int len, boolean denseOnly, boolean tB1) - throws DMLRuntimeException { SideInput[] b = new SideInput[len]; for(int i=offset; i<offset+len; i++) { http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java b/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java index 1ec98ce..ee137c4 100644 --- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java +++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofOuterProduct.java @@ -73,7 +73,6 @@ public abstract class SpoofOuterProduct extends SpoofOperator @Override public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects) - throws DMLRuntimeException { //sanity check if( inputs==null || inputs.size() < 3 ) @@ -106,7 +105,6 @@ public abstract class SpoofOuterProduct extends SpoofOperator @Override public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, int numThreads) - throws DMLRuntimeException { //sanity check if( inputs==null || inputs.size() < 3 ) @@ -153,7 +151,6 @@ public abstract class SpoofOuterProduct extends SpoofOperator @Override public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out) - throws DMLRuntimeException { //sanity check if( inputs==null || inputs.size() < 3 || out==null ) @@ -233,7 +230,6 @@ public abstract class SpoofOuterProduct extends SpoofOperator @Override public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int numThreads) - throws DMLRuntimeException { //sanity check if( inputs==null || inputs.size() < 3 || out==null ) @@ -675,7 +671,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator } @Override - public Long call() throws DMLRuntimeException { + public Long call() { switch(_type) { case LEFT_OUTER_PRODUCT: @@ -740,7 +736,7 @@ public abstract class SpoofOuterProduct extends SpoofOperator } @Override - public Double call() throws DMLRuntimeException { + public Double call() { MatrixBlock out = new MatrixBlock(1, 1, false); out.allocateDenseBlock(); if( _a instanceof CompressedMatrixBlock ) http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/codegen/SpoofRowwise.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/codegen/SpoofRowwise.java b/src/main/java/org/apache/sysml/runtime/codegen/SpoofRowwise.java index 7f308e6..6e5646d 100644 --- a/src/main/java/org/apache/sysml/runtime/codegen/SpoofRowwise.java +++ b/src/main/java/org/apache/sysml/runtime/codegen/SpoofRowwise.java @@ -108,9 +108,7 @@ public abstract class SpoofRowwise extends SpoofOperator } @Override - public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, int k) - throws DMLRuntimeException - { + public ScalarObject execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, int k) { MatrixBlock out = ( k > 1 ) ? execute(inputs, scalarObjects, new MatrixBlock(1,1,false), k) : execute(inputs, scalarObjects, new MatrixBlock(1,1,false)); @@ -118,15 +116,11 @@ public abstract class SpoofRowwise extends SpoofOperator } @Override - public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out) - throws DMLRuntimeException - { + public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out) { return execute(inputs, scalarObjects, out, true, false); } - public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out, boolean allocTmp, boolean aggIncr) - throws DMLRuntimeException - { + public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out, boolean allocTmp, boolean aggIncr) { //sanity check if( inputs==null || inputs.size() < 1 || out==null ) throw new RuntimeException("Invalid input arguments."); @@ -177,7 +171,6 @@ public abstract class SpoofRowwise extends SpoofOperator @Override public MatrixBlock execute(ArrayList<MatrixBlock> inputs, ArrayList<ScalarObject> scalarObjects, MatrixBlock out, int k) - throws DMLRuntimeException { //redirect to serial execution if( k <= 1 || (_type.isColumnAgg() && !LibMatrixMult.checkParColumnAgg(inputs.get(0), k, false)) @@ -367,7 +360,7 @@ public abstract class SpoofRowwise extends SpoofOperator } @Override - public DenseBlock call() throws DMLRuntimeException { + public DenseBlock call() { //allocate vector intermediates and partial output if( _reqVectMem > 0 ) @@ -413,7 +406,7 @@ public abstract class SpoofRowwise extends SpoofOperator } @Override - public Long call() throws DMLRuntimeException { + public Long call() { //allocate vector intermediates if( _reqVectMem > 0 ) LibSpoofPrimitives.setupThreadLocalMemory(_reqVectMem, _clen, _clen2); http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroup.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroup.java b/src/main/java/org/apache/sysml/runtime/compress/ColGroup.java index 1938d17..adf4721 100644 --- a/src/main/java/org/apache/sysml/runtime/compress/ColGroup.java +++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroup.java @@ -26,7 +26,6 @@ import java.io.Serializable; import java.util.Iterator; import java.util.List; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.matrix.data.IJV; import org.apache.sysml.runtime.matrix.data.MatrixBlock; import org.apache.sysml.runtime.matrix.operators.AggregateUnaryOperator; @@ -247,12 +246,11 @@ public abstract class ColGroup implements Serializable * accumulator for holding the result * @param rl row lower * @param ru row upper - * @throws DMLRuntimeException * if the internal SystemML code that performs the * multiplication experiences an error */ public abstract void rightMultByVector(MatrixBlock vector, - MatrixBlock result, int rl, int ru) throws DMLRuntimeException; + MatrixBlock result, int rl, int ru); /** @@ -262,10 +260,8 @@ public abstract class ColGroup implements Serializable * * @param vector row vector * @param result matrix block result - * @throws DMLRuntimeException if DMLRuntimeException occurs */ - public abstract void leftMultByRowVector(MatrixBlock vector, - MatrixBlock result) throws DMLRuntimeException; + public abstract void leftMultByRowVector(MatrixBlock vector, MatrixBlock result); /** * Perform the specified scalar operation directly on the compressed column @@ -274,13 +270,10 @@ public abstract class ColGroup implements Serializable * @param op * operation to perform * @return version of this column group with the operation applied - * @throws DMLRuntimeException if DMLRuntimeException occurs */ - public abstract ColGroup scalarOperation(ScalarOperator op) - throws DMLRuntimeException; + public abstract ColGroup scalarOperation(ScalarOperator op); - public abstract void unaryAggregateOperations(AggregateUnaryOperator op, MatrixBlock result) - throws DMLRuntimeException; + public abstract void unaryAggregateOperations(AggregateUnaryOperator op, MatrixBlock result); /** * Create a column group iterator for a row index range. http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC.java b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC.java index 9973ec2..40eef8e 100644 --- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC.java +++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC.java @@ -22,7 +22,6 @@ package org.apache.sysml.runtime.compress; import java.util.Arrays; import java.util.Iterator; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.functionobjects.Builtin; import org.apache.sysml.runtime.functionobjects.KahanFunction; import org.apache.sysml.runtime.functionobjects.KahanPlus; @@ -118,7 +117,6 @@ public abstract class ColGroupDDC extends ColGroupValue @Override public void unaryAggregateOperations(AggregateUnaryOperator op, MatrixBlock result, int rl, int ru) - throws DMLRuntimeException { //sum and sumsq (reduceall/reducerow over tuples and counts) if( op.aggOp.increOp.fn instanceof KahanPlus || op.aggOp.increOp.fn instanceof KahanPlusSq ) http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC1.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC1.java b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC1.java index 1861bba..635d8c3 100644 --- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC1.java +++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC1.java @@ -25,7 +25,6 @@ import java.io.IOException; import java.util.Arrays; import java.util.HashMap; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.compress.utils.ConverterUtils; import org.apache.sysml.runtime.functionobjects.KahanFunction; import org.apache.sysml.runtime.functionobjects.KahanPlus; @@ -249,7 +248,6 @@ public class ColGroupDDC1 extends ColGroupDDC @Override public void rightMultByVector(MatrixBlock vector, MatrixBlock result, int rl, int ru) - throws DMLRuntimeException { double[] b = ConverterUtils.getDenseVector(vector); double[] c = result.getDenseBlockValues(); @@ -272,7 +270,6 @@ public class ColGroupDDC1 extends ColGroupDDC } public static void rightMultByVector(ColGroupDDC1[] grps, MatrixBlock vector, MatrixBlock result, int rl, int ru) - throws DMLRuntimeException { double[] b = ConverterUtils.getDenseVector(vector); double[] c = result.getDenseBlockValues(); @@ -299,7 +296,7 @@ public class ColGroupDDC1 extends ColGroupDDC } @Override - public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result) throws DMLRuntimeException { + public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result) { double[] a = ConverterUtils.getDenseVector(vector); double[] c = result.getDenseBlockValues(); final int nrow = getNumRows(); @@ -317,7 +314,7 @@ public class ColGroupDDC1 extends ColGroupDDC } @Override - public void leftMultByRowVector(ColGroupDDC a, MatrixBlock result) throws DMLRuntimeException { + public void leftMultByRowVector(ColGroupDDC a, MatrixBlock result) { double[] c = result.getDenseBlockValues(); final int nrow = getNumRows(); final int numVals = getNumValues(); @@ -376,7 +373,6 @@ public class ColGroupDDC1 extends ColGroupDDC } public static void computeRowSums(ColGroupDDC1[] grps, MatrixBlock result, KahanFunction kplus, int rl, int ru) - throws DMLRuntimeException { //note: due to corrections the output might be a large dense block DenseBlock c = result.getDenseBlock(); @@ -417,7 +413,7 @@ public class ColGroupDDC1 extends ColGroupDDC } @Override - public ColGroup scalarOperation(ScalarOperator op) throws DMLRuntimeException { + public ColGroup scalarOperation(ScalarOperator op) { //fast path: sparse-safe and -unsafe operations //as zero are represented, it is sufficient to simply apply the scalar op return new ColGroupDDC1(_colIndexes, _numRows, applyScalarOp(op), _data); http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC2.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC2.java b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC2.java index 28e565c..3e5c477 100644 --- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC2.java +++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupDDC2.java @@ -24,7 +24,6 @@ import java.io.DataOutput; import java.io.IOException; import java.util.Arrays; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.compress.utils.ConverterUtils; import org.apache.sysml.runtime.functionobjects.KahanFunction; import org.apache.sysml.runtime.functionobjects.KahanPlus; @@ -223,7 +222,7 @@ public class ColGroupDDC2 extends ColGroupDDC } @Override - public void rightMultByVector(MatrixBlock vector, MatrixBlock result, int rl, int ru) throws DMLRuntimeException { + public void rightMultByVector(MatrixBlock vector, MatrixBlock result, int rl, int ru) { double[] b = ConverterUtils.getDenseVector(vector); double[] c = result.getDenseBlockValues(); final int numCols = getNumCols(); @@ -245,7 +244,6 @@ public class ColGroupDDC2 extends ColGroupDDC @Override public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result) - throws DMLRuntimeException { double[] a = ConverterUtils.getDenseVector(vector); double[] c = result.getDenseBlockValues(); @@ -279,7 +277,6 @@ public class ColGroupDDC2 extends ColGroupDDC @Override public void leftMultByRowVector(ColGroupDDC a, MatrixBlock result) - throws DMLRuntimeException { double[] c = result.getDenseBlockValues(); final int nrow = getNumRows(); @@ -361,7 +358,7 @@ public class ColGroupDDC2 extends ColGroupDDC } @Override - public ColGroup scalarOperation(ScalarOperator op) throws DMLRuntimeException { + public ColGroup scalarOperation(ScalarOperator op) { //fast path: sparse-safe and -unsafe operations //as zero are represented, it is sufficient to simply apply the scalar op return new ColGroupDDC2(_colIndexes, _numRows, applyScalarOp(op), _data); http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupOLE.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupOLE.java b/src/main/java/org/apache/sysml/runtime/compress/ColGroupOLE.java index 4561c14..011e3f0 100644 --- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupOLE.java +++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupOLE.java @@ -24,7 +24,6 @@ import java.util.Iterator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.compress.utils.ConverterUtils; import org.apache.sysml.runtime.compress.utils.LinearAlgebraUtils; import org.apache.sysml.runtime.functionobjects.Builtin; @@ -263,7 +262,6 @@ public class ColGroupOLE extends ColGroupOffset @Override public ColGroup scalarOperation(ScalarOperator op) - throws DMLRuntimeException { double val0 = op.executeScalar(0); @@ -296,7 +294,6 @@ public class ColGroupOLE extends ColGroupOffset @Override public void rightMultByVector(MatrixBlock vector, MatrixBlock result, int rl, int ru) - throws DMLRuntimeException { double[] b = ConverterUtils.getDenseVector(vector); double[] c = result.getDenseBlockValues(); @@ -386,7 +383,6 @@ public class ColGroupOLE extends ColGroupOffset @Override public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result) - throws DMLRuntimeException { double[] a = ConverterUtils.getDenseVector(vector); double[] c = result.getDenseBlockValues(); @@ -460,7 +456,6 @@ public class ColGroupOLE extends ColGroupOffset @Override public void leftMultByRowVector(ColGroupDDC a, MatrixBlock result) - throws DMLRuntimeException { //note: this method is only applicable for numrows < blocksize double[] c = result.getDenseBlockValues(); http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupOffset.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupOffset.java b/src/main/java/org/apache/sysml/runtime/compress/ColGroupOffset.java index a312419..2aa23bf 100644 --- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupOffset.java +++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupOffset.java @@ -26,7 +26,6 @@ import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.compress.utils.LinearAlgebraUtils; import org.apache.sysml.runtime.functionobjects.Builtin; import org.apache.sysml.runtime.functionobjects.KahanFunction; @@ -267,22 +266,17 @@ public abstract class ColGroupOffset extends ColGroupValue * * @param ind row indicator vector of non zeros * @return offsets - * @throws DMLRuntimeException if DMLRuntimeException occurs */ - protected int[] computeOffsets(boolean[] ind) - throws DMLRuntimeException - { + protected int[] computeOffsets(boolean[] ind) { //determine number of offsets int numOffsets = 0; for( int i=0; i<ind.length; i++ ) numOffsets += ind[i] ? 1 : 0; - //create offset lists int[] ret = new int[numOffsets]; for( int i=0, pos=0; i<ind.length; i++ ) if( ind[i] ) ret[pos++] = i; - return ret; } @@ -371,7 +365,6 @@ public abstract class ColGroupOffset extends ColGroupValue @Override public void unaryAggregateOperations(AggregateUnaryOperator op, MatrixBlock result, int rl, int ru) - throws DMLRuntimeException { //sum and sumsq (reduceall/reducerow over tuples and counts) if( op.aggOp.increOp.fn instanceof KahanPlus || op.aggOp.increOp.fn instanceof KahanPlusSq ) http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupRLE.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupRLE.java b/src/main/java/org/apache/sysml/runtime/compress/ColGroupRLE.java index cbdf4a5..865e09e 100644 --- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupRLE.java +++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupRLE.java @@ -24,7 +24,6 @@ import java.util.Iterator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.compress.utils.ConverterUtils; import org.apache.sysml.runtime.compress.utils.LinearAlgebraUtils; import org.apache.sysml.runtime.functionobjects.Builtin; @@ -267,7 +266,6 @@ public class ColGroupRLE extends ColGroupOffset @Override public void rightMultByVector(MatrixBlock vector, MatrixBlock result, int rl, int ru) - throws DMLRuntimeException { double[] b = ConverterUtils.getDenseVector(vector); double[] c = result.getDenseBlockValues(); @@ -363,8 +361,7 @@ public class ColGroupRLE extends ColGroupOffset @Override public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result) - throws DMLRuntimeException - { + { double[] a = ConverterUtils.getDenseVector(vector); double[] c = result.getDenseBlockValues(); final int numCols = getNumCols(); @@ -441,7 +438,6 @@ public class ColGroupRLE extends ColGroupOffset @Override public void leftMultByRowVector(ColGroupDDC a, MatrixBlock result) - throws DMLRuntimeException { //note: this method is only applicable for numrows < blocksize double[] c = result.getDenseBlockValues(); @@ -472,7 +468,6 @@ public class ColGroupRLE extends ColGroupOffset @Override public ColGroup scalarOperation(ScalarOperator op) - throws DMLRuntimeException { double val0 = op.executeScalar(0); http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupUncompressed.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupUncompressed.java b/src/main/java/org/apache/sysml/runtime/compress/ColGroupUncompressed.java index 2cc5b4b..d03343e 100644 --- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupUncompressed.java +++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupUncompressed.java @@ -27,7 +27,6 @@ import java.util.Arrays; import java.util.Iterator; import java.util.List; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.functionobjects.ReduceRow; import org.apache.sysml.runtime.matrix.data.IJV; import org.apache.sysml.runtime.matrix.data.LibMatrixAgg; @@ -68,11 +67,9 @@ public class ColGroupUncompressed extends ColGroup * @param rawblock * the uncompressed block; uncompressed data must be present at * the time that the constructor is called - * @throws DMLRuntimeException if DMLRuntimeException occurs */ @SuppressWarnings("unused") public ColGroupUncompressed(List<Integer> colIndicesList, MatrixBlock rawblock) - throws DMLRuntimeException { super(colIndicesList, CompressedMatrixBlock.TRANSPOSE_INPUT ? @@ -270,9 +267,7 @@ public class ColGroupUncompressed extends ColGroup } @Override - public void rightMultByVector(MatrixBlock vector, MatrixBlock result, int rl, int ru) - throws DMLRuntimeException - { + public void rightMultByVector(MatrixBlock vector, MatrixBlock result, int rl, int ru) { // Pull out the relevant rows of the vector int clen = _colIndexes.length; @@ -287,9 +282,7 @@ public class ColGroupUncompressed extends ColGroup LibMatrixMult.matrixMult(_data, shortVector, result, rl, ru); } - public void rightMultByVector(MatrixBlock vector, MatrixBlock result, int k) - throws DMLRuntimeException - { + public void rightMultByVector(MatrixBlock vector, MatrixBlock result, int k) { // Pull out the relevant rows of the vector int clen = _colIndexes.length; @@ -306,7 +299,6 @@ public class ColGroupUncompressed extends ColGroup @Override public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result) - throws DMLRuntimeException { MatrixBlock pret = new MatrixBlock(1, _colIndexes.length, false); LibMatrixMult.matrixMult(vector, _data, pret); @@ -321,7 +313,6 @@ public class ColGroupUncompressed extends ColGroup } public void leftMultByRowVector(MatrixBlock vector, MatrixBlock result, int k) - throws DMLRuntimeException { MatrixBlock pret = new MatrixBlock(1, _colIndexes.length, false); LibMatrixMult.matrixMult(vector, _data, pret, k); @@ -336,21 +327,16 @@ public class ColGroupUncompressed extends ColGroup } @Override - public ColGroup scalarOperation(ScalarOperator op) - throws DMLRuntimeException - { + public ColGroup scalarOperation(ScalarOperator op) { //execute scalar operations MatrixBlock retContent = (MatrixBlock) _data - .scalarOperations(op, new MatrixBlock()); - + .scalarOperations(op, new MatrixBlock()); //construct new uncompressed column group return new ColGroupUncompressed(getColIndices(), _data.getNumRows(), retContent); } @Override - public void unaryAggregateOperations(AggregateUnaryOperator op, MatrixBlock ret) - throws DMLRuntimeException - { + public void unaryAggregateOperations(AggregateUnaryOperator op, MatrixBlock ret) { //execute unary aggregate operations LibMatrixAgg.aggregateUnaryMatrix(_data, ret, op); http://git-wip-us.apache.org/repos/asf/systemml/blob/583f3448/src/main/java/org/apache/sysml/runtime/compress/ColGroupValue.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/sysml/runtime/compress/ColGroupValue.java b/src/main/java/org/apache/sysml/runtime/compress/ColGroupValue.java index 2e5dc78..a09512c 100644 --- a/src/main/java/org/apache/sysml/runtime/compress/ColGroupValue.java +++ b/src/main/java/org/apache/sysml/runtime/compress/ColGroupValue.java @@ -21,7 +21,6 @@ package org.apache.sysml.runtime.compress; import java.util.Arrays; -import org.apache.sysml.runtime.DMLRuntimeException; import org.apache.sysml.runtime.functionobjects.Builtin; import org.apache.sysml.runtime.functionobjects.Builtin.BuiltinCode; import org.apache.sysml.runtime.functionobjects.KahanFunction; @@ -325,8 +324,7 @@ public abstract class ColGroupValue extends ColGroup } //additional vector-matrix multiplication to avoid DDC uncompression - public abstract void leftMultByRowVector(ColGroupDDC vector, MatrixBlock result) - throws DMLRuntimeException; + public abstract void leftMultByRowVector(ColGroupDDC vector, MatrixBlock result); /** @@ -336,23 +334,17 @@ public abstract class ColGroupValue extends ColGroup * @param op * scalar operation to perform * @return transformed copy of value metadata for this column group - * @throws DMLRuntimeException if DMLRuntimeException occurs */ - protected double[] applyScalarOp(ScalarOperator op) - throws DMLRuntimeException - { + protected double[] applyScalarOp(ScalarOperator op) { //scan over linearized values double[] ret = new double[_values.length]; for (int i = 0; i < _values.length; i++) { ret[i] = op.executeScalar(_values[i]); } - return ret; } - protected double[] applyScalarOp(ScalarOperator op, double newVal, int numCols) - throws DMLRuntimeException - { + protected double[] applyScalarOp(ScalarOperator op, double newVal, int numCols) { //scan over linearized values double[] ret = new double[_values.length + numCols]; for( int i = 0; i < _values.length; i++ ) { @@ -366,9 +358,7 @@ public abstract class ColGroupValue extends ColGroup } @Override - public void unaryAggregateOperations(AggregateUnaryOperator op, MatrixBlock result) - throws DMLRuntimeException - { + public void unaryAggregateOperations(AggregateUnaryOperator op, MatrixBlock result) { unaryAggregateOperations(op, result, 0, getNumRows()); } @@ -378,10 +368,8 @@ public abstract class ColGroupValue extends ColGroup * @param result output matrix block * @param rl row lower index, inclusive * @param ru row upper index, exclusive - * @throws DMLRuntimeException on invalid inputs */ - public abstract void unaryAggregateOperations(AggregateUnaryOperator op, MatrixBlock result, int rl, int ru) - throws DMLRuntimeException; + public abstract void unaryAggregateOperations(AggregateUnaryOperator op, MatrixBlock result, int rl, int ru); //dynamic memory management
