code: public DataOut streamParse( final InputStream is, final StreamDataOut dout, ParseProgressMonitor pmon) throws IOException {
      // All output into a fresh pile of NewChunks, one per column
      if(_setup._pType.parallelParseSupported){
        StreamData din = new StreamData(is);
        int cidx=0;
        StreamDataOut nextChunk = dout;
        long lastProgress = pmon.progress();
        while( is.available() > 0 ){
          if (pmon.progress() > lastProgress) {
            lastProgress = pmon.progress();
            nextChunk.close();
            if(dout != nextChunk) dout.reduce(nextChunk);
            nextChunk = nextChunk.nextChunk();
          }
          parallelParse(cidx++,din,nextChunk);
        }
        parallelParse(cidx++,din,nextChunk);     // Parse the remaining partial 32K buffer
        nextChunk.close();
        if(dout != nextChunk)dout.reduce(nextChunk);
      } else {
        throw H2O.unimpl();
      }
      return dout;
    }
docs: parse local chunks; distribute chunks later.