Cooperative client-side file caching for MPI applications

Wei Keng Liao*, Kenin Coloma, Alok Choudhary, Lee Ward

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

8 Scopus citations


Client-side file caching is one of many I/O strategies adopted by today's parallel file systems that were initially designed for distributed systems. Most of these implementations treat each client independently because clients' computations are seldom related to each other in a distributed environment. However, it is misguided to apply the same assumption directly to high-performance computers where many parallel I/O operations come from a group of processes working within the same parallel application. Thus, file caching could perform more effectively if the scope of processes sharing the same file is known. In this paper, we propose a client-side file caching system for MPI applications that perform parallel I/O operations on shared files. In our design, an I/O thread is created and runs concurrently with the main thread in each MPI process. The MPI processes that collectively open a shared file use the I/O threads to cooperate with each other to handle file requests, cache page access, and coherence control. By bringing the caching subsystem closer to the applications as a user space library, it can be incorporated into an MPI I/O implementation to increase its portability. Performance evaluations using three I/O benchmarks demonstrate a significant improvement over traditional methods that use either byte-range file locking or rely on coherent I/O provided by the file system.

Original languageEnglish (US)
Pages (from-to)144-154
Number of pages11
JournalInternational Journal of High Performance Computing Applications
Issue number2
StatePublished - May 2007


  • Cache coherence
  • Client-side file caching
  • I/O thread
  • MPI I/O
  • Parallel I/O

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture


Dive into the research topics of 'Cooperative client-side file caching for MPI applications'. Together they form a unique fingerprint.

Cite this