Automated tracing of I/O stack

  • Authors:
  • Seong Jo Kim;Yuanrui Zhang;Seung Woo Son;Ramya Prabhakar;Mahmut Kandemir;Christina Patrick;Wei-keng Liao;Alok Choudhary

  • Affiliations:
  • Department of Computer Science and Engineering, Pennsylvania State University, PA;Department of Computer Science and Engineering, Pennsylvania State University, PA;Mathematics and Computer Science Division, Argonne National Laboratory, Argonne, IL;Department of Computer Science and Engineering, Pennsylvania State University, PA;Department of Computer Science and Engineering, Pennsylvania State University, PA;Department of Computer Science and Engineering, Pennsylvania State University, PA;Department of Electrical Engineering and Computer Science, Northwestern University, Evanston, IL;Department of Electrical Engineering and Computer Science, Northwestern University, Evanston, IL

  • Venue:
  • EuroMPI'10 Proceedings of the 17th European MPI users' group meeting conference on Recent advances in the message passing interface
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Efficient execution of parallel scientific applications requires high-performance storage systems designed to meet their I/O requirements. Most high-performance I/O intensive applications access multiple layers of the storage stack during their disk operations. A typical I/O request from these applications may include accesses to high-level libraries such as MPI I/O, executing on clustered parallel file systems like PVFS2, which are in turn supported by native file systems like Linux. In order to design and implement parallel applications that exercise this I/O stack, it is important to understand the flow of I/O calls through the entire storage system. Such understanding helps in identifying the potential performance and power bottlenecks in different layers of the storage hierarchy. To trace the execution of the I/O calls and to understand the complex interactions of multiple user-libraries and file systems, we propose an automatic code instrumentation technique, which enables us to collect detailed statistics of the I/O stack. Our proposed I/O tracing tool traces the flow of I/O calls across different layers of an I/O stack, and can be configured to work with different file systems and user-libraries. It also analyzes the collected information to generate output in terms of different user-specified metrics of interest.