@Article{parsons:templates,
  author = {Ian Parsons and Ron Unrau and Jonathan Schaeffer and Duane
  Szafron},
  title = {{PI/OT}: Parallel {I/O} Templates},
  journal = {Parallel Computing},
  year = {1997},
  month = {June},
  volume = {23},
  number = {4},
  pages = {543--570},
  publisher = {North-Holland (Elsevier Scientific)},
  keywords = {parallel programming, parallel I/O, pario-bib},
  abstract = {This paper presents a novel, top-down, high-level approach to
  parallelizing file I/O. Each parallel file descriptor is annotated with a
  high-level specification, or template, of the expected parallel behaviour.
  The annotations are external to and independent of the source code. At
  run-time, all I/O using a parallel file descriptor adheres to the semantics
  of the selected template. By separating the parallel I/O specifications from
  the code, a user can quickly change the I/O behaviour without rewriting code.
  Templates can be composed hierarchically to construct complex access
  patterns. \par Two sample parallel programs using these templates are
  compared against versions implemented in an existing parallel I/O system
  (PIOUS). The sample programs show that the use of parallel I/O templates are
  beneficial from both the performance and software engineering points of
  view.},
  comment = {An interesting approach in which they try to separate the
  description of the parallelism in a file's access from the sequential
  programming used to access the file. Seems like a good idea. It seems to
  assume that the programmer was porting an existing sequential code, or
  prefers to write their parallel program with a sequential frame of mind,
  including the existing fopen/fread/fwrite stdio interface. They retain the
  traditional stream-of-bytes file structure. See also parsons:complex.}
}

