3.4.3. MPI Datatypes
Up: Semantic Terms
Next: Datatypes
Previous: MPI Procedures
For datatypes, the following terms are defined:
-
predefined:
-
A predefined datatype is a datatype with a predefined (constant) name
(such as MPI_INT, MPI_FLOAT_INT, or MPI_PACKED)
or a datatype constructed with MPI_TYPE_CREATE_F90_INTEGER,
MPI_TYPE_CREATE_F90_REAL, or
MPI_TYPE_CREATE_F90_COMPLEX. The former are named
whereas the latter are unnamed.
-
derived:
-
A derived datatype is any datatype that is not predefined.
-
portable:
-
A datatype is portable if it is a predefined datatype, or it is derived
from a portable datatype using only the type constructors
MPI_TYPE_CONTIGUOUS, MPI_TYPE_VECTOR,
MPI_TYPE_INDEXED, MPI_TYPE_CREATE_INDEXED_BLOCK,
MPI_TYPE_CREATE_SUBARRAY, MPI_TYPE_DUP, and
MPI_TYPE_CREATE_DARRAY.
Such a datatype is portable because all displacements in the datatype
are in terms of extents of one predefined datatype. Therefore, if such a
datatype fits a data layout in one memory, it will fit the
corresponding data layout in another memory, if the same declarations
were used, even if the two systems have different architectures. On
the other hand, if a datatype was constructed using
MPI_TYPE_CREATE_HINDEXED,
MPI_TYPE_CREATE_HINDEXED_BLOCK,
MPI_TYPE_CREATE_HVECTOR or
MPI_TYPE_CREATE_STRUCT, then the datatype contains explicit byte
displacements (e.g., providing padding to meet alignment restrictions).
These displacements are unlikely to be chosen correctly if they fit
data layout on one memory, but are used for data layouts on another
process, running on a processor with a different architecture.
-
equivalent:
-
Two datatypes are equivalent if they appear to have been created with
the same sequence of calls (and arguments) and thus have the same
typemap. Two equivalent datatypes do not necessarily have the same
cached attributes or the same names.
Up: Semantic Terms
Next: Datatypes
Previous: MPI Procedures
Return to MPI-4.1 Standard Index
Return to MPI Forum Home Page
(Unofficial) MPI-4.1 of November 2, 2023
HTML Generated on November 19, 2023