General Datatypes
MPI's basic datatypes are mostly drawn from the standard language-defined types from C and Fortran.
However, MPI provides constructors for the following
- Contiguous
- Vector with "stride" of one
- Vector
- Fixed-size blocks separated by constant stride
- Hvector
- Like vector, but with stride in bytes
- Indexed
- Arrays of block sizes and indices (like scatterv/gatherv)
- Hindexed
- Like indexed, but with indices in bytes
- Indexed_block
- same as an Indexed block, but with uniform block sizes.
- Hindexed_block
- same as Indexed_block, but with displacement indices in bytes.
- Struct
- General mixed types (for C structs etc.)
The Contiguous, Vector and Indexed types are created using a function with the form MPI_Type_*. The rest of the general data types, including indexed_block, are created using functions with names in the form of MPI_Type_create_*.