@Article{smirni:lessons, author = {E. Smirni and D.A. Reed}, title = {Lessons from characterizing the input/output behavior of parallel scientific applications}, journal = {Performance Evaluation: An International Journal}, year = {1998}, month = {June}, volume = {33}, number = {1}, pages = {27--44}, publisher = {Elsevier Science}, earlier = {smirni:workload}, URL = {http://dx.doi.org/10.1016/S0166-5316(98)00009-1}, keywords = {workload characterization, parallel I/O, scientific applications, pario-bib}, abstract = {As both processor and interprocessor communication hardware is evolving rapidly with only moderate improvements to file system performance in parallel systems, it is becoming increasingly difficult to provide sufficient input/output (I/O) performance to parallel applications. I/O hardware and file system parallelism are the key to bridging this performance gap. Prerequisite to the development of efficient parallel file systems is the detailed characterization of the I/O demands of parallel applications. In the paper, we present a comparative study of parallel I/O access patterns, commonly found in I/O intensive scientific applications. The Pablo performance analysis tool and its I/O extensions is a valuable resource in capturing and analyzing the I/O access attributes and their interactions with extant parallel I/O systems. This analysis is instrumental in guiding the development of new application programming interfaces (APIs) for parallel file systems and effective file system policies that respond to complex application I/O requirements.}, comment = {This paper compares the I/O performance of five scientific applications from the scalable I/O initiative (SIO) suite of applications. Their goals are to collect detailed performance data on applications characteristics and access patterns and to use that information to design and evaluate parallel file system policies and parallel file system APIs. The related work section gives a nice overview of recent I/O characterization studies. They use the Pablo \cite{reed:pablo} performance analysis environment to analyze the performance of their five applications. The applications they chose to evaluate include: MESSKIT and NWChem, two implementations of the Hartree-Fock method for computational chemistry applications; QCRD, a quantum chemical reaction dynamics application; PRISM, a parallel 3D numerical simulation of the Navier-Stokes equations that models high speed turbulent flow that is periodic in one direction; ECAT, a parallel implementation of the Schwinger multichannel method used to calculate low-energy electron molecule collisions. \par The results showed that applications use a combination of both sequential and interleaved access patterns, which shows that there is a clear need for a more complex API than what is given by the standard UNIX API. In addition, when applications required concurrent accesses, they commonly channeled all I/O requests through a single node. Some form of collective I/O would have helped in these cases. They also made an observation that despite the existence of several parallel I/O APIs, programmers of scientific applications preferred to use standard unix. This is mostly due to the lack of an established portable standard. Their study was "instrumental in the design and implementation of MPI-IO". \par Their section on emerging I/O APIs is particularly interesting. They comment that "the diversity of I/O request sizes and patterns suggests that achieving high performance is unlikely with a single file system policy." Their solution is to have a file system in which the user can give "hints" to the file system expressing expected access patterns or to have a file system that automatically classifies access patterns. The file system can then chose policies to deal with the access patterns.} }