Node Directive Up: Hints Previous: Hints

Mapping Files

A Fortran file is a sequence of records. We treat such file as a 1-D array of records with LB=1 and infinite UB. This array can be mapped to a (storage) node arrangement in a manner analogous to the mapping of an array to a (processor) node arrangement. Files are mapped using the same notation as for array mapping. The mapping defines a partition of the file, and each part is associated with one abstract node.

The mapping of a file to a node arrangement can be interpreted in two ways:

  1. The nodes may represent (abstract) independent storage units, each storing a fixed part of the file.
  2. The nodes may represent (abstract) independent file caches, with a fixed association of each cache with a part of the file.

In both cases the file is mapped onto physical I/O devices so as to allow maximal concurrency for accesses directed to distinct parts of the file. If the second interpretation is used, then it is meaningful to align arrays and files onto the same templates.

We introduce a new filemap object. Filemaps are, essentially, named files. They appear where an array name would appear in a array mapping expression. An actual file is associated with a FILEMAP in an OPEN statement. Filemaps are introduced because files are not first class objects in FORTRAN (files are not declared). Also, Filemaps can have rank 1, giving more flexibility in the types of mappings that can be specified.

The following diagram illustrates the mapping

                                   Node         Physical storage
File      Filemap     Template   arrangement    units (or caches)
 _           _           _           _               _

     OPEN        ALIGN    DISTRIBUTE   Implementation
Thu May 5 15:11:02 CDT 1994