Next: Node Directive Up: Hints Previous: Hints
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:
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 Dependent