@InProceedings{smirni:evolutionary,
  author = {Evgenia Smirni and Ruth A. Aydt and Andrew A. Chien and Daniel A.
  Reed},
  title = {{I/O} Requirements of Scientific Applications: An Evolutionary
  View},
  booktitle = {Proceedings of the Fifth IEEE International Symposium on High
  Performance Distributed Computing},
  year = {1996},
  pages = {49--59},
  publisher = {IEEE Computer Society Press},
  address = {Syracuse, NY},
  later = {smirni:bevolutionary},
  keywords = {I/O, workload characterization, scientific computing, parallel
  I/O, pario-bib},
  abstract = {The modest I/O configurations and file system limitations of many
  current high-performance systems preclude solution of problems with large I/O
  needs. I/O hardware and file system parallelism is the key to achieving high
  performance. We analyze the I/O behavior of several versions of two
  scientific applications on the Intel Paragon XP/S. The versions involve
  incremental application code enhancements across multiple releases of the
  operating system. Studying the evolution of I/O access patterns underscores
  the interplay between application access patterns and file system features.
  Our results show that both small and large request sizes are common, that at
  present, application developers must manually aggregate small requests to
  obtain high disk transfer rates, that concurrent file accesses are frequent,
  and that appropriate matching of the application access pattern and the file
  system access mode can significantly increase application I/O performance.
  Based on these results, we describe a set of file system design principles.},
  comment = {They study two applications over several versions, using Pablo to
  capture the I/O activity. They thus watch as application developers improve
  the applications use of I/O modes and request sizes. Both applications move
  through three phases: initialization, computation (with out-of-core I/O or
  checkpointing I/O), and output. They found it necessary to tune the I/O
  request sizes to match the parameters of the I/O system. In the initial
  versions, the code used small read and write requests, which were (according
  to the developers) the "easiest and most natural implementation for their
  I/O." They restructured the I/O to make bigger requests, which better matched
  the capabilities of Intel PFS. They conclude that asynchronous and collective
  operations are imperative. They would like to see a file system that can
  adapt dynamically to adjust its policies to the apparent access patterns.
  Automatic request aggregation of some kind seems like a good idea; of course,
  that is one feature of a buffer cache.}
}

