We may want to write an array with a layout that is suited to
the mapping of the array that will appear in the input item list,
rather than suited to the mapping of the array in the output list.
To achieve this, we need to add align/distribute information as part
of the PWRITE statement.
We may want a REMAP statement, to be used instead of the
sequence CLOSE ... OPEN, in order to associate a new mapping
to an existing file.
We may want to extend the INQUIRE statement to return file
mapping information. Alternatively, we may use the same query
intrinsics used to query array partitions.
A new intrinsic function of the form INDEX(filemap-name,
list-of-indices) would be handy, in order to address
random-access files as multi-dimensional arrays. E.g.
Each data transfer operation specifies an association between
parts of the file and abstract processor nodes where from (where to)
the data in the record is transferred. We may want to add
additional directives to the OPEN statement to indicate that this
association fulfills certain restrictions for as long as the file is
open.
Accesses to a file are independent if, in all data
transfers, each file part is associated with the same processor
node. An INDEPENDENT argument in the OPEN statement may be
used to specify this condition (which simplifies file caching).
A data transfer is aligned if each file part is associated
with a unique processor node (is not split among two processor
nodes). We may use an ALIGNED argument in the OPEN statement
to specify that all data transfers are aligned. (INDEPENDENT
implies ALIGNED, but not vice versa).