9.1.1. Definitions



Up: Introduction Next: File Manipulation Previous: Introduction
- file
-  
An  MPI file is an ordered collection of typed data items.  
 MPI supports random or sequential access to any integral set of these items.  
  
A file is opened collectively by a group of processes.  
All collective I/O calls on a file are collective over this group.  
- displacement
-  
A file  displacement is an absolute byte position  
relative to the beginning of a file.  
The displacement defines the location where a  view begins.  
Note that a ``file displacement'' is distinct from a ``typemap displacement.''  
- etype
-  
An  etype ( elementary datatype)  
is the unit of data access and positioning.  
It can be any  MPI predefined or derived datatype.  
Derived etypes can be constructed  
using any of the  MPI datatype constructor routines,  
provided all resulting typemap displacements are nonnegative  
and monotonically nondecreasing.  
Data access is performed in etype units,  
reading or writing whole data items of type etype.  
Offsets are expressed as a count of etypes;  
file pointers point to the beginning of etypes.  
Depending on context,  
the term ``etype'' is used to describe one of three aspects  
of an elementary datatype:  
a particular  MPI type,  
a data item of that type,  
or the extent of that type.  
- filetype
-  
A  filetype is the basis for partitioning a file among processes  
and defines a template for accessing the file.  
A filetype is either a single etype or a derived  MPI datatype  
constructed from multiple instances of the same etype.  
In addition,  
the extent of any hole in the filetype  
must be a multiple of the etype's extent.  
  
  
The displacements in the typemap of the filetype are not required to be distinct,  
  
but they must be nonnegative and monotonically nondecreasing.  
- view
-  
A  view defines the current set of data visible  
and accessible from an open file as an ordered set of etypes.  
Each process has its own view of the file,  
defined by three quantities:  
a displacement, an etype, and a filetype.  
The pattern described by a filetype is repeated,  
beginning at the displacement, to define the view.  
  
The pattern of repetition is defined to be the same pattern  
that  MPI_TYPE_CONTIGUOUS would produce if it were passed  
the filetype and an arbitrarily large count.  
Figure 13
 shows how the tiling works; note   
that the filetype in this example must have explicit   
lower and upper bounds set in order for the initial and final holes to be  
repeated in the view.  
  
Views can be changed by the user during program execution.  
The default view is a linear byte stream  
(displacement is zero, etype and filetype equal to  MPI_BYTE).  
 [ ]Etypes and filetypes A group of processes can use complementary views to achieve a global data distribution such as a scatter/gather pattern (see Figure 14 ).  [ ]Partitioning a file among parallel processes 
- offset
-  
An  offset is a position  
in the file  
  
relative to the current view,  
expressed as a count of etypes.  
Holes in the view's filetype are skipped when calculating this position.  
Offset 0 is the location of the first etype visible in the view  
(after skipping the displacement and any initial holes in the view).  
For example, an offset of 2 for process 1  
in Figure 14
 is the position  
of the 8th etype in the file after the displacement.  
  
  
An ``explicit offset'' is an offset that is used as a formal parameter  
in explicit data access routines.  
- file size and end of file
-  
The  size of an  MPI file is measured in bytes from the   
beginning of the file.  A newly created file has a size of zero   
bytes.  Using the size as an absolute displacement gives   
the position of the byte immediately following the last byte in   
the file.  For any given view, the  end of file is the   
offset of the first etype accessible in the current view starting  
after the last byte in the file.  
  
  
- file pointer
-  
A  file pointer is an implicit offset maintained by  MPI.  
``Individual file pointers'' are file pointers that are local to  
each process that opened the file.  
A ``shared file pointer'' is a file pointer that is shared by  
the group of processes that opened the file.  
- file handle
-  
A  file handle is an opaque object created by  MPI_FILE_OPEN  
and freed by  MPI_FILE_CLOSE.  
All operations on an open file  
reference the file through the file handle.  



Up: Introduction Next: File Manipulation Previous: Introduction
Return to MPI-2 Standard Index
MPI-2.0 of July 18, 1997
HTML Generated on August 11, 1997
