public class ReaderTextCSVParallel
extends MatrixReader
Parallel version of ReaderTextCSV.java. To summarize, we do two passes in
 order to compute row offsets and the actual read. We accordingly create count
 and read tasks and use fixed-size thread pools to execute these tasks. If the
 target matrix is dense, the inserts are done lock-free. In contrast to
 textcell parallel read, we also do lock-free inserts. If the matrix is
 sparse, because splits contain row partitioned lines and hence there is no
 danger of lost updates. Note, there is also no sorting of sparse rows
 required because data comes in sorted order per row.