Typical large-scale scientific applications periodically write checkpoint files to save the computational state throughout execution. Existing parallel file systems improve such write-only I/O patterns through the use of client-side file caching and write-behind strategies. In distributed environments where files are rarely accessed by more than one client concurrently, file caching has achieved significant success; however, in parallel applications where multiple clients manipulate a shared file, cache coherence control can serialize I/O. We have designed a thread based caching layer for the MPI I/O library, which adds a portable caching system closer to user applications so more information about the application's I/O patterns is available for better coherence control. We demonstrate the impact of our caching solution on parallel write performance with a comprehensive evaluation that includes a set of widely used I/O benchmarks and production application I/O kernels.
['Wei-keng Liao', 'Avery Ching', 'Kenin Coloma', 'Arifa Nisar', 'Alok N. Choudhary', 'Jacqueline H. Chen', 'Ramanan Sankaran', 'Scott Klasky']
Using MPI file caching to improve parallel write performance for large-scale scientific applications