Next: Mapping Files Up: Parallel I/O Previous: Parallel I/O
Two ideas have been advanced which use the idea of giving hints to the compiler without changing the Fortran file semantics.
The first is based on the observation that although the distribution of an array when it is written may be available to the compiler or runtime system, the distribution into which that array will be read cannot generally be known, even though the programmer may have this knowledge. So the proposal is to provide on a write a hint about how the data will be read.
!HPF IO_DISTRIBUTE * :: a WRITE a, b, c !HPF IO_DISTRIBUTE * :: b 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 meta-data is kept in the file system to record the ``right'' data layout. The advantages of this proposal include notation and efficiency.
The second proposal is to 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'':
we suggest 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.