Next: HPF2 Scope of
Up: Journal of Development
Previous: Elemental Reference of
HPF is primarily designed to obtain high performance on massively
parallel computers. Such massively parallel machines also need
massively parallel input and output. Accordingly, there were three major proposals
to include explicitly parallel I/O features in HPF, as well as several
minor variations on the same theme. After much debate, HPFF voted not to include I/O extensions in the first version of HPF.
(NOTE, however, that HPF1.1 defines changes to
Fortran 90 data type of a few of the I/O keyword
inquiry specifiers to allow for the possibility of
very large files. See section
on
Fortran 90 Binding earlier in this chapter.)
The arguments for not making further extensions or
changes for parallel I/O in HPF included:
- The diversity of current parallel I/O systems does not suggest any
portable abstraction of I/O useful in a language model.
- Fortran I/O is already highly expressive.
- The HPF compiler can optimize the I/O when
writing distributed arrays without any extensions to the source language.
- The management of distributed files (and their implementation)
is a matter for the operating system, not the language.
Moreover the current lack of extensions does not limit features
that may be added by system vendors. In particular:
- Vendors are allowed to implement any I/O extensions to the
language they may wish. Indeed this would be impossible to prevent.
There are simply no special I/O mechanisms mandated by HPF.
- The HPF run-time system may use whatever facilities the
operating system provides for accessing ``high performance'' files,
though the HPF language contains no I/O extensions that specifically
describe such access.