This is an automated email from the ASF dual-hosted git repository.
sebwrede pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/systemds.git
The following commit(s) were added to refs/heads/main by this push:
new cf87232 [MINOR] Remove Redundant Parameters and Initializers in
ProgramBlocks
cf87232 is described below
commit cf87232b298ab708b20d30cdfd42d5ba3c1366f9
Author: sebwrede <[email protected]>
AuthorDate: Mon Oct 4 17:26:09 2021 +0200
[MINOR] Remove Redundant Parameters and Initializers in ProgramBlocks
This commit has small adjustments to the ProgramBlock classes to remove
redundant parameters and initializers.
Closes #1410.
---
.../runtime/controlprogram/ForProgramBlock.java | 6 +--
.../runtime/controlprogram/IfProgramBlock.java | 4 +-
.../runtime/controlprogram/ParForProgramBlock.java | 50 +++++++++++-----------
.../sysds/runtime/controlprogram/Program.java | 4 +-
.../sysds/runtime/controlprogram/ProgramBlock.java | 6 +--
.../runtime/controlprogram/WhileProgramBlock.java | 4 +-
6 files changed, 36 insertions(+), 38 deletions(-)
diff --git
a/src/main/java/org/apache/sysds/runtime/controlprogram/ForProgramBlock.java
b/src/main/java/org/apache/sysds/runtime/controlprogram/ForProgramBlock.java
index 4faadff..fcf4521 100644
--- a/src/main/java/org/apache/sysds/runtime/controlprogram/ForProgramBlock.java
+++ b/src/main/java/org/apache/sysds/runtime/controlprogram/ForProgramBlock.java
@@ -165,12 +165,12 @@ public class ForProgramBlock extends ProgramBlock
}
//execute exit instructions
- executeExitInstructions(_exitInstruction, "for", ec);
+ executeExitInstructions("for", ec);
}
protected ScalarObject executePredicateInstructions( int pos,
ArrayList<Instruction> instructions, ExecutionContext ec, boolean downCast )
{
- ScalarObject ret = null;
+ ScalarObject ret;
ValueType vt = downCast ? ValueType.INT64 : null;
try
@@ -221,7 +221,7 @@ public class ForProgramBlock extends ProgramBlock
/**
* Utility class for iterating over positive or negative predicate
sequences.
*/
- protected class SequenceIterator implements Iterator<IntObject>,
Iterable<IntObject>
+ protected static class SequenceIterator implements Iterator<IntObject>,
Iterable<IntObject>
{
private long _cur = -1;
private long _to = -1;
diff --git
a/src/main/java/org/apache/sysds/runtime/controlprogram/IfProgramBlock.java
b/src/main/java/org/apache/sysds/runtime/controlprogram/IfProgramBlock.java
index b983f56..f88dff5 100644
--- a/src/main/java/org/apache/sysds/runtime/controlprogram/IfProgramBlock.java
+++ b/src/main/java/org/apache/sysds/runtime/controlprogram/IfProgramBlock.java
@@ -128,12 +128,12 @@ public class IfProgramBlock extends ProgramBlock
}
//execute exit instructions
- executeExitInstructions(_exitInstruction, "if", ec);
+ executeExitInstructions("if", ec);
}
private BooleanObject executePredicate(ExecutionContext ec)
{
- BooleanObject result = null;
+ BooleanObject result;
try {
if( _sb != null ) {
IfStatementBlock isb = (IfStatementBlock)_sb;
diff --git
a/src/main/java/org/apache/sysds/runtime/controlprogram/ParForProgramBlock.java
b/src/main/java/org/apache/sysds/runtime/controlprogram/ParForProgramBlock.java
index 1fc95ce..f7ead3c 100644
---
a/src/main/java/org/apache/sysds/runtime/controlprogram/ParForProgramBlock.java
+++
b/src/main/java/org/apache/sysds/runtime/controlprogram/ParForProgramBlock.java
@@ -292,7 +292,6 @@ public class ParForProgramBlock extends ForProgramBlock
public static final boolean ALLOW_NESTED_PARALLELISM = true; // if
not, transparently change parfor to for on program conversions (local,remote)
public static final boolean USE_PARALLEL_RESULT_MERGE = false; // if
result merge is run in parallel or serial
public static final boolean USE_PARALLEL_RESULT_MERGE_REMOTE = true; //
if remote result merge should be run in parallel for multiple result vars
- public static final boolean ALLOW_DATA_COLOCATION = true;
public static final boolean CREATE_UNSCOPED_RESULTVARS = true;
public static boolean ALLOW_REUSE_PARTITION_VARS = true; //reuse
partition input matrices, applied only if read-only in surrounding loops
public static final int WRITE_REPLICATION_FACTOR = 1;
@@ -322,18 +321,18 @@ public class ParForProgramBlock extends ForProgramBlock
protected int _numThreads = -1;
protected boolean _fixedDOP = false; //guard for numThreads
protected long _taskSize = -1;
- protected PTaskPartitioner _taskPartitioner = null;
- protected PDataPartitioner _dataPartitioner = null;
- protected PResultMerge _resultMerge = null;
- protected PExecMode _execMode = null;
- protected POptMode _optMode = null;
+ protected PTaskPartitioner _taskPartitioner;
+ protected PDataPartitioner _dataPartitioner;
+ protected PResultMerge _resultMerge;
+ protected PExecMode _execMode;
+ protected POptMode _optMode;
//specifics used for optimization
protected long _numIterations = -1;
//specifics used for data partitioning
- protected LocalVariableMap _variablesDPOriginal = null;
- protected LocalVariableMap _variablesDPReuse = null;
+ protected LocalVariableMap _variablesDPOriginal;
+ protected LocalVariableMap _variablesDPReuse;
protected String _colocatedDPMatrix = null;
protected boolean _tSparseCol = false;
protected int _replicationDP = WRITE_REPLICATION_FACTOR;
@@ -647,15 +646,15 @@ public class ParForProgramBlock extends ForProgramBlock
switch( _execMode )
{
case LOCAL: //create parworkers as local threads
- executeLocalParFor(ec, iterVar, from,
to, incr);
+ executeLocalParFor(ec, from, to, incr);
break;
case REMOTE_SPARK: // create parworkers as
Spark tasks (one job per parfor)
- executeRemoteSparkParFor(ec, iterVar,
from, to, incr);
+ executeRemoteSparkParFor(ec, from, to,
incr);
break;
case REMOTE_SPARK_DP: // create parworkers as
Spark tasks (one job per parfor)
- executeRemoteSparkParForDP(ec, iterVar,
from, to, incr);
+ executeRemoteSparkParForDP(ec, from,
to, incr);
break;
default:
@@ -688,7 +687,7 @@ public class ParForProgramBlock extends ForProgramBlock
}
//execute exit instructions
- executeExitInstructions(_exitInstruction, "parfor", ec);
+ executeExitInstructions("parfor", ec);
///////
//end PARALLEL EXECUTION of (PAR)FOR body
@@ -715,13 +714,12 @@ public class ParForProgramBlock extends ForProgramBlock
* below for details of the realization.
*
* @param ec execution context
- * @param itervar ?
* @param from ?
* @param to ?
* @param incr ?
* @throws InterruptedException if InterruptedException occurs
*/
- private void executeLocalParFor( ExecutionContext ec, IntObject
itervar, IntObject from, IntObject to, IntObject incr )
+ private void executeLocalParFor( ExecutionContext ec, IntObject from,
IntObject to, IntObject incr )
throws InterruptedException
{
LOG.trace("Local Par For (multi-threaded) with degree of
parallelism : " + _numThreads);
@@ -850,7 +848,7 @@ public class ParForProgramBlock extends ForProgramBlock
}
}
- private void executeRemoteSparkParFor(ExecutionContext ec, IntObject
itervar, IntObject from, IntObject to, IntObject incr)
+ private void executeRemoteSparkParFor(ExecutionContext ec, IntObject
from, IntObject to, IntObject incr)
{
Timing time = ( _monitor ? new Timing(true) : null );
@@ -916,7 +914,7 @@ public class ParForProgramBlock extends ForProgramBlock
}
}
- private void executeRemoteSparkParForDP( ExecutionContext ec, IntObject
itervar, IntObject from, IntObject to, IntObject incr ) {
+ private void executeRemoteSparkParForDP( ExecutionContext ec, IntObject
from, IntObject to, IntObject incr ) {
Timing time = ( _monitor ? new Timing(true) : null );
// Step 0) check and compile to CP (if forced remote parfor)
@@ -991,7 +989,7 @@ public class ParForProgramBlock extends ForProgramBlock
Data dat = ec.getVariable(var);
//skip non-existing input matrices (which are
due to unknown sizes marked for
//partitioning but typically related branches
are never executed)
- if( dat != null && dat instanceof MatrixObject )
+ if( dat instanceof MatrixObject )
{
MatrixObject moVar = (MatrixObject)
dat; //unpartitioned input
@@ -1076,7 +1074,7 @@ public class ParForProgramBlock extends ForProgramBlock
Stream<CacheableData<?>> results = Arrays.stream(in).filter(m
-> m!=null && m!=out);
//perform cleanup (parallel to mitigate file deletion
bottlenecks)
(parallel ? results.parallel() : results)
- .forEach(m -> ec.cleanupCacheableData(m));
+ .forEach(ec::cleanupCacheableData);
}
/**
@@ -1254,7 +1252,7 @@ public class ParForProgramBlock extends ForProgramBlock
*/
private TaskPartitioner createTaskPartitioner( IntObject from,
IntObject to, IntObject incr )
{
- TaskPartitioner tp = null;
+ TaskPartitioner tp;
switch( _taskPartitioner ) {
case FIXED:
@@ -1301,7 +1299,7 @@ public class ParForProgramBlock extends ForProgramBlock
*/
private DataPartitioner createDataPartitioner(PartitionFormat dpf,
PDataPartitioner dataPartitioner, ExecutionContext ec)
{
- DataPartitioner dp = null;
+ DataPartitioner dp;
//determine max degree of parallelism
int numRed = OptimizerUtils.isSparkExecutionMode() ?
@@ -1325,7 +1323,7 @@ public class ParForProgramBlock extends ForProgramBlock
private ResultMerge<?> createResultMerge( PResultMerge prm,
CacheableData<?> out, CacheableData<?>[] in, String fname,
boolean accum, ExecutionContext ec )
{
- ResultMerge<?> rm = null;
+ ResultMerge<?> rm;
if( out instanceof FrameObject ) {
rm = new ResultMergeFrameLocalMemory((FrameObject)out,
(FrameObject[])in, fname, accum);
@@ -1352,7 +1350,7 @@ public class ParForProgramBlock extends ForProgramBlock
(MatrixObject[])in, fname,
accum, ec, numMap, numRed );
break;
default:
- throw new
DMLRuntimeException("Undefined result merge: '" +prm.toString()+"'.");
+ throw new
DMLRuntimeException("Undefined result merge: '" + prm +"'.");
}
}
else {
@@ -1650,9 +1648,9 @@ public class ParForProgramBlock extends ForProgramBlock
*/
private class ResultMergeWorker extends Thread
{
- private LocalTaskQueue<ResultVar> _q = null;
- private LocalVariableMap[] _refVars = null;
- private ExecutionContext _ec = null;
+ private final LocalTaskQueue<ResultVar> _q;
+ private final LocalVariableMap[] _refVars;
+ private final ExecutionContext _ec;
private boolean _success = false;
public ResultMergeWorker( LocalTaskQueue<ResultVar> q,
LocalVariableMap[] results, ExecutionContext ec )
@@ -1689,7 +1687,7 @@ public class ParForProgramBlock extends ForProgramBlock
String fname =
constructResultMergeFileName();
ResultMerge<?> rm =
createResultMerge(_resultMerge, out, in, fname, var._isAccum, _ec);
- CacheableData<?> outNew = null;
+ CacheableData<?> outNew;
if( USE_PARALLEL_RESULT_MERGE )
outNew =
rm.executeParallelMerge( _numThreads );
else
diff --git a/src/main/java/org/apache/sysds/runtime/controlprogram/Program.java
b/src/main/java/org/apache/sysds/runtime/controlprogram/Program.java
index dbde741..66e063a 100644
--- a/src/main/java/org/apache/sysds/runtime/controlprogram/Program.java
+++ b/src/main/java/org/apache/sysds/runtime/controlprogram/Program.java
@@ -35,8 +35,8 @@ public class Program
public static final String KEY_DELIM = "::";
private DMLProgram _prog;
- private ArrayList<ProgramBlock> _programBlocks;
- private HashMap<String, FunctionDictionary<FunctionProgramBlock>>
_namespaces;
+ private final ArrayList<ProgramBlock> _programBlocks;
+ private final HashMap<String, FunctionDictionary<FunctionProgramBlock>>
_namespaces;
public Program() {
_namespaces = new HashMap<>();
diff --git
a/src/main/java/org/apache/sysds/runtime/controlprogram/ProgramBlock.java
b/src/main/java/org/apache/sysds/runtime/controlprogram/ProgramBlock.java
index ff33f6d..bad2ab7 100644
--- a/src/main/java/org/apache/sysds/runtime/controlprogram/ProgramBlock.java
+++ b/src/main/java/org/apache/sysds/runtime/controlprogram/ProgramBlock.java
@@ -181,7 +181,7 @@ public abstract class ProgramBlock implements ParseInfo {
return executePredicateInstructions(tmp, retType, ec);
}
- protected void executeExitInstructions(Instruction inst, String ctx,
ExecutionContext ec) {
+ protected void executeExitInstructions(String ctx, ExecutionContext ec)
{
try {
if(_exitInstruction != null)
executeSingleInstruction(_exitInstruction, ec);
@@ -279,7 +279,7 @@ public abstract class ProgramBlock implements ParseInfo {
// variables in symbol table (for tracking source of
wrong representation)
if(CHECK_MATRIX_PROPERTIES) {
checkSparsity(tmp, ec.getVariables(), ec);
- checkFederated(tmp, ec.getVariables());
+ checkFederated(ec.getVariables());
}
}
catch(DMLScriptException e) {
@@ -377,7 +377,7 @@ public abstract class ProgramBlock implements ParseInfo {
}
}
- private static void checkFederated(Instruction lastInst,
LocalVariableMap vars) {
+ private static void checkFederated(LocalVariableMap vars) {
for(String varname : vars.keySet()) {
Data dat = vars.get(varname);
if(!(dat instanceof CacheableData))
diff --git
a/src/main/java/org/apache/sysds/runtime/controlprogram/WhileProgramBlock.java
b/src/main/java/org/apache/sysds/runtime/controlprogram/WhileProgramBlock.java
index 234f58f..cc916de 100644
---
a/src/main/java/org/apache/sysds/runtime/controlprogram/WhileProgramBlock.java
+++
b/src/main/java/org/apache/sysds/runtime/controlprogram/WhileProgramBlock.java
@@ -69,7 +69,7 @@ public class WhileProgramBlock extends ProgramBlock
private BooleanObject executePredicate(ExecutionContext ec)
{
- BooleanObject result = null;
+ BooleanObject result;
try
{
if( _sb!=null )
@@ -140,7 +140,7 @@ public class WhileProgramBlock extends ProgramBlock
}
//execute exit instructions
- executeExitInstructions(_exitInstruction, "while", ec);
+ executeExitInstructions("while", ec);
}
public void setChildBlocks(ArrayList<ProgramBlock> childs) {