[SYSTEMML-630] New parallel binary block frame writer, cleanup/tests

This patch introduces a new multi-threaded frame binary block writer
that parallelizes over row partitions creating up to num_thread files
depending on the given data size. On a scenario of writing a 1Mx1k (8GB)
frame to HDFS (k=24, num_disks=12), multi-threaded write resulted in a
runtime improvement from 48.9s to 8.2s, i.e., roughly 1GB/s and thus,
almost peak IO performance. 

Furthermore, this patch also includes tests and cleanup to ensure
consistency between the single-threaded and multi-threaded writers by
relying on the same core primitive of writing a row partition to a
single sequence file. 

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

Branch: refs/heads/master
Commit: 6bbae619a7f197b8b379c756aee0bc79ffcd7a63
Parents: 9e04719
Author: Matthias Boehm <[email protected]>
Authored: Mon Jun 6 23:39:09 2016 -0700
Committer: Matthias Boehm <[email protected]>
Committed: Mon Jun 6 23:39:45 2016 -0700

----------------------------------------------------------------------
 .../org/apache/sysml/conf/CompilerConfig.java   |  11 +-
 .../runtime/io/FrameWriterBinaryBlock.java      |  98 +++++++-------
 .../io/FrameWriterBinaryBlockParallel.java      | 134 +++++++++++++++++++
 .../sysml/runtime/io/FrameWriterFactory.java    |   9 +-
 .../functions/frame/FrameReadWriteTest.java     |  41 ++++--
 .../functions/io/SeqParReadTest.java            |   6 +-
 .../functions/io/csv/ReadCSVTest.java           |   6 +-
 .../functions/io/matrixmarket/ReadMMTest.java   |   6 +-
 8 files changed, 235 insertions(+), 76 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6bbae619/src/main/java/org/apache/sysml/conf/CompilerConfig.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/conf/CompilerConfig.java 
b/src/main/java/org/apache/sysml/conf/CompilerConfig.java
index d0c7f7c..77c53ea 100644
--- a/src/main/java/org/apache/sysml/conf/CompilerConfig.java
+++ b/src/main/java/org/apache/sysml/conf/CompilerConfig.java
@@ -75,17 +75,18 @@ public class CompilerConfig
        
        //default flags (exposed for testing purposes only)
        public static boolean FLAG_DYN_RECOMPILE = true;
-       public static boolean FLAG_PARREAD_TEXT = true;
+       public static boolean FLAG_PARREADWRITE_TEXT = true;
+       public static boolean FLAG_PARREADWRITE_BINARY = true;
        
        private HashMap<ConfigType, Boolean> _bmap = null;
        private HashMap<ConfigType, Integer> _imap = null;
        
        public CompilerConfig() {
                _bmap = new HashMap<ConfigType, Boolean>();
-               _bmap.put(ConfigType.PARALLEL_CP_READ_TEXTFORMATS, 
FLAG_PARREAD_TEXT);
-               _bmap.put(ConfigType.PARALLEL_CP_WRITE_TEXTFORMATS, true);
-               _bmap.put(ConfigType.PARALLEL_CP_READ_BINARYFORMATS, true);
-               _bmap.put(ConfigType.PARALLEL_CP_WRITE_BINARYFORMATS, true);
+               _bmap.put(ConfigType.PARALLEL_CP_READ_TEXTFORMATS, 
FLAG_PARREADWRITE_TEXT);
+               _bmap.put(ConfigType.PARALLEL_CP_WRITE_TEXTFORMATS, 
FLAG_PARREADWRITE_TEXT);
+               _bmap.put(ConfigType.PARALLEL_CP_READ_BINARYFORMATS, 
FLAG_PARREADWRITE_BINARY);
+               _bmap.put(ConfigType.PARALLEL_CP_WRITE_BINARYFORMATS, 
FLAG_PARREADWRITE_BINARY);
                _bmap.put(ConfigType.PARALLEL_CP_MATRIX_OPERATIONS, true);
                _bmap.put(ConfigType.PARALLEL_LOCAL_OR_REMOTE_PARFOR, true);
                _bmap.put(ConfigType.ALLOW_DYN_RECOMPILATION,          
FLAG_DYN_RECOMPILE);

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6bbae619/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 fd15ef3..dc96c3e 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlock.java
@@ -32,12 +32,10 @@ import org.apache.sysml.runtime.matrix.data.FrameBlock;
 import org.apache.sysml.runtime.util.MapReduceTool;
 
 
-/*
- * This write uses fixed size blocks with block-encoded keys.
- * 
+/**
+ * Single-threaded frame binary block writer.
  * 
  */
-
 public class FrameWriterBinaryBlock extends FrameWriter
 {
        /**
@@ -50,7 +48,7 @@ public class FrameWriterBinaryBlock extends FrameWriter
         * @throws DMLRuntimeException 
         */
        @Override
-       public void writeFrameToHDFS( FrameBlock src, String fname, long rlen, 
long clen )
+       public final void writeFrameToHDFS( FrameBlock src, String fname, long 
rlen, long clen )
                throws IOException, DMLRuntimeException 
        {
                //prepare file access
@@ -59,11 +57,17 @@ public class FrameWriterBinaryBlock extends FrameWriter
 
                //if the file already exists on HDFS, remove it.
                MapReduceTool.deleteFileIfExistOnHDFS( fname );
-                       
-               //core write
-               writeBinaryBlockFrameToHDFS(path, job, src, rlen, clen);
-       }
 
+               //bound check for src block
+               if( src.getNumRows() > rlen || src.getNumColumns() > clen ) {
+                       throw new IOException("Frame block 
[1:"+src.getNumRows()+",1:"+src.getNumColumns()+"] " +
+                                                     "out of overall frame 
range [1:"+rlen+",1:"+clen+"].");
+               }
+               
+               //write binary block to hdfs (sequential/parallel)
+               writeBinaryBlockFrameToHDFS( path, job, src, rlen, clen );
+       }
+       
        /**
         * 
         * @param path
@@ -71,69 +75,73 @@ public class FrameWriterBinaryBlock extends FrameWriter
         * @param src
         * @param rlen
         * @param clen
-        * @return 
         * @throws IOException
-        * @throws DMLRuntimeException 
+        * @throws DMLRuntimeException
         */
-       @SuppressWarnings("deprecation")
        protected void writeBinaryBlockFrameToHDFS( Path path, JobConf job, 
FrameBlock src, long rlen, long clen )
-               throws IOException, DMLRuntimeException
+                       throws IOException, DMLRuntimeException
        {
                FileSystem fs = FileSystem.get(job);
-               int brlen = ConfigurationManager.getBlocksize();
-               int bclen = ConfigurationManager.getBlocksize();
+               int blen = ConfigurationManager.getBlocksize();
+               
+               //sequential write to single file
+               writeBinaryBlockFrameToSequenceFile(path, job, fs, src, blen, 
0, (int)rlen);            
+       }
 
-               // 1) create sequence file writer 
+       /**
+        * Internal primitive to write a block-aligned row range of a frame to 
a single sequence file, 
+        * which is used for both single- and multi-threaded writers (for 
consistency). 
+        *  
+        * @param path
+        * @param job
+        * @param fs
+        * @param src
+        * @param blen
+        * @param rl
+        * @param ru
+        * @throws DMLRuntimeException
+        * @throws IOException
+        */
+       @SuppressWarnings("deprecation")
+       protected final void writeBinaryBlockFrameToSequenceFile( Path path, 
JobConf job, FileSystem fs, FrameBlock src, int blen, int rl, int ru ) 
+               throws DMLRuntimeException, IOException
+       {
+               //1) create sequence file writer 
                SequenceFile.Writer writer = null;
                writer = new SequenceFile.Writer(fs, job, path, 
LongWritable.class, FrameBlock.class);
                
                try
                {
-                       // 2) bound check for src block
-                       if( src.getNumRows() > rlen || src.getNumColumns() > 
clen )
-                       {
-                               throw new IOException("Frame block 
[1:"+src.getNumRows()+",1:"+src.getNumColumns()+"] " +
-                                                             "out of overall 
frame range [1:"+rlen+",1:"+clen+"].");
-                       }
-               
-                       //3) reblock and write
-                       LongWritable indexes = new LongWritable();
+                       //2) reblock and write
+                       LongWritable index = new LongWritable();
 
-                       if( rlen <= brlen && clen <= bclen ) //opt for single 
block
+                       if( src.getNumRows() <= blen ) //opt for single block
                        {
                                //directly write single block
-                               indexes.set(1);
-                               writer.append(indexes, src);
+                               index.set(1);
+                               writer.append(index, src);
                        }
                        else //general case
                        {
                                //initialize blocks for reuse (at most 4 
different blocks required)
-                               FrameBlock[] blocks = 
createFrameBlocksForReuse(src.getSchema(), src.getColumnNames(), rlen);  
+                               FrameBlock[] blocks = 
createFrameBlocksForReuse(src.getSchema(), src.getColumnNames(), 
src.getNumRows());  
                                
                                //create and write subblocks of frame
-                               for(int blockRow = 0; blockRow < 
(int)Math.ceil(src.getNumRows()/(double)brlen); blockRow++)
-                               {
-                                       int maxRow = (blockRow*brlen + brlen < 
src.getNumRows()) ? brlen : src.getNumRows() - blockRow*brlen;
-                       
-                                       int row_offset = blockRow*brlen;
+                               for(int bi = rl; bi < ru; bi += blen) {
+                                       int len = Math.min(blen,  
src.getNumRows()-bi);
                                        
-                                       //get reuse frame block
+                                       //get reuse frame block and copy 
subpart to block
                                        FrameBlock block = 
getFrameBlockForReuse(blocks);
-
-                                       //copy subpart to block
-                                       src.sliceOperations( row_offset, 
row_offset+maxRow-1, 
-                                                                    0, 
src.getNumColumns()-1, block );
+                                       src.sliceOperations( bi, bi+len-1, 0, 
src.getNumColumns()-1, block );
                                        
                                        //append block to sequence file
-                                       indexes.set(row_offset+1);
-                                       writer.append(indexes, block);
+                                       index.set(bi+1);
+                                       writer.append(index, block);
                                }
                        }
-               
                }
-               finally
-               {
+               finally {
                        IOUtilFunctions.closeSilently(writer);
-               }
+               }               
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6bbae619/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlockParallel.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlockParallel.java 
b/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlockParallel.java
new file mode 100644
index 0000000..f0b5bd1
--- /dev/null
+++ 
b/src/main/java/org/apache/sysml/runtime/io/FrameWriterBinaryBlockParallel.java
@@ -0,0 +1,134 @@
+/*
+ * 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.runtime.io;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.mapred.JobConf;
+import org.apache.sysml.conf.ConfigurationManager;
+import org.apache.sysml.conf.DMLConfig;
+import org.apache.sysml.hops.OptimizerUtils;
+import org.apache.sysml.runtime.DMLRuntimeException;
+import 
org.apache.sysml.runtime.controlprogram.parfor.stat.InfrastructureAnalyzer;
+import org.apache.sysml.runtime.matrix.data.FrameBlock;
+import org.apache.sysml.runtime.util.MapReduceTool;
+
+
+/**
+ * Multi-threaded frame binary block writer.
+ * 
+ */
+public class FrameWriterBinaryBlockParallel extends FrameWriterBinaryBlock
+{      
+       /**
+        * 
+        * @param path
+        * @param job
+        * @param src
+        * @param rlen
+        * @param clen
+        * @throws IOException
+        * @throws DMLRuntimeException
+        */
+       protected void writeBinaryBlockFrameToHDFS( Path path, JobConf job, 
FrameBlock src, long rlen, long clen )
+                       throws IOException, DMLRuntimeException
+       {
+               //estimate output size and number of output blocks (min 1)
+               int blen = ConfigurationManager.getBlocksize();
+               int numPartFiles = 
(int)(OptimizerUtils.estimatePartitionedSizeExactSparsity(rlen, clen, blen, 
blen, rlen*clen) 
+                                                  / 
InfrastructureAnalyzer.getHDFSBlockSize());
+               numPartFiles = Math.max(numPartFiles, 1);
+               
+               //determine degree of parallelism
+               int numThreads = 
OptimizerUtils.getParallelBinaryWriteParallelism();
+               numThreads = Math.min(numThreads, numPartFiles);
+
+               //fall back to sequential write if dop is 1 (e.g., <128MB) in 
order to create single file
+               if( numThreads <= 1 ) {
+                       super.writeBinaryBlockFrameToHDFS(path, job, src, rlen, 
clen);
+                       return;
+               }
+               
+               //create directory for concurrent tasks
+               MapReduceTool.createDirIfNotExistOnHDFS(path.toString(), 
DMLConfig.DEFAULT_SHARED_DIR_PERMISSION);
+               FileSystem fs = FileSystem.get(job);
+               
+               //create and execute write tasks
+               try 
+               {
+                       ExecutorService pool = 
Executors.newFixedThreadPool(numThreads);
+                       ArrayList<WriteFileTask> tasks = new 
ArrayList<WriteFileTask>();
+                       int blklen = (int)Math.ceil((double)rlen / blen / 
numThreads) * blen;
+                       for(int i=0; i<numThreads & i*blklen<rlen; i++) {
+                               Path newPath = new Path(path, 
String.format("0-m-%05d",i));
+                               tasks.add(new WriteFileTask(newPath, job, fs, 
src, i*blklen, Math.min((i+1)*blklen, (int)rlen), blen));
+                       }
+
+                       //wait until all tasks have been executed
+                       List<Future<Object>> rt = pool.invokeAll(tasks);        
+                       pool.shutdown();
+                       
+                       //check for exceptions 
+                       for( Future<Object> task : rt )
+                               task.get();
+               } 
+               catch (Exception e) {
+                       throw new IOException("Failed parallel write of binary 
block input.", e);
+               }       
+       }
+
+       /**
+        * 
+        */
+       private class WriteFileTask implements Callable<Object> 
+       {
+               private Path _path = null;
+               private JobConf _job = null;
+               private FileSystem _fs = null;
+               private FrameBlock _src = null;
+               private int _blen = -1;
+               private int _rl = -1;
+               private int _ru = -1;
+               
+               public WriteFileTask(Path path, JobConf job, FileSystem fs, 
FrameBlock src, int rl, int ru, int blen) {
+                       _path = path;
+                       _fs = fs;
+                       _job = job;
+                       _src = src;
+                       _rl = rl;
+                       _ru = ru;
+                       _blen = blen;
+               }
+       
+               @Override
+               public Object call() throws Exception  {
+                       writeBinaryBlockFrameToSequenceFile(_path, _job, _fs, 
_src, _blen, _rl, _ru);
+                       return null;
+               }
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6bbae619/src/main/java/org/apache/sysml/runtime/io/FrameWriterFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/runtime/io/FrameWriterFactory.java 
b/src/main/java/org/apache/sysml/runtime/io/FrameWriterFactory.java
index 578ba36..a7f132f 100644
--- a/src/main/java/org/apache/sysml/runtime/io/FrameWriterFactory.java
+++ b/src/main/java/org/apache/sysml/runtime/io/FrameWriterFactory.java
@@ -19,6 +19,8 @@
 
 package org.apache.sysml.runtime.io;
 
+import org.apache.sysml.conf.ConfigurationManager;
+import org.apache.sysml.conf.CompilerConfig.ConfigType;
 import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.matrix.data.CSVFileFormatProperties;
 import org.apache.sysml.runtime.matrix.data.FileFormatProperties;
@@ -30,8 +32,6 @@ import org.apache.sysml.runtime.matrix.data.OutputInfo;
  */
 public class FrameWriterFactory 
 {
-
-       
        /**
         * 
         * @param oinfo
@@ -65,7 +65,10 @@ public class FrameWriterFactory
                        writer = new 
FrameWriterTextCSV((CSVFileFormatProperties)props);
                }
                else if( oinfo == OutputInfo.BinaryBlockOutputInfo ) {
-                       writer = new FrameWriterBinaryBlock();
+                       if( 
ConfigurationManager.getCompilerConfigFlag(ConfigType.PARALLEL_CP_WRITE_BINARYFORMATS)
 )
+                               writer = new FrameWriterBinaryBlockParallel();
+                       else
+                               writer = new FrameWriterBinaryBlock();
                }
                else {
                        throw new DMLRuntimeException("Failed to create frame 
writer for unknown output info: "

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6bbae619/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameReadWriteTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameReadWriteTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameReadWriteTest.java
index c29f1ff..b07d09e 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameReadWriteTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/frame/FrameReadWriteTest.java
@@ -23,9 +23,10 @@ import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
 
+import org.apache.sysml.conf.CompilerConfig;
+import org.apache.sysml.conf.ConfigurationManager;
 import org.apache.sysml.parser.Expression.ValueType;
 import org.apache.sysml.runtime.DMLRuntimeException;
-import org.apache.sysml.runtime.instructions.cp.AppendCPInstruction.AppendType;
 import org.apache.sysml.runtime.io.FrameReader;
 import org.apache.sysml.runtime.io.FrameReaderFactory;
 import org.apache.sysml.runtime.io.FrameWriter;
@@ -61,33 +62,33 @@ public class FrameReadWriteTest extends AutomatedTestBase
        }
 
        @Test
-       public void testFrameStringsStringsCBind()  {
-               runFrameCopyTest(schemaStrings, schemaStrings, 
AppendType.CBIND);
+       public void testFrameStringsStrings()  {
+               runFrameReadWriteTest(schemaStrings, schemaStrings, false);
        }
        
        @Test
-       public void testFrameStringsStringsRBind()  { //note: ncol(A)=ncol(B)
-               runFrameCopyTest(schemaStrings, schemaStrings, 
AppendType.RBIND);
+       public void testFrameStringsStringsParallel()  { 
+               runFrameReadWriteTest(schemaStrings, schemaStrings, true);
        }
        
        @Test
-       public void testFrameMixedStringsCBind()  {
-               runFrameCopyTest(schemaMixed, schemaStrings, AppendType.CBIND);
+       public void testFrameMixedStrings()  {
+               runFrameReadWriteTest(schemaMixed, schemaStrings, false);
        }
        
        @Test
-       public void testFrameStringsMixedCBind()  {
-               runFrameCopyTest(schemaStrings, schemaMixed, AppendType.CBIND);
+       public void testFrameStringsMixedParallel()  {
+               runFrameReadWriteTest(schemaStrings, schemaMixed, true);
        }
        
        @Test
-       public void testFrameMixedMixedCBind()  {
-               runFrameCopyTest(schemaMixed, schemaMixed, AppendType.CBIND);
+       public void testFrameMixedMixed()  {
+               runFrameReadWriteTest(schemaMixed, schemaMixed, false);
        }
        
        @Test
-       public void testFrameMixedMixedRBind()  { //note: ncol(A)=ncol(B)
-               runFrameCopyTest(schemaMixed, schemaMixed, AppendType.RBIND);
+       public void testFrameMixedMixedParallel()  {
+               runFrameReadWriteTest(schemaMixed, schemaMixed, true);
        }
 
        
@@ -97,10 +98,17 @@ public class FrameReadWriteTest extends AutomatedTestBase
         * @param sparseM2
         * @param instType
         */
-       private void runFrameCopyTest( ValueType[] schema1, ValueType[] 
schema2, AppendType atype)
+       private void runFrameReadWriteTest( ValueType[] schema1, ValueType[] 
schema2, boolean parallel)
        {
+               boolean oldParText = CompilerConfig.FLAG_PARREADWRITE_TEXT;
+               boolean oldParBin = CompilerConfig.FLAG_PARREADWRITE_BINARY;
+               
                try
                {
+                       CompilerConfig.FLAG_PARREADWRITE_TEXT = parallel;
+                       CompilerConfig.FLAG_PARREADWRITE_BINARY = parallel;
+                       ConfigurationManager.setGlobalConfig(new 
CompilerConfig());
+                       
                        //data generation
                        double[][] A = getRandomMatrix(rows, schema1.length, 
-10, 10, 0.9, 2373); 
                        double[][] B = getRandomMatrix(rows, schema2.length, 
-10, 10, 0.9, 129); 
@@ -129,6 +137,11 @@ public class FrameReadWriteTest extends AutomatedTestBase
                        ex.printStackTrace();
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompilerConfig.FLAG_PARREADWRITE_TEXT = oldParText;
+                       CompilerConfig.FLAG_PARREADWRITE_BINARY = oldParBin;
+                       ConfigurationManager.setGlobalConfig(new 
CompilerConfig());
+               }
        }
        
        void initFrameData(FrameBlock frame, double[][] data, List<ValueType> 
lschema)

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6bbae619/src/test/java/org/apache/sysml/test/integration/functions/io/SeqParReadTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/io/SeqParReadTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/io/SeqParReadTest.java
index 81fda82..f33d728 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/io/SeqParReadTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/io/SeqParReadTest.java
@@ -210,11 +210,11 @@ public class SeqParReadTest extends AutomatedTestBase {
        
        private void runReadTypeFormatSparsitySizeTest(boolean parallel, 
OutputInfo fmt, boolean dense, boolean big ) {
                
-               boolean oldpar = CompilerConfig.FLAG_PARREAD_TEXT;
+               boolean oldpar = CompilerConfig.FLAG_PARREADWRITE_TEXT;
 
                try
                {
-                       CompilerConfig.FLAG_PARREAD_TEXT = parallel;
+                       CompilerConfig.FLAG_PARREADWRITE_TEXT = parallel;
                        
                        TestConfiguration config = 
getTestConfiguration(TEST_NAME);
                        loadTestConfiguration(config);
@@ -250,7 +250,7 @@ public class SeqParReadTest extends AutomatedTestBase {
                }
                finally
                {
-                       CompilerConfig.FLAG_PARREAD_TEXT = oldpar;              
+                       CompilerConfig.FLAG_PARREADWRITE_TEXT = oldpar;         
                }
        }
        

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6bbae619/src/test/java/org/apache/sysml/test/integration/functions/io/csv/ReadCSVTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/io/csv/ReadCSVTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/io/csv/ReadCSVTest.java
index ab1f23e..65fbfa0 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/io/csv/ReadCSVTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/io/csv/ReadCSVTest.java
@@ -137,12 +137,12 @@ public class ReadCSVTest extends AutomatedTestBase
        {
                
                RUNTIME_PLATFORM oldPlatform = rtplatform;
-               boolean oldpar = CompilerConfig.FLAG_PARREAD_TEXT;
+               boolean oldpar = CompilerConfig.FLAG_PARREADWRITE_TEXT;
                
                try
                {
                        rtplatform = platform;
-                       CompilerConfig.FLAG_PARREAD_TEXT = parallel;
+                       CompilerConfig.FLAG_PARREADWRITE_TEXT = parallel;
                        
                        TestConfiguration config = 
getTestConfiguration(TEST_NAME);
                        
@@ -170,7 +170,7 @@ public class ReadCSVTest extends AutomatedTestBase
                finally
                {
                        rtplatform = oldPlatform;
-                       CompilerConfig.FLAG_PARREAD_TEXT = oldpar;              
+                       CompilerConfig.FLAG_PARREADWRITE_TEXT = oldpar;         
                }
        }
        

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/6bbae619/src/test/java/org/apache/sysml/test/integration/functions/io/matrixmarket/ReadMMTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/io/matrixmarket/ReadMMTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/io/matrixmarket/ReadMMTest.java
index 6be1b9c..c1e5a08 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/io/matrixmarket/ReadMMTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/io/matrixmarket/ReadMMTest.java
@@ -90,12 +90,12 @@ public class ReadMMTest extends AutomatedTestBase
        private void runMMTest(int testNumber, RUNTIME_PLATFORM platform, 
boolean parallel) {
                
                RUNTIME_PLATFORM oldPlatform = rtplatform;
-               boolean oldpar = CompilerConfig.FLAG_PARREAD_TEXT;
+               boolean oldpar = CompilerConfig.FLAG_PARREADWRITE_TEXT;
                
                try
                {
                        rtplatform = platform;
-                       CompilerConfig.FLAG_PARREAD_TEXT = parallel;
+                       CompilerConfig.FLAG_PARREADWRITE_TEXT = parallel;
                        
                        TestConfiguration config = 
getTestConfiguration(TEST_NAME);
                        loadTestConfiguration(config);
@@ -122,7 +122,7 @@ public class ReadMMTest extends AutomatedTestBase
                finally
                {
                        rtplatform = oldPlatform;
-                       CompilerConfig.FLAG_PARREAD_TEXT = oldpar;
+                       CompilerConfig.FLAG_PARREADWRITE_TEXT = oldpar;
                }
        }
        

Reply via email to