Tpetra: Make MatrixMarket (Multi)Vector input memory scalable
Created by: mhoemmen
@trilinos/tpetra Epic: #769.
MatrixMarket input for Tpetra::MultiVector
and Tpetra::Vector
currently gathers the whole (multi)vector to Process 0 before reading it. This is not memory scalable. "Memory scalable" means that no single process has to store more than a small constant factor times the maximum per-process memory usage of the distributed data structure.
MatrixMarket output for Tpetra::MultiVector and Tpetra::Vector is memory scalable. In fact, it uses a clever pipelining scheme to overlap MPI communication and file writes.