1999 · 358 citations · 26 references
ComputingComputer ScienceHigh-performance ComputingDistributed SystemsParallel AlgorithmsParallel ComputingDistributed ComputingI/o ArchitectureInterprocess CommunicationParallel ArchitecturesParallel Computing SystemsParallel Performance AnalysisHigh PerformanceHigh-performance Computing SystemsI/o EfficiencyI/o Interface DesignI/o OptimizationParallel Computing PerformanceParallel I/o ArchitecturePerformance Portability
We discuss the issues involved in implementing MPI-IO portably on multiple machines and file systems and also achieving high performance. One way to implement MPI-IO portably is to implement it on top of the basic Unix I/O functions (open, lseek, read, write, and close), which are themselves portable. We argue that this approach has limitations in both functionality and petformancc. We instead advocatean implementation approach that combines a large portion of portable code and a small portion of code that is optimized separately for different machines and tile systems. We have used such an approach tu develop a high-performance, portable MPI-IO implementation, called ROMIO. In addition to basic I/O functionality, we consider the issues of supporting other MPI-IO features, such us 64-bit file sizes, noncontiguous accesses, collective I/O, asynchronous I/O, consistency and atomichy semantics, user-supplied hints, shared tile pointers, portable data representation, and file preallocatiou. We describe how we implemented each of these features on various machines and file systems. The machines we consider are the HP Exemplar,
26
MPI: A Message-Passing Interface Standard
Message P Forum · 1994 · 2.7K citations
Informed prefetching and caching
Russel H. Patterson, Garth A. Gibson, E. Ginting et al. · 1995 · 647 citations
Data sieving and collective I/O in ROMIO
Rajeev Thakur, William Gropp, Ewing Lusk · 1999 · 498 citations · Full text