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