@TechReport{choudhary:sio-language,
  author = {Alok Choudhary and Ian Foster and Geoffrey Fox and Ken Kennedy and
  Carl Kesselman and Charles Koelbel and Joel Saltz and Marc Snir},
  title = {Languages, Compilers, and Runtime Systems Support for Parallel
  Input-Output},
  year = {1994},
  number = {CCSF-39},
  institution = {Scalable I/O Initiative},
  address = {Caltech Concurrent Supercomputing Facilities, Caltech},
  URL = {http://www.cacr.caltech.edu/SIO/pubs/SIO_comp.ps},
  keywords = {parallel I/O, multiprocessor file system, pario-bib},
  comment = {Language extensions to support parallel I/O. Compiler
  optimizations. Runtime library to support the compiler and interface with the
  native file system. Compiler would develop a mapping of data to the processor
  memories and to the disks, and then decide on I/O schedules to move data
  around, overlap I/O with computation, even move computation around to best
  fit what is available in memory at a given time. It can also help with
  checkpointing. Compiler should pass info to the runtime system, which in turn
  may need to pass info to the file system, to help with optimization. I/O
  scheduling includes reordering accesses; they even go so far as to propose
  doing seek optimization in the runtime library. Support for collective I/O.
  Extension of MPI to I/O, to take advantage of its support for asynchrony,
  scatter-gather, etc.\ On the way, they hope to work with the FS people to
  decide on the functional requirements of the file system. See also
  poole:sio-survey, bagrodia:sio-character, bershad:sio-os.}
}

