@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.}
}

