Concepts
Logical file view:
etype:
basic unit of data access and file positioning
can be any predefined MPI datatyp
derived datatypes possible, if:
typemap displacements non-decreasing
no negative displacements
filetype:
sequence of etypes, possibly with holes in etype size
view:
defines the file data visible by a task
given by etype, filetype and offset to beginning of file (in bytes)
different views of a file possible (f.i. for different sections)
global distribution of data is given by combination of all task views:
Access modes:
positioning:
individual file pointer for each task (e.g.
MPI_File_read
)
one file pointer common to all tasks (e.g.
MPI_File_read_shared
) (requires same file view for all tasks)
explicit offset (e.g.
MPI_File_read_at
)
synchronism:
blocking (e.g.
MPI_File_read
)
non-blocking (e.g.
MPI_File_iread
/
MPI_Wait
)
coordination:
individual (e.g.
MPI_File_read
)
collectiv (e.g.
MPI_File_read_all
)
Physical file view:
information about the "physical" file in MPI_Info
some reserved keys, f.i.:
file_perm
permissions at file creation
io_node_list
list of i/o-devices for the file
striping_factor
number of devices for disk striping
Portability:
representation of data in a file in general architecture dependent
because of additional format conversions, we have:
better portability
lower performance
parameter
datarep
at definition of fileview allows different portability levels:
native:
internal (memory) format
for a homogeneous environment
internal:
useful in heterogeneous MPI environments
external32:
architecture independent format
portable between different MPI implementations
Peter Junglas 16.2.1999