Up: High Performance Fortran Journal Previous: Constraints
High Performance Fortran is primarily designed to obtain high
performance on massively parallel computers. Such massively parallel
machines also need massively parallel I/O.
There are difficulties in getting high performance I/O:
- Efficient programs must avoid sequential bottlenecks from
processors to file systems
- Fortran specifies that a file appears in element storage order;
this conflicts with striped files (for example, an array distributed
by rows may be written to a file striped by columns).
In particular Fortran file organization has limits:
- Files have a sequential organization. (Even direct access files
have records in sequential order, though they can be accessed out of
- Fortran files are record oriented
- Storage and sequence association are in force (when writing and
then reading a file, for instance)
- No specification of the physical organization is possible
- No compatibility with other languages/machines is guaranteed
With these in mind there are two major approaches that have been suggested:
- Define hints (annotations) that do not change file semantics, in
the spirit of data distribution. (This gives some information to the
- Introduce parallel read/write operations that are not
necessarily compatible with sequential ones.