VIEW Directive Up: High Performance Fortran Journal Previous: Overview


High Performance Fortran has exactly the same Input/Output facilities that are available in Fortran 90.

One of the High Performance Fortran Forum working groups was dedicated to I/O extensions for parallel machines. The objective was to define a set of extensions to standard Fortran 90 I/O which would provide high I/O performance on a massively parallel computer running HPF.

Three proposals in this spirit were offered. The basic idea of these proposals is outlined here and the proposals themselves appear in Section 13.

The HPFF voted not to include I/O extensions in the first version of the language. Arguments for this position include:

Moreover the current lack of extensions does not limit features that may be added by system vendors. In particular:

The proposals made to the I/O subgroup were based on the following observations:

The proposals were that HPF should provide explicit control to obtain high performance I/O. In essence the three proposals were:

  1. On a write, give a hint about how the data will be read.

    !HPF IO_DISTRIBUTE * :: a WRITE a, b, c When an array is written, it can be easily read back in the given distribution. The annotation can be associated with either the declaration or the write itself; in the first case it applies to all writes of the array, while in the second it only applies to the one statement. The intent is that metadata is kept in the file system to record the ``right'' data layout. The advantages of this proposal include notation and efficiency.

  2. Give hints about the physical layout (number of spins, record length, striping function, etc.) of the file when it is opened.

    This uses the HPF array mapping mechanisms. (A file is a 1-dimensional array of records.) The syntax needs a ``name'' for the file ``template''; the proposal is to use FILEMAP. The programmer can align/distribute FILEMAP (on I/O nodes), associate FILEMAP with a file on OPEN, etc. There are no changes in semantics or file system.

  3. Introduce parallel read/write operations that are not necessarily compatible with sequential ones.

    PWRITE a PREAD a Data can be read back only into arrays of the same shape and mapping. Data written by PWRITE must be read by PREAD. This solution does not need metadata in the file system or changes in the file system but is incompatible with the standard READ and WRITE.

VIEW Directive Up: High Performance Fortran Journal Previous: Overview
Thu May 5 15:11:02 CDT 1994