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 2018/02/26 07:35:11 UTC

[1/3] systemml git commit: [SYSTEMML-819] Fix missing matrix-matrix mult over compressed matrices

Repository: systemml
Updated Branches:
  refs/heads/master 53175c00e -> d16cc7cf8


[SYSTEMML-819] Fix missing matrix-matrix mult over compressed matrices

So far, we supported matrix-vector, vector-matrix, tsmm, mmchain, unary
aggregates, append, order statistics and scalar operations over
compressed matrices. All other operations decompress compressed matrices
and perform uncompressed operations. However, matrix-matrix
multiplications failed with exceptions due to a shared code path with
matrix-vector and vector-matrix multiplications.

This patch fixes this issue by general support for matrix-matrix
multiplications over compressed matrices. Right now, these operations
are emulated with repeated matrix-vector or vector-matrix
multiplications (similar to tsmm), which does not require decompression
but is NOT optimized for performance yet. Also in case there are two
compressed inputs, one of the inputs is still decompressed.

However, this already enables algorithms such as Kmeans and Mlogreg with
more than two classes over compressed matrices. For distributed
operations, the repeated matrix-vector operators are not too bad because
individual compressed blocks easily fit int L3 cache.


Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/ff8bb58f
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/ff8bb58f
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/ff8bb58f

Branch: refs/heads/master
Commit: ff8bb58fe8bcec711852c42245542c9955052a5c
Parents: 53175c0
Author: Matthias Boehm <mb...@gmail.com>
Authored: Sun Feb 25 23:23:57 2018 -0800
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Sun Feb 25 23:23:57 2018 -0800

----------------------------------------------------------------------
 .../runtime/compress/CompressedMatrixBlock.java |  72 +++--
 .../sysml/runtime/matrix/data/MatrixBlock.java  |   4 +
 .../compress/LargeMatrixMatrixMultTest.java     | 282 +++++++++++++++++++
 .../functions/compress/ZPackageSuite.java       |   1 +
 4 files changed, 340 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/ff8bb58f/src/main/java/org/apache/sysml/runtime/compress/CompressedMatrixBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/compress/CompressedMatrixBlock.java b/src/main/java/org/apache/sysml/runtime/compress/CompressedMatrixBlock.java
index edba26e..c5fbd35 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/CompressedMatrixBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/CompressedMatrixBlock.java
@@ -1095,25 +1095,25 @@ public class CompressedMatrixBlock extends MatrixBlock implements Externalizable
 	}
 	
 	@Override
-	public MatrixBlock aggregateBinaryOperations(MatrixBlock mv1, MatrixBlock mv2, MatrixBlock ret, AggregateBinaryOperator op)
+	public MatrixBlock aggregateBinaryOperations(MatrixBlock m1, MatrixBlock m2, MatrixBlock ret, AggregateBinaryOperator op)
 			throws DMLRuntimeException 
 	{
 		//call uncompressed matrix mult if necessary
 		if( !isCompressed() ) {
-			return super.aggregateBinaryOperations(mv1, mv2, ret, op);
+			return super.aggregateBinaryOperations(m1, m2, ret, op);
 		}
 	
 		//multi-threaded mm of single uncompressed colgroup
 		if( isSingleUncompressedGroup() ){
 			MatrixBlock tmp = ((ColGroupUncompressed)_colGroups.get(0)).getData();
-			return tmp.aggregateBinaryOperations(this==mv1?tmp:mv1, this==mv2?tmp:mv2, ret, op);
+			return tmp.aggregateBinaryOperations(this==m1?tmp:m1, this==m2?tmp:m2, ret, op);
 		}
 		
 		Timing time = LOG.isDebugEnabled() ? new Timing(true) : null;
 		
 		//setup meta data (dimensions, sparsity)
-		int rl = mv1.getNumRows();
-		int cl = mv2.getNumColumns();
+		int rl = m1.getNumRows();
+		int cl = m2.getNumColumns();
 		
 		//create output matrix block
 		if( ret==null )
@@ -1122,25 +1122,59 @@ public class CompressedMatrixBlock extends MatrixBlock implements Externalizable
 			ret.reset(rl, cl, false, rl*cl);
 		
 		//compute matrix mult
-		if( mv1.getNumRows()>1 && mv2.getNumColumns()==1 ) { //MV right
-			CompressedMatrixBlock cmb = (CompressedMatrixBlock)mv1;
-			MatrixBlock mb = (MatrixBlock) mv2;
+		if( m1.getNumRows()>1 && m2.getNumColumns()==1 ) { //MV right
+			CompressedMatrixBlock cmb = (CompressedMatrixBlock)m1;
 			if( op.getNumThreads()>1 )
-				cmb.rightMultByVector(mb, ret, op.getNumThreads());
+				cmb.rightMultByVector(m2, ret, op.getNumThreads());
 			else
-				cmb.rightMultByVector(mb, ret);
+				cmb.rightMultByVector(m2, ret);
 		}
-		else if( mv1.getNumRows()==1 && mv2.getNumColumns()>1 ) { //MV left
-			MatrixBlock mb = (MatrixBlock) mv1;
+		else if( m1.getNumRows()==1 && m2.getNumColumns()>1 ) { //MV left
 			if( op.getNumThreads()>1 )
-				leftMultByVectorTranspose(_colGroups, mb, ret, false, op.getNumThreads());
+				leftMultByVectorTranspose(_colGroups, m1, ret, false, op.getNumThreads());
 			else
-				leftMultByVectorTranspose(_colGroups, mb, ret, false, true);
-		}
-		else {
-			//NOTE: we could decompress and invoke super.aggregateBinary but for now
-			//we want to have an eager fail if this happens
-			throw new DMLRuntimeException("Unsupported matrix-matrix multiplication over compressed matrix block.");
+				leftMultByVectorTranspose(_colGroups, m1, ret, false, true);
+		}
+		else { //MM
+			//prepare the other input (including decompression if necessary)
+			boolean right = (m1 == this);
+			MatrixBlock that = right ? m2 : m1;
+			if( that instanceof CompressedMatrixBlock ) {
+				that = ((CompressedMatrixBlock)that).isCompressed() ?
+					((CompressedMatrixBlock)that).decompress() : that;
+			}
+			
+			//transpose for sequential repeated column access 
+			if( right ) {
+				that = LibMatrixReorg.transpose(that, new MatrixBlock(that.getNumColumns(),
+					that.getNumRows(), that.isInSparseFormat()), op.getNumThreads());
+			}
+			
+			MatrixBlock tmpIn = new MatrixBlock(1, that.getNumColumns(), false).allocateBlock();
+			MatrixBlock tmpOut = new MatrixBlock(right?rl:1, right?1:cl, false).allocateBlock();
+			if( right ) { //MM right
+				for(int i=0; i<that.getNumRows(); i++) { //on transpose
+					tmpIn = that.sliceOperations(i, i, 0, that.getNumColumns()-1, tmpIn);
+					MatrixBlock tmpIn2 = LibMatrixReorg.transpose(tmpIn, //meta data op
+						new MatrixBlock(tmpIn.getNumColumns(), tmpIn.getNumRows(), false));
+					tmpOut.reset(tmpOut.getNumRows(), tmpOut.getNumColumns());
+					if( op.getNumThreads()>1 )
+						rightMultByVector(tmpIn2, tmpOut, op.getNumThreads());
+					else
+						rightMultByVector(tmpIn2, tmpOut);
+					ret.leftIndexingOperations(tmpOut, 0, ret.getNumRows()-1, i, i, ret, UpdateType.INPLACE);
+				}
+			}
+			else { // MM left
+				for(int i=0; i<that.getNumRows(); i++) {
+					tmpIn = that.sliceOperations(i, i, 0, that.getNumColumns()-1, tmpIn);
+					if( op.getNumThreads()>1 )
+						leftMultByVectorTranspose(_colGroups, tmpIn, tmpOut, false, op.getNumThreads());
+					else
+						leftMultByVectorTranspose(_colGroups, tmpIn, tmpOut, false, true);
+					ret.leftIndexingOperations(tmpOut, i, i, 0, ret.getNumColumns()-1, ret, UpdateType.INPLACE);
+				}
+			}
 		}
 		
 		if( LOG.isDebugEnabled() )

http://git-wip-us.apache.org/repos/asf/systemml/blob/ff8bb58f/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
index 6d38a91..15e37e8 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
@@ -483,6 +483,10 @@ public class MatrixBlock extends MatrixValue implements CacheBlock, Externalizab
 		return (rlen == 1 || clen == 1);
 	}
 	
+	public long getLength() {
+		return (long)rlen * clen;
+	}
+	
 	@Override
 	public boolean isEmpty() {
 		return isEmptyBlock(false);

http://git-wip-us.apache.org/repos/asf/systemml/blob/ff8bb58f/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeMatrixMatrixMultTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeMatrixMatrixMultTest.java b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeMatrixMatrixMultTest.java
new file mode 100644
index 0000000..06c513a
--- /dev/null
+++ b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeMatrixMatrixMultTest.java
@@ -0,0 +1,282 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.sysml.test.integration.functions.compress;
+
+import org.apache.sysml.runtime.compress.BitmapEncoder;
+import org.apache.sysml.runtime.compress.CompressedMatrixBlock;
+import org.apache.sysml.runtime.functionobjects.Multiply;
+import org.apache.sysml.runtime.functionobjects.Plus;
+import org.apache.sysml.runtime.matrix.data.MatrixBlock;
+import org.apache.sysml.runtime.matrix.operators.AggregateBinaryOperator;
+import org.apache.sysml.runtime.matrix.operators.AggregateOperator;
+import org.apache.sysml.runtime.util.DataConverter;
+import org.apache.sysml.test.integration.AutomatedTestBase;
+import org.apache.sysml.test.utils.TestUtils;
+import org.junit.Test;
+
+public class LargeMatrixMatrixMultTest extends AutomatedTestBase
+{
+	private static final int rows = 5*BitmapEncoder.BITMAP_BLOCK_SZ;
+	private static final int cols = 20;
+	private static final int cols2 = 3;
+	private static final double sparsity1 = 0.9;
+	private static final double sparsity2 = 0.1;
+	private static final double sparsity3 = 0.0;
+	
+	public enum MultType {
+		LEFT,
+		RIGHT,
+	}
+	
+	public enum SparsityType {
+		DENSE,
+		SPARSE,
+		EMPTY,
+	}
+	
+	public enum ValueType {
+		RAND, //UC
+		CONST, //RLE
+		RAND_ROUND_OLE, //OLE
+		RAND_ROUND_DDC, //RLE
+	}
+	
+	@Override
+	public void setUp() {
+		
+	}
+	
+	@Test
+	public void testDenseRandDataCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.DENSE, ValueType.RAND, true);
+	}
+	
+	@Test
+	public void testSparseRandDataCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.SPARSE, ValueType.RAND, true);
+	}
+	
+	@Test
+	public void testEmptyCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.EMPTY, ValueType.RAND, true);
+	}
+	
+	@Test
+	public void testDenseRoundRandDataOLECompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.DENSE, ValueType.RAND_ROUND_OLE, true);
+	}
+	
+	@Test
+	public void testSparseRoundRandDataOLECompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.SPARSE, ValueType.RAND_ROUND_OLE, true);
+	}
+	
+	@Test
+	public void testDenseRoundRandDataDDCCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.DENSE, ValueType.RAND_ROUND_DDC, true);
+	}
+	
+	@Test
+	public void testSparseRoundRandDataDDCCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.SPARSE, ValueType.RAND_ROUND_DDC, true);
+	}
+	
+	@Test
+	public void testDenseConstantDataCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.DENSE, ValueType.CONST, true);
+	}
+	
+	@Test
+	public void testSparseConstDataCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.SPARSE, ValueType.CONST, true);
+	}
+	
+	@Test
+	public void testDenseRandDataNoCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.DENSE, ValueType.RAND, false);
+	}
+	
+	@Test
+	public void testSparseRandDataNoCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.SPARSE, ValueType.RAND, false);
+	}
+	
+	@Test
+	public void testEmptyNoCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.EMPTY, ValueType.RAND, false);
+	}
+	
+	@Test
+	public void testDenseRoundRandDataOLENoCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.DENSE, ValueType.RAND_ROUND_OLE, false);
+	}
+	
+	@Test
+	public void testSparseRoundRandDataOLENoCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.SPARSE, ValueType.RAND_ROUND_OLE, false);
+	}
+	
+	@Test
+	public void testDenseConstDataNoCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.DENSE, ValueType.CONST, false);
+	}
+	
+	@Test
+	public void testSparseConstDataNoCompressionRight() {
+		runMatrixVectorMultTest(MultType.RIGHT, SparsityType.SPARSE, ValueType.CONST, false);
+	}
+	
+	@Test
+	public void testDenseRandDataCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.DENSE, ValueType.RAND, true);
+	}
+	
+	@Test
+	public void testSparseRandDataCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.SPARSE, ValueType.RAND, true);
+	}
+	
+	@Test
+	public void testEmptyCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.EMPTY, ValueType.RAND, true);
+	}
+	
+	@Test
+	public void testDenseRoundRandDataOLECompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.DENSE, ValueType.RAND_ROUND_OLE, true);
+	}
+	
+	@Test
+	public void testSparseRoundRandDataOLECompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.SPARSE, ValueType.RAND_ROUND_OLE, true);
+	}
+	
+	@Test
+	public void testDenseRoundRandDataDDCCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.DENSE, ValueType.RAND_ROUND_DDC, true);
+	}
+	
+	@Test
+	public void testSparseRoundRandDataDDCCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.SPARSE, ValueType.RAND_ROUND_DDC, true);
+	}
+	
+	@Test
+	public void testDenseConstantDataCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.DENSE, ValueType.CONST, true);
+	}
+	
+	@Test
+	public void testSparseConstDataCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.SPARSE, ValueType.CONST, true);
+	}
+	
+	@Test
+	public void testDenseRandDataNoCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.DENSE, ValueType.RAND, false);
+	}
+	
+	@Test
+	public void testSparseRandDataNoCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.SPARSE, ValueType.RAND, false);
+	}
+	
+	@Test
+	public void testEmptyNoCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.EMPTY, ValueType.RAND, false);
+	}
+	
+	@Test
+	public void testDenseRoundRandDataOLENoCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.DENSE, ValueType.RAND_ROUND_OLE, false);
+	}
+	
+	@Test
+	public void testSparseRoundRandDataOLENoCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.SPARSE, ValueType.RAND_ROUND_OLE, false);
+	}
+	
+	@Test
+	public void testDenseConstDataNoCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.DENSE, ValueType.CONST, false);
+	}
+	
+	@Test
+	public void testSparseConstDataNoCompressionLeft() {
+		runMatrixVectorMultTest(MultType.LEFT, SparsityType.SPARSE, ValueType.CONST, false);
+	}
+	
+	private static void runMatrixVectorMultTest(MultType mtype, SparsityType sptype, ValueType vtype, boolean compress)
+	{
+		try
+		{
+			//prepare sparsity for input data
+			double sparsity = -1;
+			switch( sptype ){
+				case DENSE: sparsity = sparsity1; break;
+				case SPARSE: sparsity = sparsity2; break;
+				case EMPTY: sparsity = sparsity3; break;
+			}
+			
+			//generate input data
+			double min = (vtype==ValueType.CONST)? 10 : -10;
+			double[][] input = TestUtils.generateTestMatrix(rows, cols, min, 10, sparsity, 7);
+			if( vtype==ValueType.RAND_ROUND_OLE || vtype==ValueType.RAND_ROUND_DDC ) {
+				CompressedMatrixBlock.ALLOW_DDC_ENCODING = (vtype==ValueType.RAND_ROUND_DDC);
+				input = TestUtils.round(input);
+			}
+			
+			boolean right = (mtype == MultType.RIGHT);
+			MatrixBlock mb = DataConverter.convertToMatrixBlock(input);
+			MatrixBlock vect = DataConverter.convertToMatrixBlock(right?
+					TestUtils.generateTestMatrix(cols, cols2, -1, 1, 1.0, 3) :
+					TestUtils.generateTestMatrix(cols2, rows, -1, 1, 1.0, 3));
+			
+			//compress given matrix block
+			CompressedMatrixBlock cmb = new CompressedMatrixBlock(mb);
+			if( compress )
+				cmb.compress();
+			
+			//matrix-vector uncompressed
+			AggregateOperator aop = new AggregateOperator(0, Plus.getPlusFnObject());
+			AggregateBinaryOperator abop = new AggregateBinaryOperator(Multiply.getMultiplyFnObject(), aop);
+			MatrixBlock ret1 = right ?
+				mb.aggregateBinaryOperations(mb, vect, new MatrixBlock(), abop) :
+				vect.aggregateBinaryOperations(vect, mb, new MatrixBlock(), abop);
+			
+			//matrix-vector compressed
+			MatrixBlock ret2 = right ?
+				cmb.aggregateBinaryOperations(cmb, vect, new MatrixBlock(), abop) :
+				cmb.aggregateBinaryOperations(vect, cmb, new MatrixBlock(), abop);
+			
+			//compare result with input
+			double[][] d1 = DataConverter.convertToDoubleMatrix(ret1);
+			double[][] d2 = DataConverter.convertToDoubleMatrix(ret2);
+			TestUtils.compareMatrices(d1, d2,
+				right?rows:cols2, right?cols2:cols, 0.0000001);
+		}
+		catch(Exception ex) {
+			throw new RuntimeException(ex);
+		}
+		finally {
+			CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+		}
+	}
+}

http://git-wip-us.apache.org/repos/asf/systemml/blob/ff8bb58f/src/test_suites/java/org/apache/sysml/test/integration/functions/compress/ZPackageSuite.java
----------------------------------------------------------------------
diff --git a/src/test_suites/java/org/apache/sysml/test/integration/functions/compress/ZPackageSuite.java b/src/test_suites/java/org/apache/sysml/test/integration/functions/compress/ZPackageSuite.java
index a61cbbd..cd24cb5 100644
--- a/src/test_suites/java/org/apache/sysml/test/integration/functions/compress/ZPackageSuite.java
+++ b/src/test_suites/java/org/apache/sysml/test/integration/functions/compress/ZPackageSuite.java
@@ -43,6 +43,7 @@ import org.junit.runners.Suite;
 	CompressedLinregCG.class,
 	CompressedSerializationTest.class,
 	LargeCompressionTest.class,
+	LargeMatrixMatrixMultTest.class,
 	LargeMatrixVectorMultTest.class,
 	LargeParMatrixVectorMultTest.class,
 	LargeParUnaryAggregateTest.class,


[2/3] systemml git commit: [MINOR] Refactoring matrix block slice and append operations

Posted by mb...@apache.org.
http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameIndexingTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameIndexingTest.java b/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameIndexingTest.java
index 858c9d6..0f1ce12 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameIndexingTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameIndexingTest.java
@@ -103,10 +103,10 @@ public class FrameIndexingTest extends AutomatedTestBase
 			{
 				//matrix indexing
 				MatrixBlock mbA = DataConverter.convertToMatrixBlock(A);
-				mbC = mbA.sliceOperations(rl, ru, cl, cu, new MatrixBlock());
+				mbC = mbA.slice(rl, ru, cl, cu, new MatrixBlock());
 				
 				//frame indexing
-				frame3 = frame1.sliceOperations(rl, ru, cl, cu, new FrameBlock());
+				frame3 = frame1.slice(rl, ru, cl, cu, new FrameBlock());
 			}
 			else if( itype == IXType.LIX ) 
 			{

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/test/java/org/apache/sysml/test/integration/functions/mlcontext/DataFrameVectorFrameConversionTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/mlcontext/DataFrameVectorFrameConversionTest.java b/src/test/java/org/apache/sysml/test/integration/functions/mlcontext/DataFrameVectorFrameConversionTest.java
index 29bc8a3..3a6865a 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/mlcontext/DataFrameVectorFrameConversionTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/mlcontext/DataFrameVectorFrameConversionTest.java
@@ -310,7 +310,7 @@ public class DataFrameVectorFrameConversionTest extends AutomatedTestBase
 				}
 				else {
 					double[] tmp = DataConverter.convertToDoubleVector(
-							mb.sliceOperations(i, i, j, j+colsVector-1, new MatrixBlock()), false);
+							mb.slice(i, i, j, j+colsVector-1, new MatrixBlock()), false);
 					row[j2+off] = new DenseVector(tmp);
 					j += colsVector-1;
 				}

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/test/java/org/apache/sysml/test/integration/functions/mlcontext/DataFrameVectorScriptTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/mlcontext/DataFrameVectorScriptTest.java b/src/test/java/org/apache/sysml/test/integration/functions/mlcontext/DataFrameVectorScriptTest.java
index c17e0e2..d6f0d9d 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/mlcontext/DataFrameVectorScriptTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/mlcontext/DataFrameVectorScriptTest.java
@@ -299,7 +299,7 @@ public class DataFrameVectorScriptTest extends MLContextTestBase
 				}
 				else {
 					double[] tmp = DataConverter.convertToDoubleVector(
-							mb.sliceOperations(i, i, j, j+colsVector-1, new MatrixBlock()), false);
+							mb.slice(i, i, j, j+colsVector-1, new MatrixBlock()), false);
 					row[j2+off] = new DenseVector(tmp);
 					j += colsVector-1;
 				}


[3/3] systemml git commit: [MINOR] Refactoring matrix block slice and append operations

Posted by mb...@apache.org.
[MINOR] Refactoring matrix block slice and append operations

Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/d16cc7cf
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/d16cc7cf
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/d16cc7cf

Branch: refs/heads/master
Commit: d16cc7cf89a790c1b9901650db1b9637024e5aed
Parents: ff8bb58
Author: Matthias Boehm <mb...@gmail.com>
Authored: Sun Feb 25 23:35:01 2018 -0800
Committer: Matthias Boehm <mb...@gmail.com>
Committed: Sun Feb 25 23:35:01 2018 -0800

----------------------------------------------------------------------
 .../hops/recompile/LiteralReplacement.java      |  2 +-
 .../runtime/compress/CompressedMatrixBlock.java | 34 ++++++++++----------
 .../controlprogram/caching/CacheBlock.java      |  2 +-
 .../controlprogram/caching/MatrixObject.java    |  4 +--
 .../context/SparkExecutionContext.java          |  4 +--
 .../parfor/DataPartitionerLocal.java            |  4 +--
 .../parfor/DataPartitionerRemoteMapper.java     |  4 +--
 .../DataPartitionerRemoteSparkMapper.java       |  4 +--
 .../cp/FrameAppendCPInstruction.java            |  2 +-
 .../cp/FrameIndexingCPInstruction.java          |  2 +-
 .../cp/MatrixAppendCPInstruction.java           |  2 +-
 .../cp/MatrixBuiltinNaryCPInstruction.java      |  2 +-
 .../cp/MatrixIndexingCPInstruction.java         |  2 +-
 .../instructions/mr/AppendGInstruction.java     |  8 ++---
 .../instructions/mr/AppendRInstruction.java     |  2 +-
 .../mr/CumulativeOffsetInstruction.java         |  2 +-
 .../mr/CumulativeSplitInstruction.java          |  2 +-
 .../spark/AppendGSPInstruction.java             |  8 ++---
 .../spark/BuiltinNarySPInstruction.java         |  4 +--
 .../spark/CumulativeOffsetSPInstruction.java    |  4 +--
 .../spark/FrameAppendMSPInstruction.java        |  2 +-
 .../spark/FrameAppendRSPInstruction.java        |  2 +-
 .../spark/FrameIndexingSPInstruction.java       |  6 ++--
 .../spark/MatrixAppendMSPInstruction.java       |  2 +-
 .../spark/MatrixAppendRSPInstruction.java       |  2 +-
 .../spark/MatrixIndexingSPInstruction.java      |  6 ++--
 .../instructions/spark/ReorgSPInstruction.java  |  4 +--
 .../spark/data/PartitionedBlock.java            |  4 +--
 .../spark/data/PartitionedBroadcast.java        |  4 +--
 .../spark/utils/FrameRDDConverterUtils.java     |  4 +--
 .../spark/utils/RDDConverterUtils.java          |  4 +--
 .../instructions/spark/utils/RDDSortUtils.java  |  8 ++---
 .../runtime/io/FrameWriterBinaryBlock.java      |  2 +-
 .../sysml/runtime/io/WriterBinaryBlock.java     |  8 ++---
 .../data/BinaryBlockToRowBlockConverter.java    |  2 +-
 .../sysml/runtime/matrix/data/CM_N_COVCell.java |  4 +--
 .../sysml/runtime/matrix/data/FrameBlock.java   | 10 +++---
 .../sysml/runtime/matrix/data/LibMatrixAgg.java |  2 +-
 .../runtime/matrix/data/LibMatrixReorg.java     | 12 +++----
 .../sysml/runtime/matrix/data/MatrixBlock.java  | 34 ++++++++++----------
 .../sysml/runtime/matrix/data/MatrixCell.java   |  4 +--
 .../sysml/runtime/matrix/data/MatrixValue.java  |  4 +--
 .../matrix/data/OperationsOnMatrixValues.java   | 12 +++----
 .../runtime/matrix/mapred/GMRCtableBuffer.java  |  2 +-
 .../matrix/mapred/GroupedAggMRMapper.java       |  4 +--
 .../sysml/runtime/util/DataConverter.java       |  2 +-
 .../codegen/CPlanVectorPrimitivesTest.java      |  8 ++---
 .../compress/BasicMatrixAppendTest.java         |  4 +--
 .../compress/BasicUnaryAggregateTest.java       |  2 +-
 .../compress/LargeParUnaryAggregateTest.java    |  2 +-
 .../compress/ParUnaryAggregateTest.java         |  2 +-
 .../functions/frame/FrameAppendTest.java        |  4 +--
 .../functions/frame/FrameIndexingTest.java      |  4 +--
 .../DataFrameVectorFrameConversionTest.java     |  2 +-
 .../mlcontext/DataFrameVectorScriptTest.java    |  2 +-
 55 files changed, 139 insertions(+), 139 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/hops/recompile/LiteralReplacement.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/recompile/LiteralReplacement.java b/src/main/java/org/apache/sysml/hops/recompile/LiteralReplacement.java
index f0c8955..6c38740 100644
--- a/src/main/java/org/apache/sysml/hops/recompile/LiteralReplacement.java
+++ b/src/main/java/org/apache/sysml/hops/recompile/LiteralReplacement.java
@@ -348,7 +348,7 @@ public class LiteralReplacement
 				if( mo.getNumRows()*mo.getNumColumns() < REPLACE_LITERALS_MAX_MATRIX_SIZE )
 				{
 					MatrixBlock mBlock = mo.acquireRead();
-					MatrixBlock mBlock2 = mBlock.sliceOperations((int)(rlval-1), (int)(ruval-1), (int)(clval-1), (int)(cuval-1), new MatrixBlock());
+					MatrixBlock mBlock2 = mBlock.slice((int)(rlval-1), (int)(ruval-1), (int)(clval-1), (int)(cuval-1), new MatrixBlock());
 					double value = replaceUnaryAggregate((AggUnaryOp)c, mBlock2);
 					mo.release();
 						

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/compress/CompressedMatrixBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/compress/CompressedMatrixBlock.java b/src/main/java/org/apache/sysml/runtime/compress/CompressedMatrixBlock.java
index c5fbd35..de99391 100644
--- a/src/main/java/org/apache/sysml/runtime/compress/CompressedMatrixBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/compress/CompressedMatrixBlock.java
@@ -966,14 +966,14 @@ public class CompressedMatrixBlock extends MatrixBlock implements Externalizable
 	}
 
 	@Override
-	public MatrixBlock appendOperations(MatrixBlock that, MatrixBlock ret) 
+	public MatrixBlock append(MatrixBlock that, MatrixBlock ret) 
 		throws DMLRuntimeException
 	{
 		//call uncompressed matrix append if necessary
 		if( !isCompressed() ) {
 			if( that instanceof CompressedMatrixBlock )
 				that = ((CompressedMatrixBlock) that).decompress();
-			return super.appendOperations(that, ret, true);
+			return super.append(that, ret, true);
 		}
 		
 		final int m = rlen;
@@ -1154,7 +1154,7 @@ public class CompressedMatrixBlock extends MatrixBlock implements Externalizable
 			MatrixBlock tmpOut = new MatrixBlock(right?rl:1, right?1:cl, false).allocateBlock();
 			if( right ) { //MM right
 				for(int i=0; i<that.getNumRows(); i++) { //on transpose
-					tmpIn = that.sliceOperations(i, i, 0, that.getNumColumns()-1, tmpIn);
+					tmpIn = that.slice(i, i, 0, that.getNumColumns()-1, tmpIn);
 					MatrixBlock tmpIn2 = LibMatrixReorg.transpose(tmpIn, //meta data op
 						new MatrixBlock(tmpIn.getNumColumns(), tmpIn.getNumRows(), false));
 					tmpOut.reset(tmpOut.getNumRows(), tmpOut.getNumColumns());
@@ -1167,7 +1167,7 @@ public class CompressedMatrixBlock extends MatrixBlock implements Externalizable
 			}
 			else { // MM left
 				for(int i=0; i<that.getNumRows(); i++) {
-					tmpIn = that.sliceOperations(i, i, 0, that.getNumColumns()-1, tmpIn);
+					tmpIn = that.slice(i, i, 0, that.getNumColumns()-1, tmpIn);
 					if( op.getNumThreads()>1 )
 						leftMultByVectorTranspose(_colGroups, tmpIn, tmpOut, false, op.getNumThreads());
 					else
@@ -2006,25 +2006,25 @@ public class CompressedMatrixBlock extends MatrixBlock implements Externalizable
 	}
 
 	@Override
-	public MatrixBlock appendOperations(MatrixBlock that, MatrixBlock ret, boolean cbind) 
+	public MatrixBlock append(MatrixBlock that, MatrixBlock ret, boolean cbind) 
 		throws DMLRuntimeException {
 		if( cbind ) //use supported operation
-			return appendOperations(that, ret);			
-		printDecompressWarning("appendOperations-rbind", that);
+			return append(that, ret);			
+		printDecompressWarning("append-rbind", that);
 		MatrixBlock left = isCompressed() ? decompress() : this;
 		MatrixBlock right = getUncompressed(that);
-		return left.appendOperations(right, ret, cbind);
+		return left.append(right, ret, cbind);
 	}
 	
 	@Override
-	public void appendOperations(MatrixValue v2,
+	public void append(MatrixValue v2,
 			ArrayList<IndexedMatrixValue> outlist, int blockRowFactor,
 			int blockColFactor, boolean cbind, boolean m2IsLast, int nextNCol)
 			throws DMLRuntimeException {
-		printDecompressWarning("appendOperations", (MatrixBlock)v2);
+		printDecompressWarning("append", (MatrixBlock)v2);
 		MatrixBlock left = isCompressed() ? decompress() : this;
 		MatrixBlock right = getUncompressed(v2);
-		left.appendOperations(right, outlist, blockRowFactor, blockColFactor, cbind, m2IsLast, nextNCol);
+		left.append(right, outlist, blockRowFactor, blockColFactor, cbind, m2IsLast, nextNCol);
 	}
 
 	@Override
@@ -2060,21 +2060,21 @@ public class CompressedMatrixBlock extends MatrixBlock implements Externalizable
 	}
 
 	@Override
-	public MatrixBlock sliceOperations(int rl, int ru, int cl, int cu, CacheBlock ret) 
+	public MatrixBlock slice(int rl, int ru, int cl, int cu, CacheBlock ret) 
 			throws DMLRuntimeException {
-		printDecompressWarning("sliceOperations");
+		printDecompressWarning("slice");
 		MatrixBlock tmp = isCompressed() ? decompress() : this;
-		return tmp.sliceOperations(rl, ru, cl, cu, ret);
+		return tmp.slice(rl, ru, cl, cu, ret);
 	}
 
 	@Override
-	public void sliceOperations(ArrayList<IndexedMatrixValue> outlist, IndexRange range, 
+	public void slice(ArrayList<IndexedMatrixValue> outlist, IndexRange range, 
 			int rowCut, int colCut, int normalBlockRowFactor,
 			int normalBlockColFactor, int boundaryRlen, int boundaryClen) {
-		printDecompressWarning("sliceOperations");
+		printDecompressWarning("slice");
 		try {
 			MatrixBlock tmp = isCompressed() ? decompress() : this;
-			tmp.sliceOperations(outlist, range, rowCut, colCut, normalBlockRowFactor,
+			tmp.slice(outlist, range, rowCut, colCut, normalBlockRowFactor,
 					normalBlockColFactor, boundaryRlen, boundaryClen);
 		}
 		catch(DMLRuntimeException ex) {

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheBlock.java b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheBlock.java
index bd03ead..14e1e02 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/CacheBlock.java
@@ -95,7 +95,7 @@ public interface CacheBlock extends Writable
 	 * @return sub-block of cache block
 	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public CacheBlock sliceOperations(int rl, int ru, int cl, int cu, CacheBlock block) 
+	public CacheBlock slice(int rl, int ru, int cl, int cu, CacheBlock block) 
 		throws DMLRuntimeException;
 	
 	/**

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java
index 0aaca69..e744ecb 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/caching/MatrixObject.java
@@ -326,12 +326,12 @@ public class MatrixObject extends CacheableData<MatrixBlock>
 				if( _partitionFormat == PDataPartitionFormat.ROW_BLOCK_WISE )
 				{
 					int rix = (int)((pred.rowStart-1)%brlen);
-					mb = mb.sliceOperations(rix, rix, (int)(pred.colStart-1), (int)(pred.colEnd-1), new MatrixBlock());
+					mb = mb.slice(rix, rix, (int)(pred.colStart-1), (int)(pred.colEnd-1), new MatrixBlock());
 				}
 				if( _partitionFormat == PDataPartitionFormat.COLUMN_BLOCK_WISE )
 				{
 					int cix = (int)((pred.colStart-1)%bclen);
-					mb = mb.sliceOperations((int)(pred.rowStart-1), (int)(pred.rowEnd-1), cix, cix, new MatrixBlock());
+					mb = mb.slice((int)(pred.rowStart-1), (int)(pred.rowEnd-1), cix, cix, new MatrixBlock());
 				}
 			}
 			

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/controlprogram/context/SparkExecutionContext.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/context/SparkExecutionContext.java b/src/main/java/org/apache/sysml/runtime/controlprogram/context/SparkExecutionContext.java
index 098eb37..a76b39b 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/context/SparkExecutionContext.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/context/SparkExecutionContext.java
@@ -707,7 +707,7 @@ public class SparkExecutionContext extends ExecutionContext
 					int col_offset = blockCol*bclen;
 
 					//copy submatrix to block
-					src.sliceOperations( row_offset, row_offset+maxRow-1,
+					src.slice( row_offset, row_offset+maxRow-1,
 							             col_offset, col_offset+maxCol-1, block );
 
 					//append block to sequence file
@@ -741,7 +741,7 @@ public class SparkExecutionContext extends ExecutionContext
 			FrameBlock block = new FrameBlock(src.getSchema());
 
 			//copy sub frame to block, incl meta data on first
-			src.sliceOperations( roffset, roffset+maxRow-1, 0, src.getNumColumns()-1, block );
+			src.slice( roffset, roffset+maxRow-1, 0, src.getNumColumns()-1, block );
 			if( roffset == 0 )
 				block.setColumnMetadata(src.getColumnMetadata());
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerLocal.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerLocal.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerLocal.java
index c54e5e9..cdb5d4d 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerLocal.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerLocal.java
@@ -511,7 +511,7 @@ public class DataPartitionerLocal extends DataPartitioner
 			{
 				String pdir = LocalFileUtils.checkAndCreateStagingDir(dir+"/"+(row_offset+1+i));
 				String pfname = pdir+"/"+"block_"+(col_offset/bclen+1);
-				mb.sliceOperations(i, i, 0, (int)(cols-1), _reuseBlk);
+				mb.slice(i, i, 0, (int)(cols-1), _reuseBlk);
 				LocalFileUtils.writeMatrixBlockToLocal(pfname, _reuseBlk);
 				_reuseBlk.reset();
 			}
@@ -531,7 +531,7 @@ public class DataPartitionerLocal extends DataPartitioner
 			{
 				String pdir = LocalFileUtils.checkAndCreateStagingDir(dir+"/"+(col_offset+1+i));
 				String pfname = pdir+"/"+"block_"+(row_offset/brlen+1); 			
-				mb.sliceOperations(0, (int)(rows-1), i, i, _reuseBlk);
+				mb.slice(0, (int)(rows-1), i, i, _reuseBlk);
 				LocalFileUtils.writeMatrixBlockToLocal(pfname, _reuseBlk);
 				_reuseBlk.reset();
 			}				

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteMapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteMapper.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteMapper.java
index e26201e..f535b32 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteMapper.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteMapper.java
@@ -340,7 +340,7 @@ public class DataPartitionerRemoteMapper
 						{
 							_longKey.set(row_offset+1+i);
 							_pairKey.setIndexes(1, (col_offset/_bclen+1) );	
-							value2.sliceOperations(i, i, 0, (int)(cols-1), _reuseBlk);
+							value2.slice(i, i, 0, (int)(cols-1), _reuseBlk);
 							out.collect(_longKey, _pair);
 							_reuseBlk.reset();
 						}
@@ -366,7 +366,7 @@ public class DataPartitionerRemoteMapper
 						{
 							_longKey.set(col_offset+1+i);
 							_pairKey.setIndexes(row_offset/_brlen+1, 1);							
-							value2.sliceOperations(0, (int)(rows-1), i, i, _reuseBlk);
+							value2.slice(0, (int)(rows-1), i, i, _reuseBlk);
 							out.collect(_longKey, _pair );
 							_reuseBlk.reset();
 						}	

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSparkMapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSparkMapper.java b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSparkMapper.java
index 89456dc..ab14ca3 100644
--- a/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSparkMapper.java
+++ b/src/main/java/org/apache/sysml/runtime/controlprogram/parfor/DataPartitionerRemoteSparkMapper.java
@@ -119,7 +119,7 @@ public class DataPartitionerRemoteSparkMapper extends ParWorker implements PairF
 					for( int i=0; i<rows; i+=_n ) {
 						PairWritableBlock tmp = new PairWritableBlock();
 						tmp.indexes = new MatrixIndexes(1, col_offset/_bclen+1);
-						tmp.block = value2.sliceOperations(i, Math.min(i+(int)_n-1, value2.getNumRows()-1), 
+						tmp.block = value2.slice(i, Math.min(i+(int)_n-1, value2.getNumRows()-1), 
 								0, value2.getNumColumns()-1, new MatrixBlock());
 						ret.add(new Tuple2<Long,Writable>(new Long((row_offset+i)/_n+1),tmp));
 					}
@@ -154,7 +154,7 @@ public class DataPartitionerRemoteSparkMapper extends ParWorker implements PairF
 					for( int i=0; i<cols; i+=_n ) {
 						PairWritableBlock tmp = new PairWritableBlock();
 						tmp.indexes = new MatrixIndexes(row_offset/_brlen+1, 1);
-						tmp.block = value2.sliceOperations(0, value2.getNumRows()-1, 
+						tmp.block = value2.slice(0, value2.getNumRows()-1, 
 								i, Math.min(i+(int)_n-1, value2.getNumColumns()-1), new MatrixBlock());
 						ret.add(new Tuple2<Long,Writable>(new Long((col_offset+i)/_n+1),tmp));
 					}

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameAppendCPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameAppendCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameAppendCPInstruction.java
index e194c87..255dfd0 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameAppendCPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameAppendCPInstruction.java
@@ -50,7 +50,7 @@ public final class FrameAppendCPInstruction extends AppendCPInstruction {
 		} 
 			
 		//execute append operations (append both inputs to initially empty output)
-		FrameBlock ret = fin1.appendOperations(fin2, new FrameBlock(), _type==AppendType.CBIND);
+		FrameBlock ret = fin1.append(fin2, new FrameBlock(), _type==AppendType.CBIND);
 		
 		//set output and release inputs 
 		ec.setFrameOutput(output.getName(), ret);

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameIndexingCPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameIndexingCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameIndexingCPInstruction.java
index d585148..967b168 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameIndexingCPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/FrameIndexingCPInstruction.java
@@ -52,7 +52,7 @@ public final class FrameIndexingCPInstruction extends IndexingCPInstruction {
 		{
 			//execute right indexing operation
 			FrameBlock in = ec.getFrameInput(input1.getName());
-			FrameBlock out = in.sliceOperations(ixrange, new FrameBlock());	
+			FrameBlock out = in.slice(ixrange, new FrameBlock());	
 				
 			//unpin rhs input
 			ec.releaseFrameInput(input1.getName());

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixAppendCPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixAppendCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixAppendCPInstruction.java
index 28f9b6b..420535b 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixAppendCPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixAppendCPInstruction.java
@@ -50,7 +50,7 @@ public final class MatrixAppendCPInstruction extends AppendCPInstruction {
 		} 
 			
 		//execute append operations (append both inputs to initially empty output)
-		MatrixBlock ret = matBlock1.appendOperations(matBlock2, new MatrixBlock(), _type==AppendType.CBIND);
+		MatrixBlock ret = matBlock1.append(matBlock2, new MatrixBlock(), _type==AppendType.CBIND);
 		
 		//set output and release inputs 
 		ec.setMatrixOutput(output.getName(), ret, getExtendedOpcode());

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixBuiltinNaryCPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixBuiltinNaryCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixBuiltinNaryCPInstruction.java
index c3c04b4..4e4fb95 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixBuiltinNaryCPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixBuiltinNaryCPInstruction.java
@@ -41,7 +41,7 @@ public class MatrixBuiltinNaryCPInstruction extends BuiltinNaryCPInstruction {
 		MatrixBlock outBlock = null;
 		if( "cbind".equals(getOpcode()) || "rbind".equals(getOpcode()) ) {
 			boolean cbind = "cbind".equals(getOpcode());
-			outBlock = in1.appendOperations(in2, new MatrixBlock(), cbind);
+			outBlock = in1.append(in2, new MatrixBlock(), cbind);
 		}
 		else {
 			throw new DMLRuntimeException("Unknown opcode: "+getOpcode());

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixIndexingCPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixIndexingCPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixIndexingCPInstruction.java
index 73f7f72..2eeade3 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixIndexingCPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/cp/MatrixIndexingCPInstruction.java
@@ -67,7 +67,7 @@ public final class MatrixIndexingCPInstruction extends IndexingCPInstruction {
 				//execute right indexing operation (with shallow row copies for range
 				//of entire sparse rows, which is safe due to copy on update)
 				MatrixBlock matBlock = ec.getMatrixInput(input1.getName(), getExtendedOpcode());
-				resultBlock = matBlock.sliceOperations((int)ixrange.rowStart, (int)ixrange.rowEnd, 
+				resultBlock = matBlock.slice((int)ixrange.rowStart, (int)ixrange.rowEnd, 
 					(int)ixrange.colStart, (int)ixrange.colEnd, false, new MatrixBlock());
 				
 				//unpin rhs input

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendGInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendGInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendGInstruction.java
index 8c84563..ea39010 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendGInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendGInstruction.java
@@ -135,7 +135,7 @@ public class AppendGInstruction extends AppendInstruction {
 						ix1.setIndexes( tmpix.getRowIndex(), cix1);
 						tmpvalNew.reset( tmpval.getNumRows(), cols1 );
 						tmpvalNew.copy(0, tmpval.getNumRows()-1, (int)((_offset+1)%blen)-1, cols1-1, 
-								       tmpval.sliceOperations(0, tmpval.getNumRows()-1, 0, 
+								       tmpval.slice(0, tmpval.getNumRows()-1, 0, 
 								    		                     (int)(cols1-((_offset)%blen)-1), new MatrixBlock()), true);
 						data1.getIndexes().setIndexes(ix1);
 						
@@ -150,7 +150,7 @@ public class AppendGInstruction extends AppendInstruction {
 							ix2.setIndexes( tmpix.getRowIndex(), cix2);
 							tmpvalNew2.reset( tmpval.getNumRows(), cols2 );
 							tmpvalNew2.copy(0, tmpval.getNumRows()-1, 0, cols2-1, 
-									       tmpval.sliceOperations(0, tmpval.getNumRows()-1, (int)(cols1-((_offset)%blen)), 
+									       tmpval.slice(0, tmpval.getNumRows()-1, (int)(cols1-((_offset)%blen)), 
 									    		                     tmpval.getNumColumns()-1, new MatrixBlock()), true);
 							data2.getIndexes().setIndexes(ix2);
 						}	
@@ -163,7 +163,7 @@ public class AppendGInstruction extends AppendInstruction {
 						ix1.setIndexes( rix1, tmpix.getColumnIndex());
 						tmpvalNew.reset( rows1, tmpval.getNumColumns() );
 						tmpvalNew.copy((int)((_offset+1)%blen)-1, rows1-1, 0, tmpval.getNumColumns()-1,  
-								       tmpval.sliceOperations(0,(int)(rows1-((_offset)%blen)-1), 
+								       tmpval.slice(0,(int)(rows1-((_offset)%blen)-1), 
 								    		   0, tmpval.getNumColumns()-1, new MatrixBlock()), true);
 						data1.getIndexes().setIndexes(ix1);
 						
@@ -178,7 +178,7 @@ public class AppendGInstruction extends AppendInstruction {
 							ix2.setIndexes(rix2, tmpix.getColumnIndex());
 							tmpvalNew2.reset( rows2, tmpval.getNumColumns() );
 							tmpvalNew2.copy(0, rows2-1, 0, tmpval.getNumColumns()-1,  
-									       tmpval.sliceOperations((int)(rows1-((_offset)%blen)), tmpval.getNumRows()-1, 
+									       tmpval.slice((int)(rows1-((_offset)%blen)), tmpval.getNumRows()-1, 
 									    		   0, tmpval.getNumColumns()-1, new MatrixBlock()), true);
 							data2.getIndexes().setIndexes(ix2);
 						}	

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendRInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendRInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendRInstruction.java
index d3847a5..32e61e2 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendRInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/AppendRInstruction.java
@@ -63,7 +63,7 @@ public class AppendRInstruction extends AppendInstruction {
 		MatrixBlock mbLeft = (MatrixBlock)left.getValue();
 		MatrixBlock mbRight = (MatrixBlock)right.getValue();
 		
-		MatrixBlock ret = mbLeft.appendOperations(mbRight, new MatrixBlock(), _cbind);
+		MatrixBlock ret = mbLeft.append(mbRight, new MatrixBlock(), _cbind);
 		
 		//put result into cache
 		cachedValues.add(output, new IndexedMatrixValue(left.getIndexes(), ret));

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeOffsetInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeOffsetInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeOffsetInstruction.java
index e01be29..fadea8d 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeOffsetInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeOffsetInstruction.java
@@ -89,7 +89,7 @@ public class CumulativeOffsetInstruction extends BinaryInstruction {
 		
 		//blockwise offset aggregation and prefix sum computation
 		MatrixBlock data2 = new MatrixBlock(data); //cp data
-		MatrixBlock fdata2 = data2.sliceOperations(0, 0, 0, data2.getNumColumns()-1, new MatrixBlock()); //1-based
+		MatrixBlock fdata2 = data2.slice(0, 0, 0, data2.getNumColumns()-1, new MatrixBlock()); //1-based
 		fdata2.binaryOperationsInPlace(_bop, offset); //sum offset to first row
 		data2.copy(0, 0, 0, data2.getNumColumns()-1, fdata2, true); //0-based
 		data2.unaryOperations(_uop, blk); //compute columnwise prefix sums/prod/min/max

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeSplitInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeSplitInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeSplitInstruction.java
index 0ff3298..bc21b47 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeSplitInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/mr/CumulativeSplitInstruction.java
@@ -97,7 +97,7 @@ public class CumulativeSplitInstruction extends UnaryInstruction {
 					IndexedMatrixValue out = cachedValues.holdPlace(output, valueClass);
 					MatrixBlock tmpBlk = (MatrixBlock) out.getValue();
 					tmpBlk.reset(1,blk.getNumColumns());
-					blk.sliceOperations(i, i, 0, blk.getNumColumns()-1, tmpBlk);	
+					blk.slice(i, i, 0, blk.getNumColumns()-1, tmpBlk);	
 					out.getIndexes().setIndexes(rixOffset+i+2, inix.getColumnIndex());
 				}
 		}

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/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 f50ae9c..3f28f3f 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
@@ -197,11 +197,11 @@ public class AppendGSPInstruction extends BinarySPInstruction {
 				}
 				else {
 					// Since merge requires the dimensions matching, shifting = slicing + left indexing
-					MatrixBlock firstSlicedBlk = in.sliceOperations(0, in.getNumRows()-1, 0, cutAt-1, new MatrixBlock());
+					MatrixBlock firstSlicedBlk = in.slice(0, in.getNumRows()-1, 0, cutAt-1, new MatrixBlock());
 					MatrixBlock firstBlk = new MatrixBlock(in.getNumRows(), lblen1, true);
 					firstBlk = firstBlk.leftIndexingOperations(firstSlicedBlk, 0, in.getNumRows()-1, _shiftBy, _blen-1, new MatrixBlock(), UpdateType.INPLACE_PINNED);
 					
-					MatrixBlock secondSlicedBlk = in.sliceOperations(0, in.getNumRows()-1, cutAt, in.getNumColumns()-1, new MatrixBlock());
+					MatrixBlock secondSlicedBlk = in.slice(0, in.getNumRows()-1, cutAt, in.getNumColumns()-1, new MatrixBlock());
 					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);
@@ -223,11 +223,11 @@ public class AppendGSPInstruction extends BinarySPInstruction {
 				}
 				else {
 					// Since merge requires the dimensions matching, shifting = slicing + left indexing
-					MatrixBlock firstSlicedBlk = in.sliceOperations(0, cutAt-1, 0, in.getNumColumns()-1, new MatrixBlock());
+					MatrixBlock firstSlicedBlk = in.slice(0, cutAt-1, 0, in.getNumColumns()-1, new MatrixBlock());
 					MatrixBlock firstBlk = new MatrixBlock(lblen1, in.getNumColumns(), true);
 					firstBlk = firstBlk.leftIndexingOperations(firstSlicedBlk, _shiftBy, _blen-1, 0, in.getNumColumns()-1, new MatrixBlock(), UpdateType.INPLACE_PINNED);
 					
-					MatrixBlock secondSlicedBlk = in.sliceOperations(cutAt, in.getNumRows()-1, 0, in.getNumColumns()-1, new MatrixBlock());
+					MatrixBlock secondSlicedBlk = in.slice(cutAt, in.getNumRows()-1, 0, in.getNumColumns()-1, new MatrixBlock());
 					int lblen2 = UtilFunctions.computeBlockSize(_outlen, secondIndex.getRowIndex(), _blen);
 					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);

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinNarySPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinNarySPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinNarySPInstruction.java
index cc96cd9..ea09a67 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinNarySPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/BuiltinNarySPInstruction.java
@@ -136,9 +136,9 @@ public class BuiltinNarySPInstruction extends SPInstruction
 			
 			//cbind or rbind to pad to right blocksize
 			if( brlen > mb.getNumRows() ) //rbind
-				mb = mb.appendOperations(new MatrixBlock(brlen-mb.getNumRows(),bclen,true), new MatrixBlock(), false);
+				mb = mb.append(new MatrixBlock(brlen-mb.getNumRows(),bclen,true), new MatrixBlock(), false);
 			else if( bclen > mb.getNumColumns() ) //cbind
-				mb = mb.appendOperations(new MatrixBlock(brlen,bclen-mb.getNumColumns(),true), new MatrixBlock(), true);
+				mb = mb.append(new MatrixBlock(brlen,bclen-mb.getNumColumns(),true), new MatrixBlock(), true);
 			return new Tuple2<>(ix, mb);
 		}
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/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 88fb5ae..cbe6282 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
@@ -156,7 +156,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);	
+					blkIn.slice(i, i, 0, blkIn.getNumColumns()-1, tmpblk);	
 					ret.add(new Tuple2<>(tmpix, tmpblk));
 				}
 			
@@ -188,7 +188,7 @@ public class CumulativeOffsetSPInstruction extends BinarySPInstruction {
 			
 			//blockwise offset aggregation and prefix sum computation
 			MatrixBlock data2 = new MatrixBlock(dblkIn); //cp data
-			MatrixBlock fdata2 = data2.sliceOperations(0, 0, 0, data2.getNumColumns()-1, new MatrixBlock()); //1-based
+			MatrixBlock fdata2 = data2.slice(0, 0, 0, data2.getNumColumns()-1, new MatrixBlock()); //1-based
 			fdata2.binaryOperationsInPlace(_bop, oblkIn); //sum offset to first row
 			data2.copy(0, 0, 0, data2.getNumColumns()-1, fdata2, true); //0-based
 			data2.unaryOperations(_uop, blkOut); //compute columnwise prefix sums/prod/min/max

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/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 3f95e8c..081db1f 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
@@ -121,7 +121,7 @@ public class FrameAppendMSPInstruction extends AppendMSPInstruction {
 				int colix = 1;
 				
 				FrameBlock in2 = _pm.getBlock(rowix, colix);
-				FrameBlock out = in1.appendOperations(in2, new FrameBlock(), true); //cbind
+				FrameBlock out = in1.append(in2, new FrameBlock(), true); //cbind
 				return new Tuple2<>(ix, out);
 			}			
 		}

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/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 b386669..eca944f 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
@@ -92,7 +92,7 @@ public class FrameAppendRSPInstruction extends AppendRSPInstruction {
 			FrameBlock left = arg0._1();
 			FrameBlock right = arg0._2();
 			
-			return left.appendOperations(right, new FrameBlock(), _cbind);
+			return left.append(right, new FrameBlock(), _cbind);
 		}
 	}
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/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 2daaad5..0f338d7 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
@@ -321,7 +321,7 @@ public class FrameIndexingSPInstruction extends IndexingSPInstruction {
 				long rhs_ru_pb = Math.min(rhs_ru, (((rhs_rl-1)/brlen)+1)*brlen); 
 				while(rhs_rl_pb <= rhs_ru_pb) {
 					// Provide global zero-based index to sliceOperations, but only for one RHS partition block at a time.
-					FrameBlock slicedRHSMatBlock = _binput.sliceOperations(rhs_rl_pb, rhs_ru_pb, rhs_cl, rhs_cu, new FrameBlock());
+					FrameBlock slicedRHSMatBlock = _binput.slice(rhs_rl_pb, rhs_ru_pb, rhs_cl, rhs_cu, new FrameBlock());
 					
 					// Provide local zero-based index to leftIndexingOperations
 					int lhs_lrl_pb = (int) (lhs_lrl + (rhs_rl_pb - rhs_rl));
@@ -359,7 +359,7 @@ public class FrameIndexingSPInstruction extends IndexingSPInstruction {
 					in.getNumRows()-1 : _ixrange.rowEnd-rowindex);
 			
 			//slice out the block
-			FrameBlock out = in.sliceOperations(rl, ru, (int)(_ixrange.colStart-1), 
+			FrameBlock out = in.slice(rl, ru, (int)(_ixrange.colStart-1), 
 					(int)(_ixrange.colEnd-1), new FrameBlock());
 			
 			//return block with shifted row index
@@ -403,7 +403,7 @@ public class FrameIndexingSPInstruction extends IndexingSPInstruction {
 				FrameBlock in = arg._2();
 				
 				//slice out the block
-				FrameBlock out = in.sliceOperations(0, in.getNumRows()-1, 
+				FrameBlock out = in.slice(0, in.getNumRows()-1, 
 						(int)_ixrange.colStart-1, (int)_ixrange.colEnd-1, new FrameBlock());
 				
 				//return block with shifted row index

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/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 eb04947..8ada4e8 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
@@ -234,7 +234,7 @@ public class MatrixAppendMSPInstruction extends AppendMSPInstruction {
 					int rowix = _cbind ? (int)ix.getRowIndex() : 1;
 					int colix = _cbind ? 1 : (int)ix.getColumnIndex();
 					MatrixBlock in2 = _pm.getBlock(rowix, colix);
-					MatrixBlock out = in1.appendOperations(in2, new MatrixBlock(), _cbind);
+					MatrixBlock out = in1.append(in2, new MatrixBlock(), _cbind);
 					return new Tuple2<>(ix, out);
 				}
 			}

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixAppendRSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixAppendRSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixAppendRSPInstruction.java
index aba212e..efe4f9d 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixAppendRSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/MatrixAppendRSPInstruction.java
@@ -76,7 +76,7 @@ public class MatrixAppendRSPInstruction extends AppendRSPInstruction {
 		public MatrixBlock call(Tuple2<MatrixBlock, MatrixBlock> arg0)
 			throws Exception 
 		{
-			return arg0._1().appendOperations(arg0._2(), new MatrixBlock(), _cbind);
+			return arg0._1().append(arg0._2(), new MatrixBlock(), _cbind);
 		}
 	}
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/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 dd7f2bd..78486cb 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
@@ -223,7 +223,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 		
 		MatrixBlock tmp = list.get(0);
 		MatrixBlock mbout = (tmp.getNumRows()==mcOut.getRows() && tmp.getNumColumns()==mcOut.getCols()) ? 
-				tmp : tmp.sliceOperations( //reference full block or slice out sub-block
+				tmp : tmp.slice( //reference full block or slice out sub-block
 				UtilFunctions.computeCellInBlock(ixrange.rowStart, mcIn.getRowsPerBlock()), 
 				UtilFunctions.computeCellInBlock(ixrange.rowEnd, mcIn.getRowsPerBlock()), 
 				UtilFunctions.computeCellInBlock(ixrange.colStart, mcIn.getColsPerBlock()), 
@@ -438,7 +438,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 					long rhs_cu = rhs_cl + (lhs_cu - lhs_cl);
 					
 					// Provide global zero-based index to sliceOperations
-					MatrixBlock slicedRHSMatBlock = _binput.sliceOperations(rhs_rl, rhs_ru, rhs_cl, rhs_cu, new MatrixBlock());
+					MatrixBlock slicedRHSMatBlock = _binput.slice(rhs_rl, rhs_ru, rhs_cl, rhs_cu, new MatrixBlock());
 					
 					// Provide local zero-based index to leftIndexingOperations
 					int lhs_lrl = UtilFunctions.computeCellInBlock(lhs_rl, _brlen);
@@ -494,7 +494,7 @@ public class MatrixIndexingSPInstruction extends IndexingSPInstruction {
 			}
 			else {
 				return new Tuple2<>(ixOut, 
-					block.sliceOperations(lrl, lru, lcl, lcu, new MatrixBlock()));
+					block.slice(lrl, lru, lcl, lcu, new MatrixBlock()));
 			}
 		}		
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
index 5d85ae4..79d791d 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/ReorgSPInstruction.java
@@ -335,7 +335,7 @@ public class ReorgSPInstruction extends UnarySPInstruction {
 		public MatrixBlock call(MatrixBlock arg0) 
 			throws Exception 
 		{
-			return arg0.sliceOperations(0, arg0.getNumRows()-1, _col, _col, new MatrixBlock());
+			return arg0.slice(0, arg0.getNumRows()-1, _col, _col, new MatrixBlock());
 		}
 	}
 	
@@ -361,7 +361,7 @@ public class ReorgSPInstruction extends UnarySPInstruction {
 			for(int i=0; i<_cols.length; i++)
 				if( UtilFunctions.isInBlockRange(ix, _brlen, _bclen, new IndexRange(1, Long.MAX_VALUE, _cols[i], _cols[i])) ) {
 					int index = UtilFunctions.computeCellInBlock(_cols[i], _bclen);
-					out.leftIndexingOperations(in.sliceOperations(0, in.getNumRows()-1, index, index, new MatrixBlock()),
+					out.leftIndexingOperations(in.slice(0, in.getNumRows()-1, index, index, new MatrixBlock()),
 						0, in.getNumRows()-1, i, i, out, UpdateType.INPLACE);
 				}
 			return new Tuple2<>(new MatrixIndexes(ix.getRowIndex(), 1), out);

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBlock.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBlock.java
index ed5167b..c4febbf 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBlock.java
@@ -82,7 +82,7 @@ public class PartitionedBlock<T extends CacheBlock> implements Externalizable
 			for( int i=0, ix=0; i<nrblks; i++ )
 				for( int j=0; j<ncblks; j++, ix++ ) {
 					T tmp = (T) CacheBlockFactory.newInstance(code);
-					block.sliceOperations(i*_brlen, Math.min((i+1)*_brlen, rlen)-1, 
+					block.slice(i*_brlen, Math.min((i+1)*_brlen, rlen)-1, 
 							           j*_bclen, Math.min((j+1)*_bclen, clen)-1, tmp);
 					_partBlocks[ix] = tmp;
 				}
@@ -215,7 +215,7 @@ public class PartitionedBlock<T extends CacheBlock> implements Externalizable
 	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
 	@SuppressWarnings("unchecked")
-	public T sliceOperations(long rl, long ru, long cl, long cu, T block) 
+	public T slice(long rl, long ru, long cl, long cu, T block) 
 		throws DMLRuntimeException 
 	{
 		int lrl = (int) rl;

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBroadcast.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBroadcast.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBroadcast.java
index c58eb91..4c4766b 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBroadcast.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/data/PartitionedBroadcast.java
@@ -93,14 +93,14 @@ public class PartitionedBroadcast<T extends CacheBlock> implements Serializable
 		return _pbc[pix].value().getBlock(rowIndex, colIndex);
 	}
 	
-	public T sliceOperations(long rl, long ru, long cl, long cu, T block) 
+	public T slice(long rl, long ru, long cl, long cu, T block) 
 			throws DMLRuntimeException 
 	{
 		T ret = null;
 		
 		for( Broadcast<PartitionedBlock<T>> bc : _pbc ) {
 			PartitionedBlock<T> pm = bc.value();
-			T tmp = pm.sliceOperations(rl, ru, cl, cu, block);
+			T tmp = pm.slice(rl, ru, cl, cu, block);
 			if( ret != null )
 				ret.merge(tmp, false);
 			else

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/FrameRDDConverterUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/FrameRDDConverterUtils.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/FrameRDDConverterUtils.java
index e244c3c..ad408a1 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/FrameRDDConverterUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/FrameRDDConverterUtils.java
@@ -941,7 +941,7 @@ public class FrameRDDConverterUtils
 				MatrixIndexes ixout = new MatrixIndexes(rix, 1);
 				MatrixBlock out = new MatrixBlock(ru-i+1, (int)_clen, sparse);
 				out.copy(0, out.getNumRows()-1, (int)cl, (int)cu, 
-					mb.sliceOperations(i, ru, 0, mb.getNumColumns()-1, mbreuse), true);
+					mb.slice(i, ru, 0, mb.getNumColumns()-1, mbreuse), true);
 				out.examSparsity();
 				ret.add(new Tuple2<>(ixout,out));
 			}
@@ -1026,7 +1026,7 @@ public class FrameRDDConverterUtils
 					long cpos = UtilFunctions.computeCellIndex(cix, bclen, 0);
 					int lclen = UtilFunctions.computeBlockSize(clen, cix, bclen);
 					MatrixBlock matrix = new MatrixBlock(lrlen, lclen, false);
-					FrameBlock frame = blk.sliceOperations(fix, fix2, 
+					FrameBlock frame = blk.slice(fix, fix2, 
 							(int)cpos-1, (int)cpos+lclen-2, new FrameBlock());
 					MatrixBlock mframe = DataConverter.convertToMatrixBlock(frame);
 					ret.add(new Tuple2<>(new MatrixIndexes(rix, cix), 

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDConverterUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDConverterUtils.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDConverterUtils.java
index 2dedc91..9ed2f00 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDConverterUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDConverterUtils.java
@@ -463,7 +463,7 @@ public class RDDConverterUtils
 		{
 			ArrayList<LabeledPoint> ret = new ArrayList<>();
 			for( int i=0; i<arg0.getNumRows(); i++ ) {
-				MatrixBlock tmp = arg0.sliceOperations(i, i, 0, arg0.getNumColumns()-2, new MatrixBlock());
+				MatrixBlock tmp = arg0.slice(i, i, 0, arg0.getNumColumns()-2, new MatrixBlock());
 				ret.add(new LabeledPoint(arg0.getValue(i, arg0.getNumColumns()-1), createVector(tmp)));
 			}
 			
@@ -969,7 +969,7 @@ public class RDDConverterUtils
 			MatrixIndexes ix = arg0._1();
 			MatrixBlock blk = arg0._2();
 			for( int i=0; i<blk.getNumRows(); i++ ) {
-				MatrixBlock tmpBlk = blk.sliceOperations(i, i, 0, blk.getNumColumns()-1, new MatrixBlock());
+				MatrixBlock tmpBlk = blk.slice(i, i, 0, blk.getNumColumns()-1, new MatrixBlock());
 				long rix = UtilFunctions.computeCellIndex(ix.getRowIndex(), _brlen, i);
 				ret.add(new Tuple2<>(rix, new Tuple2<>(ix.getColumnIndex(),tmpBlk)));
 			}

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDSortUtils.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDSortUtils.java b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDSortUtils.java
index 9232374..8571963 100644
--- a/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDSortUtils.java
+++ b/src/main/java/org/apache/sysml/runtime/instructions/spark/utils/RDDSortUtils.java
@@ -294,7 +294,7 @@ public class RDDSortUtils
 			throws Exception {
 			ArrayList<MatrixBlock> rows = new ArrayList<>();
 			for(int i=0; i<arg0.getNumRows(); i++)
-				rows.add(arg0.sliceOperations(i, i, 0, arg0.getNumColumns()-1, new MatrixBlock()));
+				rows.add(arg0.slice(i, i, 0, arg0.getNumColumns()-1, new MatrixBlock()));
 			return rows.iterator();
 		}
 	}
@@ -371,7 +371,7 @@ public class RDDSortUtils
 			long ixoffset = (ix.getRowIndex()-1)*_brlen;
 			for( int i=0; i<mb.getNumRows(); i++) {
 				double[] vals = DataConverter.convertToDoubleVector(
-					mb.sliceOperations(i, i, 0, mb.getNumColumns()-1, new MatrixBlock()));
+					mb.slice(i, i, 0, mb.getNumColumns()-1, new MatrixBlock()));
 				ret.add(new Tuple2<>(new ValuesIndexPair(vals,ixoffset+i+1), vals));
 			}
 			
@@ -778,7 +778,7 @@ public class RDDSortUtils
 					int pos = UtilFunctions.computeCellInBlock(valix, _brlen);
 					int len = UtilFunctions.computeBlockSize(_rlen, rix, _brlen);		
 					MatrixIndexes lix = new MatrixIndexes(rix,ixmap.getColumnIndex());
-					MatrixBlock tmp = data.sliceOperations(_currPos, _currPos, 0, data.getNumColumns()-1, new MatrixBlock());
+					MatrixBlock tmp = data.slice(_currPos, _currPos, 0, data.getNumColumns()-1, new MatrixBlock());
 					_currPos++;
 					
 					//handle end of block situations
@@ -867,7 +867,7 @@ public class RDDSortUtils
 					int pos = UtilFunctions.computeCellInBlock(valix, _brlen);
 					int len = UtilFunctions.computeBlockSize(_rlen, rix, _brlen);		
 					MatrixIndexes lix = new MatrixIndexes(rix,ixmap.getColumnIndex());
-					MatrixBlock tmp = data.sliceOperations(_currPos, _currPos, 0, data.getNumColumns()-1, new MatrixBlock());
+					MatrixBlock tmp = data.slice(_currPos, _currPos, 0, data.getNumColumns()-1, new MatrixBlock());
 					_currPos++;
 					
 					//handle end of block situations

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java b/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java
index 38e1afb..d6b12c9 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java
@@ -115,7 +115,7 @@ public class FrameWriterBinaryBlock extends FrameWriter
 					
 					//get reuse frame block and copy subpart to block (incl meta on first)
 					FrameBlock block = getFrameBlockForReuse(blocks);
-					src.sliceOperations( bi, bi+len-1, 0, src.getNumColumns()-1, block );
+					src.slice( bi, bi+len-1, 0, src.getNumColumns()-1, block );
 					if( bi==0 ) //first block
 						block.setColumnMetadata(src.getColumnMetadata());
 					

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/io/WriterBinaryBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/WriterBinaryBlock.java b/src/main/java/org/apache/sysml/runtime/io/WriterBinaryBlock.java
index 0d8e221..c9cea0f 100644
--- a/src/main/java/org/apache/sysml/runtime/io/WriterBinaryBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/io/WriterBinaryBlock.java
@@ -160,7 +160,7 @@ public class WriterBinaryBlock extends MatrixWriter
 						MatrixBlock block = getMatrixBlockForReuse(blocks, maxRow, maxCol, brlen, bclen);
 	
 						//copy submatrix to block
-						src.sliceOperations( row_offset, row_offset+maxRow-1, 
+						src.slice( row_offset, row_offset+maxRow-1, 
 								             col_offset, col_offset+maxCol-1, block );
 						
 						//append block to sequence file
@@ -238,7 +238,7 @@ public class WriterBinaryBlock extends MatrixWriter
 							block = getMatrixBlockForReuse(blocks, maxRow, maxCol, brlen, bclen);
 		
 							//copy submatrix to block
-							src.sliceOperations( row_offset, row_offset+maxRow-1, 
+							src.slice( row_offset, row_offset+maxRow-1, 
 								col_offset, col_offset+maxCol-1, block );
 						}
 						else //empty block (not on diagonal)
@@ -310,7 +310,7 @@ public class WriterBinaryBlock extends MatrixWriter
 								MatrixBlock block = getMatrixBlockForReuse(blocks, maxRow, maxCol, brlen, bclen);
 			
 								//copy submatrix to block
-								src.sliceOperations( row_offset, row_offset+maxRow-1, 
+								src.slice( row_offset, row_offset+maxRow-1, 
 										             col_offset, col_offset+maxCol-1, block );
 								
 								//append block to sequence file
@@ -360,7 +360,7 @@ public class WriterBinaryBlock extends MatrixWriter
 								MatrixBlock block = getMatrixBlockForReuse(blocks, maxRow, maxCol, brlen, bclen);
 			
 								//copy submatrix to block
-								src.sliceOperations( row_offset, row_offset+maxRow-1, 
+								src.slice( row_offset, row_offset+maxRow-1, 
 										             col_offset, col_offset+maxCol-1, block );
 								
 								//append block to sequence file

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/data/BinaryBlockToRowBlockConverter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/BinaryBlockToRowBlockConverter.java b/src/main/java/org/apache/sysml/runtime/matrix/data/BinaryBlockToRowBlockConverter.java
index cd133da..5182004 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/BinaryBlockToRowBlockConverter.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/BinaryBlockToRowBlockConverter.java
@@ -90,7 +90,7 @@ public class BinaryBlockToRowBlockConverter implements Converter<MatrixIndexes,
 		//slice next row
 		try {
 			//rowlow, rowup, collow, colup (1-based specification)
-			_srcBlock.sliceOperations( _pos, _pos, 0, _srcBlock.getNumColumns()-1, _destBlock );
+			_srcBlock.slice( _pos, _pos, 0, _srcBlock.getNumColumns()-1, _destBlock );
 		}
 		catch(DMLException ex) {
 			throw new RuntimeException("Failed to slice matrix block into row blocks.", ex);

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/data/CM_N_COVCell.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/CM_N_COVCell.java b/src/main/java/org/apache/sysml/runtime/matrix/data/CM_N_COVCell.java
index a01d1bb..65ef6ec 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/CM_N_COVCell.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/CM_N_COVCell.java
@@ -271,7 +271,7 @@ public class CM_N_COVCell extends MatrixValue implements WritableComparable
 	}
 
 	@Override
-	public void sliceOperations(ArrayList<IndexedMatrixValue> outlist,
+	public void slice(ArrayList<IndexedMatrixValue> outlist,
 			IndexRange range, int rowCut, int colCut, int blockRowFactor,
 			int blockColFactor, int boundaryRlen, int boundaryClen)
 			throws DMLRuntimeException {
@@ -293,7 +293,7 @@ public class CM_N_COVCell extends MatrixValue implements WritableComparable
 	}
 
 	@Override
-	public void appendOperations(MatrixValue valueIn2, ArrayList<IndexedMatrixValue> outlist,
+	public void append(MatrixValue valueIn2, ArrayList<IndexedMatrixValue> outlist,
 			int blockRowFactor, int blockColFactor, boolean cbind, boolean m2IsLast, int nextNCol)
 	throws DMLRuntimeException   {
 		throw new DMLRuntimeException("operation not supported for CM_N_COVCell");

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/data/FrameBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/FrameBlock.java b/src/main/java/org/apache/sysml/runtime/matrix/data/FrameBlock.java
index 67d4f97..ff720a2 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/FrameBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/FrameBlock.java
@@ -848,10 +848,10 @@ public class FrameBlock implements Writable, CacheBlock, Externalizable
 		return ret;
 	}
 
-	public FrameBlock sliceOperations(IndexRange ixrange, FrameBlock ret) 
+	public FrameBlock slice(IndexRange ixrange, FrameBlock ret) 
 		throws DMLRuntimeException
 	{
-		return sliceOperations(
+		return slice(
 				(int)ixrange.rowStart, (int)ixrange.rowEnd,
 				(int)ixrange.colStart, (int)ixrange.colEnd, ret);
 	}
@@ -868,7 +868,7 @@ public class FrameBlock implements Writable, CacheBlock, Externalizable
 	 * @return frame block
 	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public FrameBlock sliceOperations(int rl, int ru, int cl, int cu, CacheBlock retCache) 
+	public FrameBlock slice(int rl, int ru, int cl, int cu, CacheBlock retCache) 
 		throws DMLRuntimeException
 	{
 		FrameBlock ret = (FrameBlock)retCache;
@@ -923,7 +923,7 @@ public class FrameBlock implements Writable, CacheBlock, Externalizable
 	}
 	
 	
-	public void sliceOperations(ArrayList<Pair<Long,FrameBlock>> outlist, IndexRange range, int rowCut)
+	public void slice(ArrayList<Pair<Long,FrameBlock>> outlist, IndexRange range, int rowCut)
 	{
 		FrameBlock top=null, bottom=null;
 		Iterator<Pair<Long,FrameBlock>> p=outlist.iterator();
@@ -968,7 +968,7 @@ public class FrameBlock implements Writable, CacheBlock, Externalizable
 	 * @return frame block
 	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public FrameBlock appendOperations( FrameBlock that, FrameBlock ret, boolean cbind )
+	public FrameBlock append( FrameBlock that, FrameBlock ret, boolean cbind )
 		throws DMLRuntimeException
 	{
 		if( cbind ) //COLUMN APPEND

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixAgg.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixAgg.java b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixAgg.java
index ac8a185..a81dd17 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixAgg.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixAgg.java
@@ -365,7 +365,7 @@ public class LibMatrixAgg
 			ArrayList<CumAggTask> tasks2 = new ArrayList<>();
 			for( int i=0; i<k & i*blklen<m; i++ ) {
 				double[] agg = (i==0)? null : 
-					DataConverter.convertToDoubleVector(tmp2.sliceOperations(i-1, i-1, 0, n2-1, new MatrixBlock()), false);
+					DataConverter.convertToDoubleVector(tmp2.slice(i-1, i-1, 0, n2-1, new MatrixBlock()), false);
 				tasks2.add( new CumAggTask(in, agg, out, aggtype, uop, i*blklen, Math.min((i+1)*blklen, m)) );
 			}
 			List<Future<Long>> taskret2 = pool.invokeAll(tasks2);	

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java
index 3138cd3..e7988c8 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/LibMatrixReorg.java
@@ -274,7 +274,7 @@ public class LibMatrixReorg
 			//slice first block
 			MatrixIndexes outix1 = new MatrixIndexes(blkix1, inix.getColumnIndex());
 			MatrixBlock outblk1 = new MatrixBlock(blklen1, inblk.getNumColumns(), inblk.isInSparseFormat());
-			MatrixBlock tmp1 = tmpblk.sliceOperations(0, iposCut, 0, tmpblk.getNumColumns()-1, new MatrixBlock());
+			MatrixBlock tmp1 = tmpblk.slice(0, iposCut, 0, tmpblk.getNumColumns()-1, new MatrixBlock());
 			outblk1.leftIndexingOperations(tmp1, ipos1, ipos1+tmp1.getNumRows()-1,
 				0, tmpblk.getNumColumns()-1, outblk1, UpdateType.INPLACE_PINNED);
 			out.add(new IndexedMatrixValue(outix1, outblk1));
@@ -283,7 +283,7 @@ public class LibMatrixReorg
 			if( blkix1 != blkix2 ) {
 				MatrixIndexes outix2 = new MatrixIndexes(blkix2, inix.getColumnIndex());
 				MatrixBlock outblk2 = new MatrixBlock(blklen2, inblk.getNumColumns(), inblk.isInSparseFormat());
-				MatrixBlock tmp2 = tmpblk.sliceOperations(iposCut+1, tmpblk.getNumRows()-1, 0, tmpblk.getNumColumns()-1, new MatrixBlock());
+				MatrixBlock tmp2 = tmpblk.slice(iposCut+1, tmpblk.getNumRows()-1, 0, tmpblk.getNumColumns()-1, new MatrixBlock());
 				outblk2.leftIndexingOperations(tmp2, 0, tmp2.getNumRows()-1, 0, tmpblk.getNumColumns()-1, outblk2, UpdateType.INPLACE_PINNED);
 				out.add(new IndexedMatrixValue(outix2, outblk2));
 			}
@@ -578,7 +578,7 @@ public class LibMatrixReorg
 				if( rix > 0 ) //otherwise empty row
 				{
 					//get single row from source block
-					MatrixBlock src = (MatrixBlock) linData.sliceOperations(
+					MatrixBlock src = (MatrixBlock) linData.slice(
 							  i, i, 0, (int)(clen-1), new MatrixBlock());
 					long brix = (rix-1)/brlen+1;
 					long lbrix = (rix-1)%brlen;
@@ -606,7 +606,7 @@ public class LibMatrixReorg
 				if( cix > 0 ) //otherwise empty row
 				{
 					//get single row from source block
-					MatrixBlock src = (MatrixBlock) linData.sliceOperations(
+					MatrixBlock src = (MatrixBlock) linData.slice(
 							  0, (int)(rlen-1), i, i, new MatrixBlock());
 					long bcix = (cix-1)/bclen+1;
 					long lbcix = (cix-1)%bclen;
@@ -700,7 +700,7 @@ public class LibMatrixReorg
 		if( rows ) //expanded vertically
 		{
 			for( int rl=0; rl<tmp.getNumRows(); rl+=brlen ) {
-				MatrixBlock mb = tmp.sliceOperations(
+				MatrixBlock mb = tmp.slice(
 						rl, (int)(Math.min(rl+brlen, tmp.getNumRows())-1), 
 						0, tmp.getNumColumns()-1, new MatrixBlock());
 				outList.add(new IndexedMatrixValue(
@@ -710,7 +710,7 @@ public class LibMatrixReorg
 		else //expanded horizontally
 		{
 			for( int cl=0; cl<tmp.getNumColumns(); cl+=bclen ) {
-				MatrixBlock mb = tmp.sliceOperations(
+				MatrixBlock mb = tmp.slice(
 						0, tmp.getNumRows()-1,
 						cl, (int)(Math.min(cl+bclen, tmp.getNumColumns())-1), new MatrixBlock());
 				outList.add(new IndexedMatrixValue(

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
index 15e37e8..7de42a5 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixBlock.java
@@ -3385,15 +3385,15 @@ public class MatrixBlock extends MatrixValue implements CacheBlock, Externalizab
 		return result;
 	}
 
-	public MatrixBlock appendOperations( MatrixBlock that, MatrixBlock ret ) throws DMLRuntimeException {
-		return appendOperations(that, ret, true); //default cbind
+	public MatrixBlock append( MatrixBlock that, MatrixBlock ret ) throws DMLRuntimeException {
+		return append(that, ret, true); //default cbind
 	}
 
-	public MatrixBlock appendOperations( MatrixBlock that, MatrixBlock ret, boolean cbind ) throws DMLRuntimeException {
-		return appendOperations(new MatrixBlock[]{that}, ret, cbind);
+	public MatrixBlock append( MatrixBlock that, MatrixBlock ret, boolean cbind ) throws DMLRuntimeException {
+		return append(new MatrixBlock[]{that}, ret, cbind);
 	}
 	
-	public MatrixBlock appendOperations( MatrixBlock[] that, MatrixBlock ret, boolean cbind )
+	public MatrixBlock append( MatrixBlock[] that, MatrixBlock ret, boolean cbind )
 		throws DMLRuntimeException 
 	{
 		MatrixBlock result = checkType( ret );
@@ -3687,15 +3687,15 @@ public class MatrixBlock extends MatrixValue implements CacheBlock, Externalizab
 	
 	
 
-	public MatrixBlock sliceOperations(IndexRange ixrange, MatrixBlock ret) throws DMLRuntimeException {
-		return sliceOperations(
+	public MatrixBlock slice(IndexRange ixrange, MatrixBlock ret) throws DMLRuntimeException {
+		return slice(
 			(int)ixrange.rowStart, (int)ixrange.rowEnd, 
 			(int)ixrange.colStart, (int)ixrange.colEnd, true, ret);
 	}
 	
 	@Override
-	public MatrixBlock sliceOperations(int rl, int ru, int cl, int cu, CacheBlock ret) throws DMLRuntimeException {
-		return sliceOperations(rl, ru, cl, cu, true, ret);
+	public MatrixBlock slice(int rl, int ru, int cl, int cu, CacheBlock ret) throws DMLRuntimeException {
+		return slice(rl, ru, cl, cu, true, ret);
 	}
 	
 	/**
@@ -3711,7 +3711,7 @@ public class MatrixBlock extends MatrixValue implements CacheBlock, Externalizab
 	 * @return matrix block output matrix block
 	 * @throws DMLRuntimeException if DMLRuntimeException occurs
 	 */
-	public MatrixBlock sliceOperations(int rl, int ru, int cl, int cu, boolean deep, CacheBlock ret) 
+	public MatrixBlock slice(int rl, int ru, int cl, int cu, boolean deep, CacheBlock ret) 
 		throws DMLRuntimeException 
 	{	
 		// check the validity of bounds
@@ -3832,7 +3832,7 @@ public class MatrixBlock extends MatrixValue implements CacheBlock, Externalizab
 	}
 	
 	@Override
-	public void sliceOperations(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, 
+	public void slice(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, 
 			int normalBlockRowFactor, int normalBlockColFactor, int boundaryRlen, int boundaryClen)
 	{
 		MatrixBlock topleft=null, topright=null, bottomleft=null, bottomright=null;
@@ -3944,7 +3944,7 @@ public class MatrixBlock extends MatrixValue implements CacheBlock, Externalizab
 	@Override
 	//This the append operations for MR side
 	//nextNCol is the number columns for the block right of block v2
-	public void appendOperations(MatrixValue v2,
+	public void append(MatrixValue v2,
 			ArrayList<IndexedMatrixValue> outlist, int blockRowFactor,
 			int blockColFactor, boolean cbind, boolean m2IsLast, int nextNCol)
 			throws DMLRuntimeException 
@@ -3965,7 +3965,7 @@ public class MatrixBlock extends MatrixValue implements CacheBlock, Externalizab
 			if( cbind && clen + m2.clen < blockColFactor
 				|| !cbind && rlen + m2.rlen < blockRowFactor )
 			{
-				appendOperations(m2, (MatrixBlock) outlist.get(0).getValue(), cbind);
+				append(m2, (MatrixBlock) outlist.get(0).getValue(), cbind);
 			}
 			//two output blocks (via slice and append)
 			else
@@ -3974,15 +3974,15 @@ public class MatrixBlock extends MatrixValue implements CacheBlock, Externalizab
 				MatrixBlock ret1 = (MatrixBlock) outlist.get(0).getValue();
 				int lrlen1 = cbind ? rlen-1 : blockRowFactor-rlen-1;
 				int lclen1 = cbind ? blockColFactor-clen-1 : clen-1;
-				MatrixBlock tmp1 = m2.sliceOperations(0, lrlen1, 0, lclen1, new MatrixBlock());
-				appendOperations(tmp1, ret1, cbind);
+				MatrixBlock tmp1 = m2.slice(0, lrlen1, 0, lclen1, new MatrixBlock());
+				append(tmp1, ret1, cbind);
 	
 				//prepare output block 2
 				MatrixBlock ret2 = (MatrixBlock) outlist.get(1).getValue();
 				if( cbind )
-					m2.sliceOperations(0, rlen-1, lclen1+1, m2.clen-1, ret2);
+					m2.slice(0, rlen-1, lclen1+1, m2.clen-1, ret2);
 				else
-					m2.sliceOperations(lrlen1+1, m2.rlen-1, 0, clen-1, ret2);
+					m2.slice(lrlen1+1, m2.rlen-1, 0, clen-1, ret2);
 			}
 		}
 	}

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixCell.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixCell.java b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixCell.java
index a9b5b37..e59ff0d 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixCell.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixCell.java
@@ -372,7 +372,7 @@ public class MatrixCell extends MatrixValue implements WritableComparable, Seria
 	}
 
 	@Override
-	public void sliceOperations(ArrayList<IndexedMatrixValue> outlist,
+	public void slice(ArrayList<IndexedMatrixValue> outlist,
 			IndexRange range, int rowCut, int colCut, int blockRowFactor,
 			int blockColFactor, int boundaryRlen, int boundaryClen)
 			throws DMLRuntimeException {
@@ -401,7 +401,7 @@ public class MatrixCell extends MatrixValue implements WritableComparable, Seria
 	}
 
 	@Override
-	public void appendOperations(MatrixValue valueIn2, ArrayList<IndexedMatrixValue> outlist,
+	public void append(MatrixValue valueIn2, ArrayList<IndexedMatrixValue> outlist,
 			int blockRowFactor, int blockColFactor, boolean cbind, boolean m2IsLast, int nextNCol) 
 	throws DMLRuntimeException  {
 		((MatrixCell)outlist.get(0).getValue()).setValue(this.value);

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixValue.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixValue.java b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixValue.java
index 4f225be..3c1c117 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixValue.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/MatrixValue.java
@@ -148,14 +148,14 @@ public abstract class MatrixValue implements WritableComparable
 	public abstract MatrixValue zeroOutOperations(MatrixValue result, IndexRange range, boolean complementary)
 	throws DMLRuntimeException;
 	
-	public abstract void sliceOperations(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, 
+	public abstract void slice(ArrayList<IndexedMatrixValue> outlist, IndexRange range, int rowCut, int colCut, 
 			int blockRowFactor, int blockColFactor, int boundaryRlen, int boundaryClen)
 	throws DMLRuntimeException;
 
 	public abstract MatrixValue replaceOperations( MatrixValue result, double pattern, double replacement )
 			throws DMLRuntimeException;
 
-	public abstract void appendOperations(MatrixValue valueIn2, ArrayList<IndexedMatrixValue> outlist,
+	public abstract void append(MatrixValue valueIn2, ArrayList<IndexedMatrixValue> outlist,
 			int blockRowFactor, int blockColFactor, boolean cbind, boolean m2IsLast, int nextNCol)
 			throws DMLRuntimeException ;
 }

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/data/OperationsOnMatrixValues.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/data/OperationsOnMatrixValues.java b/src/main/java/org/apache/sysml/runtime/matrix/data/OperationsOnMatrixValues.java
index a5e1d7b..79cddda 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/data/OperationsOnMatrixValues.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/data/OperationsOnMatrixValues.java
@@ -59,7 +59,7 @@ public class OperationsOnMatrixValues
 			ArrayList<IndexedMatrixValue> outlist, int blockRowFactor, int blockColFactor,  boolean cbind, boolean m2IsLast, int nextNCol) 
 	throws DMLRuntimeException
 	{
-		valueIn1.appendOperations(valueIn2, outlist, blockRowFactor, blockColFactor, cbind, m2IsLast, nextNCol);
+		valueIn1.append(valueIn2, outlist, blockRowFactor, blockColFactor, cbind, m2IsLast, nextNCol);
 	}
 	
 	public static void performZeroOut(MatrixIndexes indexesIn, MatrixValue valueIn, 
@@ -344,7 +344,7 @@ public class OperationsOnMatrixValues
 			}
 		
 		//execute actual slice operation
-		in.getValue().sliceOperations(outlist, tmpRange, rowCut, colCut, brlen, bclen, boundaryRlen, boundaryClen);
+		in.getValue().slice(outlist, tmpRange, rowCut, colCut, brlen, bclen, boundaryRlen, boundaryClen);
 	}
 
 	public static void performShift(IndexedMatrixValue in, IndexRange ixrange, int brlen, int bclen, long rlen, long clen, ArrayList<IndexedMatrixValue> outlist) 
@@ -387,7 +387,7 @@ public class OperationsOnMatrixValues
 				int rhs_lcl = UtilFunctions.computeCellInBlock(rhs_cl, bclen);
 				int rhs_lcu = UtilFunctions.computeCellInBlock(rhs_cu, bclen);
 				
-				MatrixBlock slicedRHSBlk = mb.sliceOperations(rhs_lrl, rhs_lru, rhs_lcl, rhs_lcu, new MatrixBlock());
+				MatrixBlock slicedRHSBlk = mb.slice(rhs_lrl, rhs_lru, rhs_lcl, rhs_lcu, new MatrixBlock());
 				
 				int lbrlen = UtilFunctions.computeBlockSize(rlen, leftRowIndex, brlen);
 				int lbclen = UtilFunctions.computeBlockSize(clen, leftColIndex, bclen);
@@ -420,7 +420,7 @@ public class OperationsOnMatrixValues
 				int row_offset = blockRow*brlen;
 
 				//copy submatrix to block
-				MatrixBlock tmp = out.sliceOperations( row_offset, row_offset+maxRow-1, 
+				MatrixBlock tmp = out.slice( row_offset, row_offset+maxRow-1, 
 						             0, out.getNumColumns()-1, new MatrixBlock() );
 				
 				//append block to result cache
@@ -498,7 +498,7 @@ public class OperationsOnMatrixValues
 		}
 		
 		//execute actual slice operation
-		block.sliceOperations(outlist, tmpRange, rowCut);
+		block.slice(outlist, tmpRange, rowCut);
 	}
 
 	public static void performShift(Pair<Long,FrameBlock> in, IndexRange ixrange, int brlenLeft, int clenLeft/*, int bclen*/, long rlen, long clen, ArrayList<Pair<Long,FrameBlock>> outlist) 
@@ -538,7 +538,7 @@ public class OperationsOnMatrixValues
 			int rhs_lcl = (int)rhs_cl-1;
 			int rhs_lcu = (int)rhs_cu-1;
 																				
-			FrameBlock slicedRHSBlk = fb.sliceOperations(rhs_lrl, rhs_lru, rhs_lcl, rhs_lcu, new FrameBlock());
+			FrameBlock slicedRHSBlk = fb.slice(rhs_lrl, rhs_lru, rhs_lcl, rhs_lcu, new FrameBlock());
 			
 			int lbclen = clenLeft;
 			

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/mapred/GMRCtableBuffer.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/mapred/GMRCtableBuffer.java b/src/main/java/org/apache/sysml/runtime/matrix/mapred/GMRCtableBuffer.java
index eba98ad..d485fd3 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/mapred/GMRCtableBuffer.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/mapred/GMRCtableBuffer.java
@@ -182,7 +182,7 @@ public class GMRCtableBuffer
 								MatrixBlock block = MatrixWriter.getMatrixBlockForReuse(blocks, maxRow, maxCol, brlen, bclen);
 			
 								//copy submatrix to block
-								outBlock.sliceOperations( row_offset, row_offset+maxRow-1, 
+								outBlock.slice( row_offset, row_offset+maxRow-1, 
 														  col_offset, col_offset+maxCol-1, block );
 								
 								// TODO: skip empty "block"

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/matrix/mapred/GroupedAggMRMapper.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/matrix/mapred/GroupedAggMRMapper.java b/src/main/java/org/apache/sysml/runtime/matrix/mapred/GroupedAggMRMapper.java
index 88152f5..2702360 100644
--- a/src/main/java/org/apache/sysml/runtime/matrix/mapred/GroupedAggMRMapper.java
+++ b/src/main/java/org/apache/sysml/runtime/matrix/mapred/GroupedAggMRMapper.java
@@ -74,9 +74,9 @@ public class GroupedAggMRMapper extends MapperBase
 					{
 						try 
 						{
-							MatrixBlock group = block.sliceOperations(0, block.getNumRows()-1, 
+							MatrixBlock group = block.slice(0, block.getNumRows()-1, 
 									block.getNumColumns()-1, block.getNumColumns()-1, new MatrixBlock());
-							MatrixBlock target = block.sliceOperations(0, block.getNumRows()-1, 
+							MatrixBlock target = block.slice(0, block.getNumRows()-1, 
 									0, block.getNumColumns()-2, new MatrixBlock());
 								
 							MatrixBlock tmp = group.groupedAggOperations(target, null, new MatrixBlock(), ins.getNGroups(), ins.getOperator());

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/main/java/org/apache/sysml/runtime/util/DataConverter.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/util/DataConverter.java b/src/main/java/org/apache/sysml/runtime/util/DataConverter.java
index 284e783..83b8149 100644
--- a/src/main/java/org/apache/sysml/runtime/util/DataConverter.java
+++ b/src/main/java/org/apache/sysml/runtime/util/DataConverter.java
@@ -786,7 +786,7 @@ public class DataConverter
 			//cache-friendly sparse/dense row slicing 
 			if( !mb.isEmptyBlock(false) ) {
 				for( int i=0; i<rows; i++ )
-					mb.sliceOperations(i, i, 0, cols-1, ret[i]);
+					mb.slice(i, i, 0, cols-1, ret[i]);
 			}
 		}
 		

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/test/java/org/apache/sysml/test/integration/functions/codegen/CPlanVectorPrimitivesTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/codegen/CPlanVectorPrimitivesTest.java b/src/test/java/org/apache/sysml/test/integration/functions/codegen/CPlanVectorPrimitivesTest.java
index 076620b..23dd6fb 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/codegen/CPlanVectorPrimitivesTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/codegen/CPlanVectorPrimitivesTest.java
@@ -729,7 +729,7 @@ public class CPlanVectorPrimitivesTest extends AutomatedTestBase
 						in.getSparseBlock().pos(i), in.getSparseBlock().size(i), n));
 				
 				//execute comparison operation
-				MatrixBlock in2 = in.sliceOperations(i, i, 0, n-1, new MatrixBlock());
+				MatrixBlock in2 = in.slice(i, i, 0, n-1, new MatrixBlock());
 				Double ret2 = -1d;
 				switch( aggtype ) {
 					case ROW_SUMS: ret2 = in2.sum(); break;
@@ -770,7 +770,7 @@ public class CPlanVectorPrimitivesTest extends AutomatedTestBase
 				String opcode = utype.name().split("_")[1].toLowerCase();
 				UnaryOperator uop = new UnaryOperator(Builtin.getBuiltinFnObject(opcode));
 				double[] ret2 = DataConverter.convertToDoubleVector(((MatrixBlock)in
-					.sliceOperations(i, i, 0, n-1, new MatrixBlock())
+					.slice(i, i, 0, n-1, new MatrixBlock())
 					.unaryOperations(uop, new MatrixBlock())), false);
 				
 				//compare results
@@ -828,8 +828,8 @@ public class CPlanVectorPrimitivesTest extends AutomatedTestBase
 				
 				//execute comparison operation
 				String opcode = Hop.getBinaryOpCode(OpOp2.valueOf(bintype.name().split("_")[1]));
-				MatrixBlock in1 = inA.sliceOperations(i, i, 0, n-1, new MatrixBlock());
-				MatrixBlock in2 = inB.sliceOperations(i, i, 0, n-1, new MatrixBlock());
+				MatrixBlock in1 = inA.slice(i, i, 0, n-1, new MatrixBlock());
+				MatrixBlock in2 = inB.slice(i, i, 0, n-1, new MatrixBlock());
 				double[] ret2 = null;
 				if( type1 == InputType.SCALAR ) {
 					ScalarOperator bop = InstructionUtils.parseScalarBinaryOperator(opcode, true);

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicMatrixAppendTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicMatrixAppendTest.java b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicMatrixAppendTest.java
index 83a1164..c44bc28 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicMatrixAppendTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicMatrixAppendTest.java
@@ -165,10 +165,10 @@ public class BasicMatrixAppendTest extends AutomatedTestBase
 				cmb.compress();
 			
 			//matrix-vector uncompressed
-			MatrixBlock ret1 = (MatrixBlock)mb.appendOperations(vector, new MatrixBlock());
+			MatrixBlock ret1 = (MatrixBlock)mb.append(vector, new MatrixBlock());
 			
 			//matrix-vector compressed
-			MatrixBlock ret2 = cmb.appendOperations(vector, new MatrixBlock());
+			MatrixBlock ret2 = cmb.append(vector, new MatrixBlock());
 			if( compress )
 				ret2 = ((CompressedMatrixBlock)ret2).decompress();
 			

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicUnaryAggregateTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicUnaryAggregateTest.java b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicUnaryAggregateTest.java
index 9edaf9c..38e81f2 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicUnaryAggregateTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicUnaryAggregateTest.java
@@ -1052,7 +1052,7 @@ public class BasicUnaryAggregateTest extends AutomatedTestBase
 				input = TestUtils.round(input);
 			}
 			MatrixBlock mb = DataConverter.convertToMatrixBlock(input);
-			mb = mb.appendOperations(MatrixBlock.seqOperations(0.1, rows-0.1, 1), new MatrixBlock()); //uc group
+			mb = mb.append(MatrixBlock.seqOperations(0.1, rows-0.1, 1), new MatrixBlock()); //uc group
 			
 			//prepare unary aggregate operator
 			AggregateUnaryOperator auop = null;

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParUnaryAggregateTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParUnaryAggregateTest.java b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParUnaryAggregateTest.java
index 69f2c57..65553ff 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParUnaryAggregateTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParUnaryAggregateTest.java
@@ -1055,7 +1055,7 @@ public class LargeParUnaryAggregateTest extends AutomatedTestBase
 				input = TestUtils.round(input);
 			}
 			MatrixBlock mb = DataConverter.convertToMatrixBlock(input);
-			mb = mb.appendOperations(MatrixBlock.seqOperations(0.1, rows-0.1, 1), new MatrixBlock()); //uc group
+			mb = mb.append(MatrixBlock.seqOperations(0.1, rows-0.1, 1), new MatrixBlock()); //uc group
 			
 			//prepare unary aggregate operator
 			AggregateUnaryOperator auop = null;

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/test/java/org/apache/sysml/test/integration/functions/compress/ParUnaryAggregateTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/compress/ParUnaryAggregateTest.java b/src/test/java/org/apache/sysml/test/integration/functions/compress/ParUnaryAggregateTest.java
index 7355645..cbe43ee 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/compress/ParUnaryAggregateTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/compress/ParUnaryAggregateTest.java
@@ -1054,7 +1054,7 @@ public class ParUnaryAggregateTest extends AutomatedTestBase
 				input = TestUtils.round(input);
 			}
 			MatrixBlock mb = DataConverter.convertToMatrixBlock(input);
-			mb = mb.appendOperations(MatrixBlock.seqOperations(0.1, rows-0.1, 1), new MatrixBlock()); //uc group
+			mb = mb.append(MatrixBlock.seqOperations(0.1, rows-0.1, 1), new MatrixBlock()); //uc group
 			
 			//prepare unary aggregate operator
 			AggregateUnaryOperator auop = null;

http://git-wip-us.apache.org/repos/asf/systemml/blob/d16cc7cf/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameAppendTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameAppendTest.java b/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameAppendTest.java
index 46d07b5..2ca15de 100644
--- a/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameAppendTest.java
+++ b/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameAppendTest.java
@@ -110,10 +110,10 @@ public class FrameAppendTest extends AutomatedTestBase
 			//core append operations matrix blocks
 			MatrixBlock mbA = DataConverter.convertToMatrixBlock(A);
 			MatrixBlock mbB = DataConverter.convertToMatrixBlock(B);
-			MatrixBlock mbC = mbA.appendOperations(mbB, new MatrixBlock(), atype==AppendType.CBIND);
+			MatrixBlock mbC = mbA.append(mbB, new MatrixBlock(), atype==AppendType.CBIND);
 			
 			//core append operations frame blocks
-			FrameBlock frame3 = frame1.appendOperations(frame2, new FrameBlock(), atype==AppendType.CBIND);
+			FrameBlock frame3 = frame1.append(frame2, new FrameBlock(), atype==AppendType.CBIND);
 			
 			//check basic meta data
 			if( frame3.getNumRows() != mbC.getNumRows() )