R. Ross, D. Nurmi, A. Cheng, M. Zingale, "A Case Study in Application I/O on Linux Clusters," Preprint ANL/MCS-P888-0701, July 2001. [pdf]
A critical but often ignored component of system performance is the I/O system. Today's applications expect a great deal from underlying storage systems and software, and both high performance distributed storage and high level interfaces have been developed to fill these needs. In this paper we discuss the I/O performance of a parallel scientific application on a Linux cluster, the FLASH astrophysics code. This application relies on three I/O software components to provide high performance parallel I/O on Linux clusters: the Parallel Virtual File System (PVFS), the ROMIO MPI-IO implementation, and the Hierarchical Data Format (HDF5) library. First we discuss the roles played by each of these components in providing an I/O solution. Next we discuss the FLASH I/O benchmark and point out its relevance. Following this we examine the performance of our benchmark, and through instrumentation of both the application and underlying system software code we discover the location of major software bottlenecks. We work around the most inhibiting of these bottlenecks, showing substantial performance improvement. Finally we point out similarities between the inefficiencies found here and those found in message passing systems, indicating that research in the message passing field could be leveraged to solve similar problems in high-level I/O interfaces.