You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2017/10/13 03:46:35 UTC

[6/8] systemml git commit: [MINOR] Cleanup various issues raised by static code analysis, part 3

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.java
index 865dc9d..59f0f83 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanMappingAbstract.java
@@ -29,86 +29,69 @@ import org.apache.sysml.runtime.controlprogram.Program;
 import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 
 public class OptTreePlanMappingAbstract extends OptTreePlanMapping
-{	
+{
 	private DMLProgram _prog;
 	private Program _rtprog;
 	private Map<Long, Object> _id_hlprog;
 	private Map<Long, Object> _id_rtprog;
 	
-	public OptTreePlanMappingAbstract( )
-	{
+	public OptTreePlanMappingAbstract( ) {
 		super();
-		
 		_prog = null;
 		_rtprog = null;
-		
-		_id_hlprog = new HashMap<Long, Object>();
-		_id_rtprog = new HashMap<Long, Object>();
+		_id_hlprog = new HashMap<>();
+		_id_rtprog = new HashMap<>();
 	}
 	
-	public void putRootProgram( DMLProgram prog, Program rtprog )
-	{
+	public void putRootProgram( DMLProgram prog, Program rtprog ) {
 		_prog = prog;
 		_rtprog = rtprog;
 	}
 	
-	public long putHopMapping( Hop hops, OptNode n )
-	{
+	public long putHopMapping( Hop hops, OptNode n ) {
 		long id = _idSeq.getNextID();
-		
 		_id_hlprog.put(id, hops);
 		_id_rtprog.put(id, null);
 		_id_optnode.put(id, n);	
-		
 		n.setID(id);
-		
 		return id;
 	}
 	
-	public long putProgMapping( StatementBlock sb, ProgramBlock pb, OptNode n )
-	{
+	public long putProgMapping( StatementBlock sb, ProgramBlock pb, OptNode n ) {
 		long id = _idSeq.getNextID();
-		
 		_id_hlprog.put(id, sb);
 		_id_rtprog.put(id, pb);
 		_id_optnode.put(id, n);
 		n.setID(id);
-		
 		return id;
 	}
 	
-	public Object[] getRootProgram()
-	{
+	public Object[] getRootProgram() {
 		Object[] ret = new Object[2];
 		ret[0] = _prog;
 		ret[1] = _rtprog;
 		return ret;
 	}
 	
-	public Hop getMappedHop( long id )
-	{
+	public Hop getMappedHop( long id ) {
 		return (Hop)_id_hlprog.get( id );
 	}
 	
-	public Object[] getMappedProg( long id )
-	{
+	public Object[] getMappedProg( long id ) {
 		Object[] ret = new Object[2];
 		ret[0] = (StatementBlock)_id_hlprog.get( id );
 		ret[1] = (ProgramBlock)_id_rtprog.get( id );
-		
 		return ret;
 	}
 	
-	public void replaceMapping( ProgramBlock pb, OptNode n )
-	{
+	public void replaceMapping( ProgramBlock pb, OptNode n ) {
 		long id = n.getID();
 		_id_rtprog.put(id, pb);
 		_id_optnode.put(id, n);
 	}
 	
 	@Override
-	public void clear()
-	{
+	public void clear() {
 		super.clear();
 		_prog = null;
 		_rtprog = null;

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanMappingRuntime.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanMappingRuntime.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanMappingRuntime.java
index 8c131f3..cf285d7 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanMappingRuntime.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptTreePlanMappingRuntime.java
@@ -26,52 +26,42 @@ import org.apache.sysml.runtime.controlprogram.ProgramBlock;
 import org.apache.sysml.runtime.instructions.Instruction;
 
 public class OptTreePlanMappingRuntime extends OptTreePlanMapping
-{	
+{
 	private Map<Long, Object> _id_rtprog;
 
-	public OptTreePlanMappingRuntime()
-	{
+	public OptTreePlanMappingRuntime() {
 		super();
-		_id_rtprog = new HashMap<Long, Object>();
+		_id_rtprog = new HashMap<>();
 	}
 	
-	public long putMapping( Instruction inst, OptNode n )
-	{
+	public long putMapping( Instruction inst, OptNode n ) {
 		long id = _idSeq.getNextID();
-		
 		_id_rtprog.put(id, inst);
-		_id_optnode.put(id, n);			
+		_id_optnode.put(id, n);
 		n.setID(id);
-		
 		return id;
 	}
 	
-	public long putMapping( ProgramBlock pb, OptNode n )
-	{
+	public long putMapping( ProgramBlock pb, OptNode n ) {
 		long id = _idSeq.getNextID();
-		
 		_id_rtprog.put(id, pb);
 		_id_optnode.put(id, n);
 		n.setID(id);
-		
 		return id;
 	}
 	
-	public void replaceMapping( ProgramBlock pb, OptNode n )
-	{
+	public void replaceMapping( ProgramBlock pb, OptNode n ) {
 		long id = n.getID();
 		_id_rtprog.put(id, pb);
 		_id_optnode.put(id, n);
 	}
 	
-	public Object getMappedObject( long id )
-	{
+	public Object getMappedObject( long id ) {
 		return _id_rtprog.get( id );
 	}
 
 	@Override
-	public void clear()
-	{
+	public void clear() {
 		super.clear();
 		_id_rtprog.clear();
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizationWrapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizationWrapper.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizationWrapper.java
index eec2fb7..d7f6150 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizationWrapper.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizationWrapper.java
@@ -322,11 +322,11 @@ public class OptimizationWrapper
 	private static ProgramRewriter createProgramRewriterWithRuleSets()
 	{
 		//create hop rewrite set
-		ArrayList<HopRewriteRule> hRewrites = new ArrayList<HopRewriteRule>();
+		ArrayList<HopRewriteRule> hRewrites = new ArrayList<>();
 		hRewrites.add( new RewriteConstantFolding() );
 		
 		//create statementblock rewrite set
-		ArrayList<StatementBlockRewriteRule> sbRewrites = new ArrayList<StatementBlockRewriteRule>();
+		ArrayList<StatementBlockRewriteRule> sbRewrites = new ArrayList<>();
 		sbRewrites.add( new RewriteRemoveUnnecessaryBranches() );
 		
 		ProgramRewriter rewriter = new ProgramRewriter( hRewrites, sbRewrites );

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java
index b6be028..f517bda 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerConstrained.java
@@ -108,7 +108,7 @@ public class OptimizerConstrained extends OptimizerRuleBased
 		//OPTIMIZE PARFOR PLAN
 
 		// rewrite 1: data partitioning (incl. log. recompile RIX)
-		HashMap<String, PartitionFormat> partitionedMatrices = new HashMap<String, PartitionFormat>();
+		HashMap<String, PartitionFormat> partitionedMatrices = new HashMap<>();
 		rewriteSetDataPartitioner( pn, ec.getVariables(), partitionedMatrices, OptimizerUtils.getLocalMemBudget() );
 		double M0b = _cost.getEstimate(TestMeasure.MEMORY_USAGE, pn); //reestimate
 
@@ -167,7 +167,7 @@ public class OptimizerConstrained extends OptimizerRuleBased
 			super.rewriteSetTranposeSparseVectorOperations(pn, partitionedMatrices, ec.getVariables());
 
 			//rewrite 14:
-			HashSet<String> inplaceResultVars = new HashSet<String>();
+			HashSet<String> inplaceResultVars = new HashSet<>();
 			super.rewriteSetInPlaceResultIndexing(pn, M1, ec.getVariables(), inplaceResultVars, ec);
 
 			//rewrite 15:
@@ -183,7 +183,7 @@ public class OptimizerConstrained extends OptimizerRuleBased
 			rewriteSetTaskPartitioner( pn, false, false ); //flagLIX always false 
 
 			// rewrite 14: set in-place result indexing
-			HashSet<String> inplaceResultVars = new HashSet<String>();
+			HashSet<String> inplaceResultVars = new HashSet<>();
 			super.rewriteSetInPlaceResultIndexing(pn, M1, ec.getVariables(), inplaceResultVars, ec);
 
 			if( !OptimizerUtils.isSparkExecutionMode() ) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerRuleBased.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerRuleBased.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerRuleBased.java
index 16a2e7e..0d0c52e 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerRuleBased.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/OptimizerRuleBased.java
@@ -229,7 +229,7 @@ public class OptimizerRuleBased extends Optimizer
 		//OPTIMIZE PARFOR PLAN
 		
 		// rewrite 1: data partitioning (incl. log. recompile RIX and flag opt nodes)
-		HashMap<String, PartitionFormat> partitionedMatrices = new HashMap<String, PartitionFormat>();
+		HashMap<String, PartitionFormat> partitionedMatrices = new HashMap<>();
 		rewriteSetDataPartitioner( pn, ec.getVariables(), partitionedMatrices, OptimizerUtils.getLocalMemBudget() );
 		double M0b = _cost.getEstimate(TestMeasure.MEMORY_USAGE, pn); //reestimate
 		
@@ -288,7 +288,7 @@ public class OptimizerRuleBased extends Optimizer
 			rewriteSetTranposeSparseVectorOperations(pn, partitionedMatrices, ec.getVariables());
 			
 			// rewrite 14: set in-place result indexing
-			HashSet<String> inplaceResultVars = new HashSet<String>();
+			HashSet<String> inplaceResultVars = new HashSet<>();
 			rewriteSetInPlaceResultIndexing(pn, M1, ec.getVariables(), inplaceResultVars, ec);
 			
 			// rewrite 15: disable caching
@@ -303,7 +303,7 @@ public class OptimizerRuleBased extends Optimizer
 			rewriteSetTaskPartitioner( pn, false, false ); //flagLIX always false 
 			
 			// rewrite 14: set in-place result indexing
-			HashSet<String> inplaceResultVars = new HashSet<String>();
+			HashSet<String> inplaceResultVars = new HashSet<>();
 			rewriteSetInPlaceResultIndexing(pn, M1, ec.getVariables(), inplaceResultVars, ec);
 			
 			if( !OptimizerUtils.isSparkExecutionMode() ) {
@@ -415,7 +415,7 @@ public class OptimizerRuleBased extends Optimizer
 			&& (_N >= PROB_SIZE_THRESHOLD_PARTITIONING || _Nmax >= PROB_SIZE_THRESHOLD_PARTITIONING) ) //only if beneficial wrt problem size
 		{
 			ArrayList<String> cand = pfsb.getReadOnlyParentVars();
-			HashMap<String, PartitionFormat> cand2 = new HashMap<String, PartitionFormat>();
+			HashMap<String, PartitionFormat> cand2 = new HashMap<>();
 			for( String c : cand )
 			{
 				PartitionFormat dpf = pfsb.determineDataPartitionFormat( c );
@@ -785,7 +785,7 @@ public class OptimizerRuleBased extends Optimizer
 
 	protected HashMap<Hop, Double> getPartitionedRIXEstimates(OptNode parent)
 	{
-		HashMap<Hop, Double> estimates = new HashMap<Hop, Double>();
+		HashMap<Hop, Double> estimates = new HashMap<>();
 		for( OptNode n : parent.getChilds() )
 			if( n.getParam(ParamType.DATA_PARTITION_FORMAT) != null )
 			{
@@ -937,8 +937,8 @@ public class OptimizerRuleBased extends Optimizer
 		if( recompile && count<=0 )
 			LOG.warn("OPT: Forced set operations exec type 'CP', but no operation requires recompile.");
 		ParForProgramBlock pfpb = (ParForProgramBlock) OptTreeConverter
-                                  .getAbstractPlanMapping().getMappedProg(pn.getID())[1];
-		HashSet<String> fnStack = new HashSet<String>();
+			.getAbstractPlanMapping().getMappedProg(pn.getID())[1];
+		HashSet<String> fnStack = new HashSet<>();
 		Recompiler.recompileProgramBlockHierarchy2Forced(pfpb.getChildBlocks(), 0, fnStack, LopProperties.ExecType.CP);
 		
 		//debug output
@@ -985,13 +985,13 @@ public class OptimizerRuleBased extends Optimizer
 		String varname = null;
 		String partitioner = n.getParam(ParamType.DATA_PARTITIONER);
 		ParForProgramBlock pfpb = (ParForProgramBlock) OptTreeConverter
-        							.getAbstractPlanMapping().getMappedProg(n.getID())[1];
+				.getAbstractPlanMapping().getMappedProg(n.getID())[1];
 		
 		if(   partitioner!=null && partitioner.equals(PDataPartitioner.REMOTE_MR.toString())
 			&& n.getExecType()==ExecType.MR )
 		{
 			//find all candidates matrices (at least one partitioned access via iterVar)
-			HashSet<String> cand = new HashSet<String>();
+			HashSet<String> cand = new HashSet<>();
 			rFindDataColocationCandidates(n, cand, pfpb.getIterVar());
 			
 			//select largest matrix for colocation (based on nnz to account for sparsity)
@@ -1826,9 +1826,8 @@ public class OptimizerRuleBased extends Optimizer
 		throws DMLRuntimeException
 	{
 		ParForProgramBlock pfpb = (ParForProgramBlock) OptTreeConverter
-								    .getAbstractPlanMapping().getMappedProg(n.getID())[1];
-
-		HashSet<String> sharedVars = new HashSet<String>();
+				.getAbstractPlanMapping().getMappedProg(n.getID())[1];
+		HashSet<String> sharedVars = new HashSet<>();
 		boolean apply = false; 
 		
 		//enable runtime piggybacking if MR jobs on shared read-only data set
@@ -1936,29 +1935,27 @@ public class OptimizerRuleBased extends Optimizer
 		Object[] progobj = OptTreeConverter.getAbstractPlanMapping().getMappedProg(n.getID());
 		ParForStatementBlock pfsb = (ParForStatementBlock)progobj[0];
 		ParForProgramBlock pfpb = (ParForProgramBlock)progobj[1];
-		
-		ArrayList<String> ret = new ArrayList<String>();
+		ArrayList<String> ret = new ArrayList<>();
 		
 		if(    OptimizerUtils.isSparkExecutionMode() //spark exec mode
 			&& n.getExecType() == ExecType.CP		 //local parfor 
-			&& _N > 1                            )   //at least 2 iterations                             
+			&& _N > 1                            )   //at least 2 iterations
 		{
 			//collect candidates from zipmm spark instructions
-			HashSet<String> cand = new HashSet<String>();
+			HashSet<String> cand = new HashSet<>();
 			rCollectZipmmPartitioningCandidates(n, cand);
 			
 			//prune updated candidates
-			HashSet<String> probe = new HashSet<String>(pfsb.getReadOnlyParentVars());				
+			HashSet<String> probe = new HashSet<>(pfsb.getReadOnlyParentVars());
 			for( String var : cand )
 				if( probe.contains( var ) )
 					ret.add( var );
-				
+			
 			//prune small candidates
-			ArrayList<String> tmp = new ArrayList<String>(ret);
+			ArrayList<String> tmp = new ArrayList<>(ret);
 			ret.clear();
 			for( String var : tmp )
-				if( vars.get(var) instanceof MatrixObject )
-				{
+				if( vars.get(var) instanceof MatrixObject ) {
 					MatrixObject mo = (MatrixObject) vars.get(var);
 					double sp = OptimizerUtils.getSparsity(mo.getNumRows(), mo.getNumColumns(), mo.getNnz());
 					double size = OptimizerUtils.estimateSizeExactSparsity(mo.getNumRows(), mo.getNumColumns(), sp);
@@ -2016,7 +2013,7 @@ public class OptimizerRuleBased extends Optimizer
 		ParForStatementBlock pfsb = (ParForStatementBlock)progobj[0];
 		ParForProgramBlock pfpb = (ParForProgramBlock)progobj[1];
 		
-		ArrayList<String> ret = new ArrayList<String>();
+		ArrayList<String> ret = new ArrayList<>();
 		
 		if(    OptimizerUtils.isSparkExecutionMode() //spark exec mode
 			&& n.getExecType() == ExecType.CP		 //local parfor 
@@ -2065,7 +2062,7 @@ public class OptimizerRuleBased extends Optimizer
 		ParForProgramBlock pfpb = (ParForProgramBlock) OptTreeConverter
 			    .getAbstractPlanMapping().getMappedProg(n.getID())[1];
 
-		ArrayList<String> cleanedVars = new ArrayList<String>();
+		ArrayList<String> cleanedVars = new ArrayList<>();
 		ArrayList<String> resultVars = pfpb.getResultVariables();
 		String itervar = pfpb.getIterVar();
 		
@@ -2465,7 +2462,7 @@ public class OptimizerRuleBased extends Optimizer
 		int count = 0; //num removed parfor
 		
 		//find recursive parfor
-		HashSet<ParForProgramBlock> recPBs = new HashSet<ParForProgramBlock>();
+		HashSet<ParForProgramBlock> recPBs = new HashSet<>();
 		rFindRecursiveParFor( n, recPBs, false );
 
 		if( !recPBs.isEmpty() )
@@ -2547,7 +2544,7 @@ public class OptimizerRuleBased extends Optimizer
 				nNew.addParam(ParamType.OPSTRING, fnameNewKey);
 				long parentID = OptTreeConverter.getAbstractPlanMapping().getMappedParentID(n.getID());
 				OptTreeConverter.getAbstractPlanMapping().getOptNode(parentID).exchangeChild(n, nNew);
-				HashSet<String> memo = new HashSet<String>();
+				HashSet<String> memo = new HashSet<>();
 				memo.add(fnameKey); //required if functionop not shared (because not replaced yet)
 				memo.add(fnameNewKey); //requied if functionop shared (indirectly replaced)
 				for( int i=0; i<copyfpb.getChildBlocks().size() /*&& i<len*/; i++ )

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
index 189d061..12a4ccb 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/opt/ProgramRecompiler.java
@@ -60,7 +60,7 @@ public class ProgramRecompiler
 	public static ArrayList<ProgramBlock> generatePartitialRuntimeProgram(Program rtprog, ArrayList<StatementBlock> sbs) 
 		throws LopsException, DMLRuntimeException, IOException, HopsException
 	{
-		ArrayList<ProgramBlock> ret = new ArrayList<ProgramBlock>();
+		ArrayList<ProgramBlock> ret = new ArrayList<>();
 		DMLConfig config = ConfigurationManager.getDMLConfig();
 		
 		//construct lops from hops if not existing
@@ -476,7 +476,7 @@ public class ProgramRecompiler
 		String str = sb.toString(); 
 		
 		//create instruction set
-		ArrayList<Instruction> tmp = new ArrayList<Instruction>();
+		ArrayList<Instruction> tmp = new ArrayList<>();
 		Instruction inst = ArithmeticBinaryCPInstruction.parseInstruction(str);
 		tmp.add(inst);
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/stat/StatisticMonitor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/stat/StatisticMonitor.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/stat/StatisticMonitor.java
index a558e16..10c8b1c 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/stat/StatisticMonitor.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/stat/StatisticMonitor.java
@@ -46,9 +46,9 @@ public class StatisticMonitor
 	
 	static
 	{
-		_mapPwPf  = new HashMap<Long, Long>();
-		_pfstats  = new HashMap<Long, HashMap<Stat,LinkedList<Double>>>();
-		_pwstats  = new HashMap<Long, HashMap<Stat,LinkedList<Double>>>();
+		_mapPwPf  = new HashMap<>();
+		_pfstats  = new HashMap<>();
+		_pwstats  = new HashMap<>();
 	}
 	
 	/**

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/functionobjects/Builtin.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/functionobjects/Builtin.java b/src/main/java/org/apache/sysml/runtime/functionobjects/Builtin.java
index ed1838d..20c1ab7 100644
--- a/src/main/java/org/apache/sysml/runtime/functionobjects/Builtin.java
+++ b/src/main/java/org/apache/sysml/runtime/functionobjects/Builtin.java
@@ -56,8 +56,7 @@ public class Builtin extends ValueFunction
 	
 	static public HashMap<String, BuiltinCode> String2BuiltinCode;
 	static {
-		String2BuiltinCode = new HashMap<String, BuiltinCode>();
-		
+		String2BuiltinCode = new HashMap<>();
 		String2BuiltinCode.put( "sin"    , BuiltinCode.SIN);
 		String2BuiltinCode.put( "cos"    , BuiltinCode.COS);
 		String2BuiltinCode.put( "tan"    , BuiltinCode.TAN);

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/functionobjects/COV.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/functionobjects/COV.java b/src/main/java/org/apache/sysml/runtime/functionobjects/COV.java
index eb5148b..ff801cc 100644
--- a/src/main/java/org/apache/sysml/runtime/functionobjects/COV.java
+++ b/src/main/java/org/apache/sysml/runtime/functionobjects/COV.java
@@ -93,6 +93,7 @@ public class COV extends ValueFunction
 	 * @param v ?
 	 * @return result
 	 */
+	@Override
 	public Data execute(Data in1, double u, double v) 
 		throws DMLRuntimeException 
 	{
@@ -117,6 +118,7 @@ public class COV extends ValueFunction
 		return cov1;
 	}
 	
+	@Override
 	public Data execute(Data in1, Data in2) throws DMLRuntimeException 
 	{
 		CM_COV_Object cov1=(CM_COV_Object) in1;

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/functionobjects/CTable.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/functionobjects/CTable.java b/src/main/java/org/apache/sysml/runtime/functionobjects/CTable.java
index 31cdce8..fdb6b85 100644
--- a/src/main/java/org/apache/sysml/runtime/functionobjects/CTable.java
+++ b/src/main/java/org/apache/sysml/runtime/functionobjects/CTable.java
@@ -130,17 +130,12 @@ public class CTable extends ValueFunction
 	{
 		// If any of the values are NaN (i.e., missing) then 
 		// we skip this tuple, proceed to the next tuple
-		if ( Double.isNaN(v2) || Double.isNaN(w) ) {
-			return new Pair<MatrixIndexes,Double>(new MatrixIndexes(-1,-1), w);
-		}
-		
+		if ( Double.isNaN(v2) || Double.isNaN(w) )
+			return new Pair<>(new MatrixIndexes(-1,-1), w);
 		// safe casts to long for consistent behavior with indexing
 		long col = UtilFunctions.toLong( v2 );
-				
-		if( col <= 0 ) {
+		if( col <= 0 )
 			throw new DMLRuntimeException("Erroneous input while computing the contingency table (value <= zero): "+v2);
-		} 
-		
-		return new Pair<MatrixIndexes,Double>(new MatrixIndexes(row, col), w);
+		return new Pair<>(new MatrixIndexes(row, col), w);
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/functionobjects/KahanPlus.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/functionobjects/KahanPlus.java b/src/main/java/org/apache/sysml/runtime/functionobjects/KahanPlus.java
index 14affa3..3d524fe 100644
--- a/src/main/java/org/apache/sysml/runtime/functionobjects/KahanPlus.java
+++ b/src/main/java/org/apache/sysml/runtime/functionobjects/KahanPlus.java
@@ -90,6 +90,7 @@ public class KahanPlus extends KahanFunction implements Serializable
 	 * @param in1 kahan object input
 	 * @param in2 double input
 	 */
+	@Override
 	public void execute2(KahanObject in1, double in2) 
 	{
 		//fast path for INF/-INF in order to ensure result correctness

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/functionobjects/Mean.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/functionobjects/Mean.java b/src/main/java/org/apache/sysml/runtime/functionobjects/Mean.java
index 3647741..907e732 100644
--- a/src/main/java/org/apache/sysml/runtime/functionobjects/Mean.java
+++ b/src/main/java/org/apache/sysml/runtime/functionobjects/Mean.java
@@ -26,7 +26,6 @@ import org.apache.sysml.runtime.instructions.cp.KahanObject;
 
 public class Mean extends ValueFunction 
 {
-
 	private static final long serialVersionUID = 1967222020396371269L;
 
 	private static Mean singleObj = null;
@@ -43,7 +42,7 @@ public class Mean extends ValueFunction
 		return singleObj;
 	}
 	
-	//overwride in1
+	@Override
 	public Data execute(Data in1, double in2, double count) throws DMLRuntimeException {
 		KahanObject kahanObj=(KahanObject)in1;
 		double delta = (in2-kahanObj._sum)/count;

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/functionobjects/OffsetColumnIndex.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/functionobjects/OffsetColumnIndex.java b/src/main/java/org/apache/sysml/runtime/functionobjects/OffsetColumnIndex.java
index 8a85edc..14022dd 100644
--- a/src/main/java/org/apache/sysml/runtime/functionobjects/OffsetColumnIndex.java
+++ b/src/main/java/org/apache/sysml/runtime/functionobjects/OffsetColumnIndex.java
@@ -63,6 +63,7 @@ public class OffsetColumnIndex extends IndexFunction
 		return false;
 	}
 
+	@Override
 	public boolean computeDimension(MatrixCharacteristics in, MatrixCharacteristics out) {
 		out.set(numRowsInOutput, numColumnsInOutput, in.getRowsPerBlock(), in.getColsPerBlock());
 		return false;

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/functionobjects/ParameterizedBuiltin.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/functionobjects/ParameterizedBuiltin.java b/src/main/java/org/apache/sysml/runtime/functionobjects/ParameterizedBuiltin.java
index 9a0c6c2..60886c0 100644
--- a/src/main/java/org/apache/sysml/runtime/functionobjects/ParameterizedBuiltin.java
+++ b/src/main/java/org/apache/sysml/runtime/functionobjects/ParameterizedBuiltin.java
@@ -55,8 +55,7 @@ public class ParameterizedBuiltin extends ValueFunction
 	
 	static public HashMap<String, ParameterizedBuiltinCode> String2ParameterizedBuiltinCode;
 	static {
-		String2ParameterizedBuiltinCode = new HashMap<String, ParameterizedBuiltinCode>();
-		
+		String2ParameterizedBuiltinCode = new HashMap<>();
 		String2ParameterizedBuiltinCode.put( "cdf", ParameterizedBuiltinCode.CDF);
 		String2ParameterizedBuiltinCode.put( "invcdf", ParameterizedBuiltinCode.INVCDF);
 		String2ParameterizedBuiltinCode.put( "rmempty", ParameterizedBuiltinCode.RMEMPTY);
@@ -68,8 +67,7 @@ public class ParameterizedBuiltin extends ValueFunction
 	
 	static public HashMap<String, ProbabilityDistributionCode> String2DistCode;
 	static {
-		String2DistCode = new HashMap<String,ProbabilityDistributionCode>();
-		
+		String2DistCode = new HashMap<>();
 		String2DistCode.put("normal"	, ProbabilityDistributionCode.NORMAL);
 		String2DistCode.put("exp"		, ProbabilityDistributionCode.EXP);
 		String2DistCode.put("chisq"		, ProbabilityDistributionCode.CHISQ);
@@ -179,6 +177,7 @@ public class ParameterizedBuiltin extends ValueFunction
 		}
 	}
 	
+	@Override
 	public double execute(HashMap<String,String> params) throws DMLRuntimeException {
 		switch(bFunc) {
 		case CDF:

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/functionobjects/Plus.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/functionobjects/Plus.java b/src/main/java/org/apache/sysml/runtime/functionobjects/Plus.java
index c25853d..fc1a8f6 100644
--- a/src/main/java/org/apache/sysml/runtime/functionobjects/Plus.java
+++ b/src/main/java/org/apache/sysml/runtime/functionobjects/Plus.java
@@ -56,7 +56,8 @@ public class Plus extends ValueFunction implements Serializable
 		return in1 + in2;
 	}
 
+	@Override
 	public String execute ( String in1, String in2 ) throws DMLRuntimeException {
 		return in1 + in2;
-	}	
+	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/CPInstructionParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/CPInstructionParser.java b/src/main/java/org/apache/sysml/runtime/instructions/CPInstructionParser.java
index 80738c4..4e66042 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/CPInstructionParser.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/CPInstructionParser.java
@@ -77,8 +77,7 @@ public class CPInstructionParser extends InstructionParser
 	public static final HashMap<String, CPINSTRUCTION_TYPE> String2CPFileInstructionType;
 	
 	static {
-		String2CPInstructionType = new HashMap<String, CPINSTRUCTION_TYPE>();
-
+		String2CPInstructionType = new HashMap<>();
 		String2CPInstructionType.put( "ba+*"   	, CPINSTRUCTION_TYPE.AggregateBinary);
 		String2CPInstructionType.put( "tak+*"   , CPINSTRUCTION_TYPE.AggregateTernary);
 		String2CPInstructionType.put( "tack+*"  , CPINSTRUCTION_TYPE.AggregateTernary);
@@ -281,8 +280,7 @@ public class CPInstructionParser extends InstructionParser
 
 		
 		//CP FILE instruction
-		String2CPFileInstructionType = new HashMap<String, CPINSTRUCTION_TYPE>();
-
+		String2CPFileInstructionType = new HashMap<>();
 		String2CPFileInstructionType.put( "rmempty"	    , CPINSTRUCTION_TYPE.ParameterizedBuiltin);
 	}
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/Instruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/Instruction.java b/src/main/java/org/apache/sysml/runtime/instructions/Instruction.java
index 61c2077..5583b61 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/Instruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/Instruction.java
@@ -157,6 +157,7 @@ public abstract class Instruction
 		LOG.debug(instString);
 	}
 	
+	@Override
 	public String toString() {
 		return instString;
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/MRInstructionParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/MRInstructionParser.java b/src/main/java/org/apache/sysml/runtime/instructions/MRInstructionParser.java
index afc9d35..15785c0 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/MRInstructionParser.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/MRInstructionParser.java
@@ -86,7 +86,7 @@ public class MRInstructionParser extends InstructionParser
 {	
 	static public HashMap<String, MRINSTRUCTION_TYPE> String2MRInstructionType;
 	static {
-		String2MRInstructionType = new HashMap<String, MRINSTRUCTION_TYPE>();
+		String2MRInstructionType = new HashMap<>();
 		
 		// AGG Instruction Opcodes 
 		String2MRInstructionType.put( "a+"    , MRINSTRUCTION_TYPE.Aggregate);

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/MRJobInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/MRJobInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/MRJobInstruction.java
index d27c9ff..3dcad83 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/MRJobInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/MRJobInstruction.java
@@ -437,8 +437,8 @@ public class MRJobInstruction extends Instruction
 		return sb.toString();
 	}
 	
-	public String toString()
-	{
+	@Override
+	public String toString() {
 		String instruction = "";
 		instruction += "jobtype = " + jobType + " \n";
 		instruction += "input labels = " + Arrays.toString(inputVars) + " \n";
@@ -686,6 +686,7 @@ public class MRJobInstruction extends Instruction
 		return sb.toString();
 	}
 	
+	@Override
 	public void printMe() {
 		LOG.debug("\nMRInstructions: \n" + this.toString());
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/SPInstructionParser.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/SPInstructionParser.java b/src/main/java/org/apache/sysml/runtime/instructions/SPInstructionParser.java
index b5f8a04..bff75d7 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/SPInstructionParser.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/SPInstructionParser.java
@@ -89,7 +89,7 @@ public class SPInstructionParser extends InstructionParser
 {	
 	public static final HashMap<String, SPINSTRUCTION_TYPE> String2SPInstructionType;
 	static {
-		String2SPInstructionType = new HashMap<String, SPInstruction.SPINSTRUCTION_TYPE>();
+		String2SPInstructionType = new HashMap<>();
 		
 		//unary aggregate operators
 		String2SPInstructionType.put( "uak+"   	, SPINSTRUCTION_TYPE.AggregateUnary);

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/cp/BreakPointInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/BreakPointInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/BreakPointInstruction.java
index 1e4625a..235a6f2 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/BreakPointInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/BreakPointInstruction.java
@@ -104,11 +104,12 @@ public class BreakPointInstruction extends Instruction
 		if( DMLScript.ENABLE_DEBUG_MODE && isBPInstructionEnabled()) {
 			DebugState dbState = ec.getDebugState();
 			
-			System.out.format("Breakpoint reached at %s.\n", dbState.getPC().toString());					
+			System.out.format("Breakpoint reached at %s.\n", dbState.getPC().toString());
 			dbState.suspend = true;
 		}
 	}
 	
+	@Override
 	public String toString()
 	{
 		StringBuilder sb = new StringBuilder();

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/cp/CM_COV_Object.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/CM_COV_Object.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/CM_COV_Object.java
index 7acb0b9..e662b33 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/CM_COV_Object.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/CM_COV_Object.java
@@ -29,7 +29,6 @@ import org.apache.sysml.runtime.matrix.operators.CMOperator.AggregateOperationTy
 
 public class CM_COV_Object extends Data 
 {
-
 	private static final long serialVersionUID = -5814207545197934085L;
 
 	//for central moment
@@ -42,8 +41,8 @@ public class CM_COV_Object extends Data
 	public KahanObject mean_v;
 	public KahanObject c2;
 	
-	public String toString()
-	{
+	@Override
+	public String toString() {
 		return "weight: "+w+", mean: "+mean+", m2: "+m2+", m3: "+m3+", m4: "+m4+", mean2: "+mean_v+", c2: "+c2;
 	}
 	

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/cp/FunctionCallCPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/FunctionCallCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/FunctionCallCPInstruction.java
index 3e0ecf9..402d4a5 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/FunctionCallCPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/FunctionCallCPInstruction.java
@@ -243,10 +243,6 @@ public class FunctionCallCPInstruction extends CPInstruction {
 		LOG.debug("ExternalBuiltInFunction: " + this.toString());
 	}
 
-	public String getGraphString() {
-		return "ExtBuiltinFunc: " + _functionName;
-	}
-	
 	public ArrayList<String> getBoundInputParamNames()
 	{
 		return _boundInputParamNames;

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/cp/KahanObject.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/KahanObject.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/KahanObject.java
index 00fd75d..884a6a7 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/KahanObject.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/KahanObject.java
@@ -41,8 +41,8 @@ public class KahanObject extends Data
 		_correction=cor;
 	}
 
-	public String toString()
-	{
+	@Override
+	public String toString() {
 		return "("+_sum+", "+_correction+")";
 	}
 	

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java
index 141df62..e8a5f4a 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/ParameterizedBuiltinCPInstruction.java
@@ -78,7 +78,7 @@ public class ParameterizedBuiltinCPInstruction extends ComputationCPInstruction
 	
 	public static HashMap<String, String> constructParameterMap(String[] params) {
 		// process all elements in "params" except first(opcode) and last(output)
-		HashMap<String,String> paramMap = new HashMap<String,String>();
+		HashMap<String,String> paramMap = new HashMap<>();
 		
 		// all parameters are of form <name=value>
 		String[] parts;

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarBuiltinMultipleCPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarBuiltinMultipleCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarBuiltinMultipleCPInstruction.java
index 515359e..8169695 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarBuiltinMultipleCPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/ScalarBuiltinMultipleCPInstruction.java
@@ -46,7 +46,7 @@ public class ScalarBuiltinMultipleCPInstruction extends BuiltinMultipleCPInstruc
 	@Override
 	public void processInstruction(ExecutionContext ec) throws DMLRuntimeException {
 		if (MultipleCP.OperationType.PRINTF.toString().equalsIgnoreCase(getOpcode())) {
-			List<ScalarObject> scalarObjects = new ArrayList<ScalarObject>();
+			List<ScalarObject> scalarObjects = new ArrayList<>();
 			for (CPOperand input : inputs) {
 				ScalarObject so = ec.getScalarInput(input.getName(), input.getValueType(), input.isLiteral());
 				scalarObjects.add(so);

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/ExecutionConfig.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/ExecutionConfig.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/ExecutionConfig.java
index 5a0a772..7f8eb9e 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/ExecutionConfig.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/ExecutionConfig.java
@@ -40,7 +40,7 @@ public class ExecutionConfig {
 	public int sharedMemBytes = 0;
 	public CUstream stream = null;
 
-	private static HashMap<Integer, Integer> maxBlockDimForDevice = new HashMap<Integer, Integer>();
+	private static HashMap<Integer, Integer> maxBlockDimForDevice = new HashMap<>();
 
 	/**
 	 * Convenience constructor for setting the number of blocks, number of threads and the

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/JCudaKernels.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/JCudaKernels.java b/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/JCudaKernels.java
index 3ebed52..e1894ae 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/JCudaKernels.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/gpu/context/JCudaKernels.java
@@ -47,7 +47,7 @@ import jcuda.runtime.JCuda;
 public class JCudaKernels {
 
 	private final static String ptxFileName = "/kernels/SystemML.ptx";
-	private HashMap<String, CUfunction> kernels = new HashMap<String, CUfunction>();
+	private HashMap<String, CUfunction> kernels = new HashMap<>();
 	private CUmodule module;
 
 	/**

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendMInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendMInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendMInstruction.java
index 6b18b8c..6ac8cfc 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendMInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendMInstruction.java
@@ -120,7 +120,7 @@ public class AppendMInstruction extends AppendInstruction implements IDistribute
 				DistributedCacheInput dcInput = MRBaseForCommonInstructions.dcValues.get(input2);
 				
 				//allocate space for the output value
-				ArrayList<IndexedMatrixValue> outlist=new ArrayList<IndexedMatrixValue>(2);
+				ArrayList<IndexedMatrixValue> outlist=new ArrayList<>(2);
 				IndexedMatrixValue first=cachedValues.holdPlace(output, valueClass);
 				first.getIndexes().setIndexes(ix);
 				outlist.add(first);

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateMInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateMInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateMInstruction.java
index 0f90341..447e253 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateMInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/GroupedAggregateMInstruction.java
@@ -88,7 +88,7 @@ public class GroupedAggregateMInstruction extends BinaryMRInstructionBase implem
 			int bclen = dcInput.getNumColsPerBlock();
 			
 			//execute map grouped aggregate operations
-			ArrayList<IndexedMatrixValue> outlist = new ArrayList<IndexedMatrixValue>();
+			ArrayList<IndexedMatrixValue> outlist = new ArrayList<>();
 			OperationsOnMatrixValues.performMapGroupedAggregate(getOperator(), in1, groups, _ngroups, brlen, bclen, outlist);
 			
 			//output all result blocks

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/mr/ParameterizedBuiltinMRInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/ParameterizedBuiltinMRInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/ParameterizedBuiltinMRInstruction.java
index 797bb0d..3193cc6 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/ParameterizedBuiltinMRInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/ParameterizedBuiltinMRInstruction.java
@@ -157,7 +157,7 @@ public class ParameterizedBuiltinMRInstruction extends UnaryInstruction {
 				else if( _opcode.equalsIgnoreCase("rexpand") )
 				{
 					//process instruction
-					ArrayList<IndexedMatrixValue> out = new ArrayList<IndexedMatrixValue>();
+					ArrayList<IndexedMatrixValue> out = new ArrayList<>();
 					LibMatrixReorg.rexpand(imv, _max, _dirRows, _cast, _ignore, blockRowFactor, blockColFactor, out);
 					
 					//put the output values in the cache

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/mr/RangeBasedReIndexInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/RangeBasedReIndexInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/RangeBasedReIndexInstruction.java
index b7d73ea..b1e90d1 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/RangeBasedReIndexInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/RangeBasedReIndexInstruction.java
@@ -100,7 +100,7 @@ public class RangeBasedReIndexInstruction extends UnaryMRInstructionBase {
 					continue;
 	
 				//process instruction (incl block allocation)
-				ArrayList<IndexedMatrixValue> outlist = new ArrayList<IndexedMatrixValue>();
+				ArrayList<IndexedMatrixValue> outlist = new ArrayList<>();
 				if( _forLeft )
 					OperationsOnMatrixValues.performShift(in, _ixrange, blockRowFactor, blockColFactor, _rlenLhs, _clenLhs, outlist);
 				else

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/mr/RemoveEmptyMRInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/RemoveEmptyMRInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/RemoveEmptyMRInstruction.java
index ab06a39..fc93c56 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/RemoveEmptyMRInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/RemoveEmptyMRInstruction.java
@@ -88,7 +88,7 @@ public class RemoveEmptyMRInstruction extends BinaryInstruction {
 		IndexedMatrixValue inOffset = cachedValues.getFirst(input2);
 
 		//execute remove empty operations
-		ArrayList<IndexedMatrixValue> out = new ArrayList<IndexedMatrixValue>();
+		ArrayList<IndexedMatrixValue> out = new ArrayList<>();
 		LibMatrixReorg.rmempty(inData, inOffset, _rmRows, _len, blockRowFactor, blockColFactor, out);
 		
 		//put results into cache map

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/mr/ReorgInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/ReorgInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/ReorgInstruction.java
index c9c5629..c90c45c 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/ReorgInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/ReorgInstruction.java
@@ -150,7 +150,7 @@ public class ReorgInstruction extends UnaryMRInstructionBase {
 				else if( ((ReorgOperator)optr).fn instanceof RevIndex ) 
 				{
 					//execute reverse operation
-					ArrayList<IndexedMatrixValue> out = new ArrayList<IndexedMatrixValue>();
+					ArrayList<IndexedMatrixValue> out = new ArrayList<>();
 					LibMatrixReorg.rev(in, _mcIn.getRows(), _mcIn.getRowsPerBlock(), out);
 					
 					//output indexed matrix values

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/mr/ScalarInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/ScalarInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/ScalarInstruction.java
index 4d31671..58f6821 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/ScalarInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/ScalarInstruction.java
@@ -58,6 +58,7 @@ public class ScalarInstruction extends UnaryMRInstructionBase {
 		return new ScalarInstruction(sop, in, out, str);
 	}
 	
+	@Override
 	public void processInstruction(Class<? extends MatrixValue> valueClass, CachedValueMap cachedValues, 
 			IndexedMatrixValue tempValue, IndexedMatrixValue zeroInput, int blockRowFactor, int blockColFactor)
 		throws DMLRuntimeException

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateTernarySPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateTernarySPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateTernarySPInstruction.java
index eb97266..9ffe363 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateTernarySPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateTernarySPInstruction.java
@@ -150,7 +150,7 @@ public class AggregateTernarySPInstruction extends ComputationSPInstruction {
 			MatrixBlock in3 = arg0._2()._2();
 			
 			//execute aggregate ternary operation
-			return new Tuple2<MatrixIndexes, MatrixBlock>(new MatrixIndexes(1, ix.getColumnIndex()),
+			return new Tuple2<>(new MatrixIndexes(1, ix.getColumnIndex()),
 				in1.aggregateTernaryOperations(in1, in2, in3, new MatrixBlock(), _aggop, false));
 		}
 	}
@@ -176,7 +176,7 @@ public class AggregateTernarySPInstruction extends ComputationSPInstruction {
 			MatrixBlock in2 = arg0._2()._2();
 			
 			//execute aggregate ternary operation
-			return new Tuple2<MatrixIndexes,MatrixBlock>(new MatrixIndexes(1, ix.getColumnIndex()),
+			return new Tuple2<>(new MatrixIndexes(1, ix.getColumnIndex()),
 				in1.aggregateTernaryOperations(in1, in2, null, new MatrixBlock(), _aggop, false));
 		}
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateUnarySPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateUnarySPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateUnarySPInstruction.java
index 2bbc077..6b75080 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateUnarySPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/AggregateUnarySPInstruction.java
@@ -159,10 +159,10 @@ public class AggregateUnarySPInstruction extends UnarySPInstruction {
 			
 			//unary aggregate operation (always keep the correction)
 			OperationsOnMatrixValues.performAggregateUnary( ixIn, blkIn, 
-					  ixOut, blkOut, _op, _brlen, _bclen);
+					ixOut, blkOut, _op, _brlen, _bclen);
 			
 			//output new tuple
-			return new Tuple2<MatrixIndexes, MatrixBlock>(ixOut, blkOut);
+			return new Tuple2<>(ixOut, blkOut);
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGAlignedSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGAlignedSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGAlignedSPInstruction.java
index bc41c40..991b5c0 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGAlignedSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGAlignedSPInstruction.java
@@ -109,8 +109,8 @@ public class AppendGAlignedSPInstruction extends BinarySPInstruction {
 			throws Exception 
 		{	
 			long rix = _cbind ? kv._1.getRowIndex() : kv._1.getRowIndex() + _shiftBy;
-			long cix = _cbind ? kv._1.getColumnIndex() + _shiftBy : kv._1.getColumnIndex();			
-			return new Tuple2<MatrixIndexes, MatrixBlock>(new MatrixIndexes(rix, cix), kv._2);
+			long cix = _cbind ? kv._1.getColumnIndex() + _shiftBy : kv._1.getColumnIndex();
+			return new Tuple2<>(new MatrixIndexes(rix, cix), kv._2);
 		}
 	}
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java
index 831e707..fee21f3 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/AppendGSPInstruction.java
@@ -128,10 +128,10 @@ public class AppendGSPInstruction extends BinarySPInstruction {
 				MatrixBlock tmp = iterRight.next();
 				if( iterRight.hasNext() )
 					tmp.merge(iterRight.next(), false);
-				return new Tuple2<MatrixIndexes, MatrixBlock>(kv._1, tmp);
+				return new Tuple2<>(kv._1, tmp);
 			}
 			else if ( !iterRight.hasNext() ) {	
-				return new Tuple2<MatrixIndexes, MatrixBlock>(kv._1, iterLeft.next());
+				return new Tuple2<>(kv._1, iterLeft.next());
 			}
 			
 			MatrixBlock firstBlk = iterLeft.next();
@@ -149,7 +149,7 @@ public class AppendGSPInstruction extends BinarySPInstruction {
 			
 			//merge with sort since blocks might be in any order
 			firstBlk.merge(secondBlk, false);
-			return new Tuple2<MatrixIndexes, MatrixBlock>(kv._1, firstBlk);
+			return new Tuple2<>(kv._1, firstBlk);
 		}
 		
 	}
@@ -179,7 +179,7 @@ public class AppendGSPInstruction extends BinarySPInstruction {
 			throws Exception 
 		{
 			//common preparation
-			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> retVal = new ArrayList<Tuple2<MatrixIndexes,MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> retVal = new ArrayList<>();
 			MatrixIndexes ix = kv._1();
 			MatrixBlock in = kv._2();
 			int cutAt = _blen - _shiftBy;
@@ -194,7 +194,7 @@ public class AppendGSPInstruction extends BinarySPInstruction {
 					// The block is too small to be cut
 					MatrixBlock firstBlk = new MatrixBlock(in.getNumRows(), lblen1, true);
 					firstBlk = firstBlk.leftIndexingOperations(in, 0, in.getNumRows()-1, lblen1-in.getNumColumns(), lblen1-1, new MatrixBlock(), UpdateType.INPLACE_PINNED);
-					retVal.add(new Tuple2<MatrixIndexes, MatrixBlock>(firstIndex, firstBlk));
+					retVal.add(new Tuple2<>(firstIndex, firstBlk));
 				}
 				else {
 					// Since merge requires the dimensions matching, shifting = slicing + left indexing
@@ -206,9 +206,8 @@ public class AppendGSPInstruction extends BinarySPInstruction {
 					int llen2 = UtilFunctions.computeBlockSize(_outlen, secondIndex.getColumnIndex(), _blen);
 					MatrixBlock secondBlk = new MatrixBlock(in.getNumRows(), llen2, true);
 					secondBlk = secondBlk.leftIndexingOperations(secondSlicedBlk, 0, in.getNumRows()-1, 0, secondSlicedBlk.getNumColumns()-1, new MatrixBlock(), UpdateType.INPLACE_PINNED);
-					
-					retVal.add(new Tuple2<MatrixIndexes, MatrixBlock>(firstIndex, firstBlk));
-					retVal.add(new Tuple2<MatrixIndexes, MatrixBlock>(secondIndex, secondBlk));
+					retVal.add(new Tuple2<>(firstIndex, firstBlk));
+					retVal.add(new Tuple2<>(secondIndex, secondBlk));
 				}
 			}
 			else //rbind
@@ -221,7 +220,7 @@ public class AppendGSPInstruction extends BinarySPInstruction {
 					// The block is too small to be cut
 					MatrixBlock firstBlk = new MatrixBlock(lblen1, in.getNumColumns(), true);
 					firstBlk = firstBlk.leftIndexingOperations(in, lblen1-in.getNumRows(), lblen1-1, 0, in.getNumColumns()-1, new MatrixBlock(), UpdateType.INPLACE_PINNED);
-					retVal.add(new Tuple2<MatrixIndexes, MatrixBlock>(firstIndex, firstBlk));
+					retVal.add(new Tuple2<>(firstIndex, firstBlk));
 				}
 				else {
 					// Since merge requires the dimensions matching, shifting = slicing + left indexing
@@ -234,8 +233,8 @@ public class AppendGSPInstruction extends BinarySPInstruction {
 					MatrixBlock secondBlk = new MatrixBlock(lblen2, in.getNumColumns(), true);
 					secondBlk = secondBlk.leftIndexingOperations(secondSlicedBlk, 0, secondSlicedBlk.getNumRows()-1, 0, in.getNumColumns()-1, new MatrixBlock(), UpdateType.INPLACE_PINNED);
 					
-					retVal.add(new Tuple2<MatrixIndexes, MatrixBlock>(firstIndex, firstBlk));
-					retVal.add(new Tuple2<MatrixIndexes, MatrixBlock>(secondIndex, secondBlk));
+					retVal.add(new Tuple2<>(firstIndex, firstBlk));
+					retVal.add(new Tuple2<>(secondIndex, secondBlk));
 				}
 			}
 			

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/CpmmSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/CpmmSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/CpmmSPInstruction.java
index e3cf9b6..7b4976a 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/CpmmSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/CpmmSPInstruction.java
@@ -139,7 +139,7 @@ public class CpmmSPInstruction extends BinarySPInstruction {
 			value.set(arg0._1(), new MatrixBlock(arg0._2()));
 			
 			Long key = _left ? arg0._1.getColumnIndex() : arg0._1.getRowIndex();
-			return new Tuple2<Long, IndexedMatrixValue>(key, value);
+			return new Tuple2<>(key, value);
 		}	
 	}
 
@@ -169,8 +169,8 @@ public class CpmmSPInstruction extends BinarySPInstruction {
 			
 			//return target block
 			ixOut.setIndexes(arg0._2()._1().getIndexes().getRowIndex(), 
-					         arg0._2()._2().getIndexes().getColumnIndex());
-			return new Tuple2<MatrixIndexes, MatrixBlock>( ixOut, blkOut );
+				arg0._2()._2().getIndexes().getColumnIndex());
+			return new Tuple2<>( ixOut, blkOut );
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeAggregateSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeAggregateSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeAggregateSPInstruction.java
index 6d30254..7e0ac0e 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeAggregateSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeAggregateSPInstruction.java
@@ -128,7 +128,7 @@ public class CumulativeAggregateSPInstruction extends AggregateUnarySPInstructio
 			ixOut.setIndexes(rixOut, ixOut.getColumnIndex());
 			
 			//output new tuple
-			return new Tuple2<MatrixIndexes, MatrixBlock>(ixOut, blkOut2);
+			return new Tuple2<>(ixOut, blkOut2);
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeOffsetSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeOffsetSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeOffsetSPInstruction.java
index 65f5251..7574228 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeOffsetSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/CumulativeOffsetSPInstruction.java
@@ -132,7 +132,7 @@ public class CumulativeOffsetSPInstruction extends BinarySPInstruction {
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call( Tuple2<MatrixIndexes, MatrixBlock> arg0 ) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes, MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<>();
 			
 			MatrixIndexes ixIn = arg0._1();
 			MatrixBlock blkIn = arg0._2();
@@ -149,8 +149,8 @@ public class CumulativeOffsetSPInstruction extends BinarySPInstruction {
 					for( int j=0; j<blkIn.getNumColumns(); j++ )
 						tmpblk.appendValue(0, j, _initValue);
 				}
-				ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(tmpix, tmpblk));
-			}	
+				ret.add(new Tuple2<>(tmpix, tmpblk));
+			}
 			
 			//output splitting (shift by one), preaggregated offset used by subsequent block
 			for( int i=0; i<blkIn.getNumRows(); i++ )
@@ -159,7 +159,7 @@ public class CumulativeOffsetSPInstruction extends BinarySPInstruction {
 					MatrixIndexes tmpix = new MatrixIndexes(rixOffset+i+2, ixIn.getColumnIndex());
 					MatrixBlock tmpblk = new MatrixBlock(1, blkIn.getNumColumns(), blkIn.isInSparseFormat());
 					blkIn.sliceOperations(i, i, 0, blkIn.getNumColumns()-1, tmpblk);	
-					ret.add(new Tuple2<MatrixIndexes,MatrixBlock>(tmpix, tmpblk));
+					ret.add(new Tuple2<>(tmpix, tmpblk));
 				}
 			
 			return ret.iterator();

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameAppendMSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameAppendMSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameAppendMSPInstruction.java
index be5d12f..3f95e8c 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameAppendMSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameAppendMSPInstruction.java
@@ -122,7 +122,7 @@ public class FrameAppendMSPInstruction extends AppendMSPInstruction {
 				
 				FrameBlock in2 = _pm.getBlock(rowix, colix);
 				FrameBlock out = in1.appendOperations(in2, new FrameBlock(), true); //cbind
-				return new Tuple2<Long,FrameBlock>(ix, out);
+				return new Tuple2<>(ix, out);
 			}			
 		}
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameAppendRSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameAppendRSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameAppendRSPInstruction.java
index 6819367..b386669 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameAppendRSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameAppendRSPInstruction.java
@@ -110,7 +110,7 @@ public class FrameAppendRSPInstruction extends AppendRSPInstruction {
 		public Tuple2<Long,FrameBlock> call(Tuple2<Long, FrameBlock> arg0)
 			throws Exception 
 		{
-			return new Tuple2<Long, FrameBlock>(arg0._1()+_offset, arg0._2());
+			return new Tuple2<>(arg0._1()+_offset, arg0._2());
 		}
 	}
 
@@ -129,14 +129,11 @@ public class FrameAppendRSPInstruction extends AppendRSPInstruction {
 			throws Exception 
 		{
 			FrameBlock resultBlock = new FrameBlock(arg0._2().getSchema());
-						
 			long index = (arg0._1()/OptimizerUtils.DEFAULT_FRAME_BLOCKSIZE)*OptimizerUtils.DEFAULT_FRAME_BLOCKSIZE+1;
 			int maxRows = (int) (_rows - index+1 >= OptimizerUtils.DEFAULT_FRAME_BLOCKSIZE?OptimizerUtils.DEFAULT_FRAME_BLOCKSIZE:_rows - index+1);
-
 			resultBlock.ensureAllocatedColumns(maxRows);
 			resultBlock = resultBlock.leftIndexingOperations(arg0._2(), 0, maxRows-1, 0, arg0._2().getNumColumns()-1, new FrameBlock());
-			
-			return new Tuple2<Long, FrameBlock>(index, resultBlock);
+			return new Tuple2<>(index, resultBlock);
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameIndexingSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameIndexingSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameIndexingSPInstruction.java
index ad020bb..2daaad5 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameIndexingSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/FrameIndexingSPInstruction.java
@@ -199,11 +199,11 @@ public class FrameIndexingSPInstruction extends IndexingSPInstruction {
 		public Iterator<Tuple2<Long, FrameBlock>> call(Tuple2<Long, FrameBlock> rightKV) 
 			throws Exception 
 		{
-			Pair<Long,FrameBlock> in = SparkUtils.toIndexedFrameBlock(rightKV);			
-			ArrayList<Pair<Long,FrameBlock>> out = new ArrayList<Pair<Long,FrameBlock>>();
+			Pair<Long,FrameBlock> in = SparkUtils.toIndexedFrameBlock(rightKV);
+			ArrayList<Pair<Long,FrameBlock>> out = new ArrayList<>();
 			OperationsOnMatrixValues.performShift(in, _ixrange, _brlen, _bclen, _rlen, _clen, out);
 			return SparkUtils.fromIndexedFrameBlock(out).iterator();
-		}		
+		}
 	}
 
 	private static class ZeroOutLHS implements PairFlatMapFunction<Tuple2<Long,FrameBlock>, Long,FrameBlock> 
@@ -228,7 +228,7 @@ public class FrameIndexingSPInstruction extends IndexingSPInstruction {
 		public Iterator<Tuple2<Long, FrameBlock>> call(Tuple2<Long, FrameBlock> kv) 
 			throws Exception 
 		{
-			ArrayList<Pair<Long,FrameBlock>> out = new ArrayList<Pair<Long,FrameBlock>>();
+			ArrayList<Pair<Long,FrameBlock>> out = new ArrayList<>();
 
 			IndexRange curBlockRange = new IndexRange(_ixrange.rowStart, _ixrange.rowEnd, _ixrange.colStart, _ixrange.colEnd);
 			
@@ -240,7 +240,7 @@ public class FrameIndexingSPInstruction extends IndexingSPInstruction {
 			// Starting local location (0-based) of target block where to start copy. 
 			int iRowStartDest = UtilFunctions.computeCellInBlock(kv._1, _brlen);
 			for(int iRowStartSrc = 0; iRowStartSrc<kv._2.getNumRows(); iRowStartSrc += iMaxRowsToCopy, lGblStartRow += _brlen) {
-				IndexRange range = UtilFunctions.getSelectedRangeForZeroOut(new Pair<Long, FrameBlock>(kv._1, kv._2), _brlen, _bclen, curBlockRange, lGblStartRow-1, lGblStartRow);
+				IndexRange range = UtilFunctions.getSelectedRangeForZeroOut(new Pair<>(kv._1, kv._2), _brlen, _bclen, curBlockRange, lGblStartRow-1, lGblStartRow);
 				if(range.rowStart == -1 && range.rowEnd == -1 && range.colStart == -1 && range.colEnd == -1) {
 					throw new Exception("Error while getting range for zero-out");
 				}
@@ -253,7 +253,7 @@ public class FrameIndexingSPInstruction extends IndexingSPInstruction {
 				
 				// Zero out the applicable range in this block
 				zeroBlk = (FrameBlock) kv._2.zeroOutOperations(new FrameBlock(), range, _complement, iRowStartSrc, iRowStartDest, iMaxRows, iMaxRowsToCopy);
-				out.add(new Pair<Long, FrameBlock>(lGblStartRow, zeroBlk));
+				out.add(new Pair<>(lGblStartRow, zeroBlk));
 				curBlockRange.rowStart =  lGblStartRow + _brlen;
 				iRowStartDest = UtilFunctions.computeCellInBlock(iRowStartDest+iMaxRowsToCopy+1, _brlen);
 			}
@@ -331,7 +331,7 @@ public class FrameIndexingSPInstruction extends IndexingSPInstruction {
 					rhs_ru_pb = Math.min(rhs_ru, rhs_ru_pb+brlen);
 				}
 				
-				return new Tuple2<Long, FrameBlock>(arg._1, ret);
+				return new Tuple2<>(arg._1, ret);
 			}
 		}
 	}
@@ -364,7 +364,7 @@ public class FrameIndexingSPInstruction extends IndexingSPInstruction {
 			
 			//return block with shifted row index
 			long rowindex2 = (rowindex > _ixrange.rowStart) ? rowindex-_ixrange.rowStart+1 : 1; 
-			return new Tuple2<Long,FrameBlock>(rowindex2, out);
+			return new Tuple2<>(rowindex2, out);
 		}		
 	}
 
@@ -407,7 +407,7 @@ public class FrameIndexingSPInstruction extends IndexingSPInstruction {
 						(int)_ixrange.colStart-1, (int)_ixrange.colEnd-1, new FrameBlock());
 				
 				//return block with shifted row index
-				return new Tuple2<Long,FrameBlock>(rowindex, out);		
+				return new Tuple2<>(rowindex, out);
 			}			
 		}
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmSPInstruction.java
index 9fa2a14..75d674f 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/MapmmSPInstruction.java
@@ -278,7 +278,7 @@ public class MapmmSPInstruction extends BinarySPInstruction {
 				
 				//execute matrix-vector mult
 				OperationsOnMatrixValues.performAggregateBinary( 
-						new MatrixIndexes(1,ixIn.getRowIndex()), left, ixIn, blkIn, ixOut, blkOut, _op);						
+						new MatrixIndexes(1,ixIn.getRowIndex()), left, ixIn, blkIn, ixOut, blkOut, _op);
 			}
 			else //if( _type == CacheType.RIGHT )
 			{
@@ -287,11 +287,11 @@ public class MapmmSPInstruction extends BinarySPInstruction {
 				
 				//execute matrix-vector mult
 				OperationsOnMatrixValues.performAggregateBinary(
-						ixIn, blkIn, new MatrixIndexes(ixIn.getColumnIndex(),1), right, ixOut, blkOut, _op);					
+						ixIn, blkIn, new MatrixIndexes(ixIn.getColumnIndex(),1), right, ixOut, blkOut, _op);
 			}
 			
 			//output new tuple
-			return new Tuple2<MatrixIndexes, MatrixBlock>(ixOut, blkOut);
+			return new Tuple2<>(ixOut, blkOut);
 		}
 	}
 
@@ -394,7 +394,7 @@ public class MapmmSPInstruction extends BinarySPInstruction {
 					MatrixBlock left = _pbc.getBlock(1, (int)ixIn.getRowIndex());
 					
 					//execute index preserving matrix multiplication
-					left.aggregateBinaryOperations(left, blkIn, blkOut, _op);						
+					left.aggregateBinaryOperations(left, blkIn, blkOut, _op);
 				}
 				else //if( _type == CacheType.RIGHT )
 				{
@@ -405,8 +405,8 @@ public class MapmmSPInstruction extends BinarySPInstruction {
 					blkIn.aggregateBinaryOperations(blkIn, right, blkOut, _op);	
 				}
 			
-				return new Tuple2<MatrixIndexes,MatrixBlock>(ixIn, blkOut);
-			}			
+				return new Tuple2<>(ixIn, blkOut);
+			}
 		}
 	}
 
@@ -432,7 +432,7 @@ public class MapmmSPInstruction extends BinarySPInstruction {
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call( Tuple2<MatrixIndexes, MatrixBlock> arg0 ) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes, MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<>();
 			
 			MatrixIndexes ixIn = arg0._1();
 			MatrixBlock blkIn = arg0._2();
@@ -449,9 +449,9 @@ public class MapmmSPInstruction extends BinarySPInstruction {
 					
 					//execute matrix-vector mult
 					OperationsOnMatrixValues.performAggregateBinary( 
-							new MatrixIndexes(i,ixIn.getRowIndex()), left, ixIn, blkIn, ixOut, blkOut, _op);	
+							new MatrixIndexes(i,ixIn.getRowIndex()), left, ixIn, blkIn, ixOut, blkOut, _op);
 					
-					ret.add(new Tuple2<MatrixIndexes, MatrixBlock>(ixOut, blkOut));
+					ret.add(new Tuple2<>(ixOut, blkOut));
 				}
 			}
 			else //if( _type == CacheType.RIGHT )
@@ -467,9 +467,9 @@ public class MapmmSPInstruction extends BinarySPInstruction {
 					
 					//execute matrix-vector mult
 					OperationsOnMatrixValues.performAggregateBinary(
-							ixIn, blkIn, new MatrixIndexes(ixIn.getColumnIndex(),j), right, ixOut, blkOut, _op);					
+							ixIn, blkIn, new MatrixIndexes(ixIn.getColumnIndex(),j), right, ixOut, blkOut, _op);
 				
-					ret.add(new Tuple2<MatrixIndexes, MatrixBlock>(ixOut, blkOut));
+					ret.add(new Tuple2<>(ixOut, blkOut));
 				}
 			}
 			

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixAppendMSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixAppendMSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixAppendMSPInstruction.java
index 4864d9e..affd145 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixAppendMSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixAppendMSPInstruction.java
@@ -124,7 +124,7 @@ public class MatrixAppendMSPInstruction extends AppendMSPInstruction {
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Tuple2<MatrixIndexes, MatrixBlock> kv) 
 			throws Exception 
 		{
-			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes, MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<>();
 			
 			IndexedMatrixValue in1 = SparkUtils.toIndexedMatrixBlock(kv);
 			MatrixIndexes ix = in1.getIndexes();
@@ -143,21 +143,19 @@ public class MatrixAppendMSPInstruction extends AppendMSPInstruction {
 				
 				//output shallow copy of rhs block
 				if( _cbind ) {
-					ret.add( new Tuple2<MatrixIndexes, MatrixBlock>(
-							new MatrixIndexes(ix.getRowIndex(), ix.getColumnIndex()+1),
-							_pm.getBlock((int)ix.getRowIndex(), 1)) );
+					ret.add( new Tuple2<>(new MatrixIndexes(ix.getRowIndex(), ix.getColumnIndex()+1),
+						_pm.getBlock((int)ix.getRowIndex(), 1)) );
 				}
 				else { //rbind
-					ret.add( new Tuple2<MatrixIndexes, MatrixBlock>(
-							new MatrixIndexes(ix.getRowIndex()+1, ix.getColumnIndex()),
-							_pm.getBlock(1, (int)ix.getColumnIndex())) );	
+					ret.add( new Tuple2<>(new MatrixIndexes(ix.getRowIndex()+1, ix.getColumnIndex()),
+						_pm.getBlock(1, (int)ix.getColumnIndex())) );
 				}
 			}
 			//case 3: append operation on boundary block
 			else 
 			{
 				//allocate space for the output value
-				ArrayList<IndexedMatrixValue> outlist=new ArrayList<IndexedMatrixValue>(2);
+				ArrayList<IndexedMatrixValue> outlist=new ArrayList<>(2);
 				IndexedMatrixValue first = new IndexedMatrixValue(new MatrixIndexes(ix), new MatrixBlock());
 				outlist.add(first);
 				
@@ -237,12 +235,12 @@ public class MatrixAppendMSPInstruction extends AppendMSPInstruction {
 				//case 3: append operation on boundary block
 				else {
 					int rowix = _cbind ? (int)ix.getRowIndex() : 1;
-					int colix = _cbind ? 1 : (int)ix.getColumnIndex();					
+					int colix = _cbind ? 1 : (int)ix.getColumnIndex();
 					MatrixBlock in2 = _pm.getBlock(rowix, colix);
 					MatrixBlock out = in1.appendOperations(in2, new MatrixBlock(), _cbind);
-					return new Tuple2<MatrixIndexes,MatrixBlock>(ix, out);
-				}	
-			}			
+					return new Tuple2<>(ix, out);
+				}
+			}
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixIndexingSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixIndexingSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixIndexingSPInstruction.java
index 540ac74..dd7f2bd 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixIndexingSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixIndexingSPInstruction.java
@@ -190,7 +190,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 	private static MatrixBlock multiBlockIndexing(JavaPairRDD<MatrixIndexes,MatrixBlock> in1, 
 			 MatrixCharacteristics mcIn, MatrixCharacteristics mcOut, IndexRange ixrange) throws DMLRuntimeException {
 		//create list of all required matrix indexes
-		List<MatrixIndexes> filter = new ArrayList<MatrixIndexes>();
+		List<MatrixIndexes> filter = new ArrayList<>();
 		long rlix = UtilFunctions.computeBlockIndex(ixrange.rowStart, mcIn.getRowsPerBlock());
 		long ruix = UtilFunctions.computeBlockIndex(ixrange.rowEnd, mcIn.getRowsPerBlock());
 		long clix = UtilFunctions.computeBlockIndex(ixrange.colStart, mcIn.getColsPerBlock());
@@ -324,8 +324,8 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 		public Iterator<Tuple2<MatrixIndexes, MatrixBlock>> call(Tuple2<MatrixIndexes, MatrixBlock> rightKV) 
 			throws Exception 
 		{
-			IndexedMatrixValue in = SparkUtils.toIndexedMatrixBlock(rightKV);			
-			ArrayList<IndexedMatrixValue> out = new ArrayList<IndexedMatrixValue>();
+			IndexedMatrixValue in = SparkUtils.toIndexedMatrixBlock(rightKV);
+			ArrayList<IndexedMatrixValue> out = new ArrayList<>();
 			OperationsOnMatrixValues.performShift(in, _ixrange, _brlen, _bclen, _rlen, _clen, out);
 			return SparkUtils.fromIndexedMatrixBlock(out).iterator();
 		}		
@@ -361,7 +361,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 			}
 			
 			MatrixBlock zeroBlk = (MatrixBlock) kv._2.zeroOutOperations(new MatrixBlock(), range, _complement);
-			return new Tuple2<MatrixIndexes, MatrixBlock>(kv._1, zeroBlk);
+			return new Tuple2<>(kv._1, zeroBlk);
 		}
 	}
 
@@ -421,7 +421,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 					MatrixBlock tmp = left.leftIndexingOperations(right, 
 							rl, ru, cl, cu, new MatrixBlock(), UpdateType.COPY);
 					
-					return new Tuple2<MatrixIndexes, MatrixBlock>(ix, tmp);
+					return new Tuple2<>(ix, tmp);
 				}
 				else //LixCacheType.RIGHT
 				{
@@ -446,7 +446,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 					int lhs_lcl = UtilFunctions.computeCellInBlock(lhs_cl, _bclen);
 					int lhs_lcu = UtilFunctions.computeCellInBlock(lhs_cu, _bclen);
 					MatrixBlock ret = arg._2.leftIndexingOperations(slicedRHSMatBlock, lhs_lrl, lhs_lru, lhs_lcl, lhs_lcu, new MatrixBlock(), UpdateType.COPY);
-					return new Tuple2<MatrixIndexes, MatrixBlock>(arg._1, ret);
+					return new Tuple2<>(arg._1, ret);
 				}
 			}
 		}
@@ -490,10 +490,10 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 			//create return matrix block (via shallow copy or slice)
 			if( lrl == 0 && lru == block.getNumRows()-1
 				&& lcl == 0 && lcu == block.getNumColumns()-1 ) {
-				return new Tuple2<MatrixIndexes, MatrixBlock>(ixOut, block);
+				return new Tuple2<>(ixOut, block);
 			}
 			else {
-				return new Tuple2<MatrixIndexes, MatrixBlock>(ixOut, 
+				return new Tuple2<>(ixOut, 
 					block.sliceOperations(lrl, lru, lcl, lcu, new MatrixBlock()));
 			}
 		}		
@@ -518,7 +518,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 			throws Exception 
 		{	
 			IndexedMatrixValue in = SparkUtils.toIndexedMatrixBlock(kv);
-			ArrayList<IndexedMatrixValue> outlist = new ArrayList<IndexedMatrixValue>();
+			ArrayList<IndexedMatrixValue> outlist = new ArrayList<>();
 			OperationsOnMatrixValues.performSlice(in, _ixrange, _brlen, _bclen, outlist);
 			return SparkUtils.fromIndexedMatrixBlock(outlist).iterator();
 		}		
@@ -546,7 +546,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 			throws Exception 
 		{	
 			IndexedMatrixValue in = new IndexedMatrixValue(kv._1(), kv._2());
-			ArrayList<IndexedMatrixValue> outlist = new ArrayList<IndexedMatrixValue>();
+			ArrayList<IndexedMatrixValue> outlist = new ArrayList<>();
 			OperationsOnMatrixValues.performSlice(in, _ixrange, _brlen, _bclen, outlist);
 			return SparkUtils.fromIndexedMatrixBlock(outlist.get(0));
 		}		
@@ -585,12 +585,12 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 			{
 				IndexedMatrixValue in = SparkUtils.toIndexedMatrixBlock(arg);
 				
-				ArrayList<IndexedMatrixValue> outlist = new ArrayList<IndexedMatrixValue>();
+				ArrayList<IndexedMatrixValue> outlist = new ArrayList<>();
 				OperationsOnMatrixValues.performSlice(in, _ixrange, _brlen, _bclen, outlist);
 				
 				assert(outlist.size() == 1); //1-1 row/column block indexing
 				return SparkUtils.fromIndexedMatrixBlock(outlist.get(0));
-			}			
+			}
 		}
 	}
 	
@@ -607,7 +607,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 			JavaPairRDD<MatrixIndexes,MatrixBlock> in, List<MatrixIndexes> filter )
 	{
 		//build hashset of required partition ids
-		HashSet<Integer> flags = new HashSet<Integer>();
+		HashSet<Integer> flags = new HashSet<>();
 		Partitioner partitioner = in.rdd().partitioner().get();
 		for( MatrixIndexes key : filter )
 			flags.add(partitioner.getPartition(key));
@@ -618,7 +618,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 				PartitionPruningRDD.create(in.rdd(), f);
 
 		//wrap output into java pair rdd
-		return new JavaPairRDD<MatrixIndexes,MatrixBlock>(ppRDD, 
+		return new JavaPairRDD<>(ppRDD, 
 				ClassManifestFactory.fromClass(MatrixIndexes.class), 
 				ClassManifestFactory.fromClass(MatrixBlock.class));
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixReshapeSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixReshapeSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixReshapeSPInstruction.java
index 9769792..3dc44f6 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixReshapeSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixReshapeSPInstruction.java
@@ -133,7 +133,7 @@ public class MatrixReshapeSPInstruction extends UnarySPInstruction {
 			IndexedMatrixValue in = SparkUtils.toIndexedMatrixBlock(arg0);
 			
 			//execute actual reshape operation
-			ArrayList<IndexedMatrixValue> out = new ArrayList<IndexedMatrixValue>();			
+			ArrayList<IndexedMatrixValue> out = new ArrayList<>();
 			out = LibMatrixReorg.reshape(in, _mcIn, out, _mcOut, _byrow);
 
 			//output conversion (for compatibility w/ rdd schema)

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/PMapmmSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/PMapmmSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/PMapmmSPInstruction.java
index 1fd690f..6c037ff 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/PMapmmSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/PMapmmSPInstruction.java
@@ -157,7 +157,7 @@ public class PMapmmSPInstruction extends BinarySPInstruction {
 		{
 			long rix = arg0._1().getRowIndex()-_offset;
 			MatrixIndexes ixout = new MatrixIndexes(rix, arg0._1().getColumnIndex());
-			return new Tuple2<MatrixIndexes,MatrixBlock>(ixout, arg0._2());
+			return new Tuple2<>(ixout, arg0._2());
 		}
 	}
 
@@ -191,7 +191,7 @@ public class PMapmmSPInstruction extends BinarySPInstruction {
 			MatrixIndexes ixOut = new MatrixIndexes();
 			MatrixBlock blkOut = new MatrixBlock();
 			
-			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<Tuple2<MatrixIndexes, MatrixBlock>>();
+			ArrayList<Tuple2<MatrixIndexes, MatrixBlock>> ret = new ArrayList<>();
 			
 			//get the right hand side matrix
 			for( int i=1; i<=pm.getNumRowBlocks(); i++ ) {
@@ -199,11 +199,11 @@ public class PMapmmSPInstruction extends BinarySPInstruction {
 			
 				//execute matrix-vector mult
 				OperationsOnMatrixValues.performAggregateBinary( 
-						new MatrixIndexes(i,ixIn.getRowIndex()), left, ixIn, blkIn, ixOut, blkOut, _op);						
+						new MatrixIndexes(i,ixIn.getRowIndex()), left, ixIn, blkIn, ixOut, blkOut, _op);
 				
 				//output new tuple
 				ixOut.setIndexes(_offset+i, ixOut.getColumnIndex());
-				ret.add(new Tuple2<MatrixIndexes, MatrixBlock>(ixOut, blkOut));
+				ret.add(new Tuple2<>(ixOut, blkOut));
 			}
 			
 			return ret.iterator();

http://git-wip-us.apache.org/repos/asf/systemml/blob/e106966a/src/main/java/org/apache/sysml/runtime/instructions/spark/ParameterizedBuiltinSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/ParameterizedBuiltinSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/ParameterizedBuiltinSPInstruction.java
index 216bdc1..fc1ed48 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/ParameterizedBuiltinSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/ParameterizedBuiltinSPInstruction.java
@@ -100,7 +100,7 @@ public class ParameterizedBuiltinSPInstruction extends ComputationSPInstruction
 	
 	public static HashMap<String, String> constructParameterMap(String[] params) {
 		// process all elements in "params" except first(opcode) and last(output)
-		HashMap<String,String> paramMap = new HashMap<String,String>();
+		HashMap<String,String> paramMap = new HashMap<>();
 		
 		// all parameters are of form <name=value>
 		String[] parts;
@@ -125,14 +125,14 @@ public class ParameterizedBuiltinSPInstruction extends ComputationSPInstruction
 			CPOperand groups = new CPOperand( parts[2] );
 			CPOperand out = new CPOperand( parts[3] );
 
-			HashMap<String,String> paramsMap = new HashMap<String, String>();
+			HashMap<String,String> paramsMap = new HashMap<>();
 			paramsMap.put(Statement.GAGG_TARGET, target.getName());
 			paramsMap.put(Statement.GAGG_GROUPS, groups.getName());
 			paramsMap.put(Statement.GAGG_NUM_GROUPS, parts[4]);
 			
 			Operator op = new AggregateOperator(0, KahanPlus.getKahanPlusFnObject(), true, CorrectionLocationType.LASTCOLUMN);
 			
-			return new ParameterizedBuiltinSPInstruction(op, paramsMap, out, opcode, str, false);		
+			return new ParameterizedBuiltinSPInstruction(op, paramsMap, out, opcode, str, false);
 		}
 		else
 		{
@@ -544,7 +544,7 @@ public class ParameterizedBuiltinSPInstruction extends ComputationSPInstruction
 			IndexedMatrixValue offsets = SparkUtils.toIndexedMatrixBlock(arg0._1(),arg0._2()._2());
 			
 			//execute remove empty operations
-			ArrayList<IndexedMatrixValue> out = new ArrayList<IndexedMatrixValue>();
+			ArrayList<IndexedMatrixValue> out = new ArrayList<>();
 			LibMatrixReorg.rmempty(data, offsets, _rmRows, _len, _brlen, _bclen, out);
 
 			//prepare and return outputs
@@ -586,7 +586,7 @@ public class ParameterizedBuiltinSPInstruction extends ComputationSPInstruction
 				offsets = SparkUtils.toIndexedMatrixBlock(arg0._1(), _off.getBlock(1, (int)arg0._1().getColumnIndex()));
 			
 			//execute remove empty operations
-			ArrayList<IndexedMatrixValue> out = new ArrayList<IndexedMatrixValue>();
+			ArrayList<IndexedMatrixValue> out = new ArrayList<>();
 			LibMatrixReorg.rmempty(data, offsets, _rmRows, _len, _brlen, _bclen, out);
 
 			//prepare and return outputs
@@ -623,7 +623,7 @@ public class ParameterizedBuiltinSPInstruction extends ComputationSPInstruction
 			IndexedMatrixValue data = SparkUtils.toIndexedMatrixBlock(arg0._1(),arg0._2());
 			
 			//execute rexpand operations
-			ArrayList<IndexedMatrixValue> out = new ArrayList<IndexedMatrixValue>();
+			ArrayList<IndexedMatrixValue> out = new ArrayList<>();
 			LibMatrixReorg.rexpand(data, _maxVal, _dirRows, _cast, _ignore, _brlen, _bclen, out);
 			
 			//prepare and return outputs
@@ -661,7 +661,7 @@ public class ParameterizedBuiltinSPInstruction extends ComputationSPInstruction
 			
 			//execute map grouped aggregate operations
 			IndexedMatrixValue in1 = SparkUtils.toIndexedMatrixBlock(ix, target);
-			ArrayList<IndexedMatrixValue> outlist = new ArrayList<IndexedMatrixValue>();
+			ArrayList<IndexedMatrixValue> outlist = new ArrayList<>();
 			OperationsOnMatrixValues.performMapGroupedAggregate(_op, in1, groups, _ngroups, _brlen, _bclen, outlist);
 			
 			//output all result blocks
@@ -781,7 +781,7 @@ public class ParameterizedBuiltinSPInstruction extends ComputationSPInstruction
 			}
 			
 			//convert to frameblock to reuse frame-matrix reblock
-			return new Tuple2<Long, FrameBlock>(key, 
+			return new Tuple2<>(key, 
 					DataConverter.convertToFrameBlock(tmp));
 		}
 	}
@@ -821,7 +821,7 @@ public class ParameterizedBuiltinSPInstruction extends ComputationSPInstruction
 				rmRows += valid ? 0 : 1;
 			}
 			
-			return new Tuple2<Long, Long>(key, rmRows);
+			return new Tuple2<>(key, rmRows);
 		}
 	}
 
@@ -844,7 +844,7 @@ public class ParameterizedBuiltinSPInstruction extends ComputationSPInstruction
 			long rix = UtilFunctions.computeCellIndex(in._1().getRowIndex(), _brlen, 0);
 			FrameBlock fbout = _decoder.decode(in._2(), new FrameBlock(_decoder.getSchema()));
 			fbout.setColumnNames(Arrays.copyOfRange(_decoder.getColnames(), 0, fbout.getNumColumns()));
-			return new Tuple2<Long, FrameBlock>(rix, fbout);
+			return new Tuple2<>(rix, fbout);
 		}
 	}
 	
@@ -873,7 +873,7 @@ public class ParameterizedBuiltinSPInstruction extends ComputationSPInstruction
 			MatrixBlock out = new MatrixBlock(inBlk.getNumRows(), _clen, false);
 			out = out.leftIndexingOperations(inBlk, 0, inBlk.getNumRows()-1, cl, cu, null, UpdateType.INPLACE_PINNED);
 			
-			return new Tuple2<MatrixIndexes, MatrixBlock>(new MatrixIndexes(inIx.getRowIndex(), 1), out);
+			return new Tuple2<>(new MatrixIndexes(inIx.getRowIndex(), 1), out);
 		}
 	}