table of contents
MPI_Type_contiguous(3) | Open MPI | MPI_Type_contiguous(3) |
NAME¶
MPI_Type_contiguous - Creates a contiguous datatype.SYNTAX¶
C Syntax¶
#include <mpi.h> int MPI_Type_contiguous(int count, MPI_Datatype oldtype, MPI_Datatype *newtype)
Fortran Syntax¶
INCLUDE 'mpif.h' MPI_TYPE_CONTIGUOUS(COUNT, OLDTYPE, NEWTYPE, IERROR) INTEGER COUNT, OLDTYPE, NEWTYPE, IERROR
C++ Syntax¶
#include <mpi.h> Datatype Datatype::Create_contiguous(int count) const
INPUT PARAMETERS¶
- count
- Replication count (nonnegative integer).
- oldtype
- Old datatype (handle).
OUTPUT PARAMETERS¶
- newtype
- New datatype (handle).
- IERROR
- Fortran only: Error status (integer).
DESCRIPTION¶
The simplest datatype constructor is MPI_Type_contiguous, which allows replication of a datatype into contiguous locations.newtype is the datatype obtained by concatenating count copies of oldtype. Concatenation is defined using the extent of oldtype as the size of the concatenated copies.
Example: Let oldtype have type map {(double, 0), (char, 8)}, with extent 16, and let count = 3. The type map of the datatype returned by newtype is
{(double, 0), (char, 8), (double, 16), (char, 24), (double, 32), (char, 40)];
i.e., alternating double and char elements, with displacements 0, 8, 16, 24, 32, 40.
In general, assume that the type map of oldtype is
{(type(0), disp(0)),...,(type(n-1), disp(n-1))},
with extent ex. Then newtype has a type map with count times n entries defined by:
{(type(0), disp(0)), ...,(type(n-1), disp(n-1)), (type(0), disp(0) + ex), ...,(type(n-1), disp(n-1) + ex), ...,(type(0), disp(0) + ex * (count - 1)), ...,(type(n-1), disp(n-1) + ex * (count - 1))}.
For more information about derived datatypes, see Section 3.12 of the MPI-1 Standard.
ERRORS¶
Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI::Exception object.Before the error value is returned, the current MPI error handler is called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.
January 31, 2017 | 2.0.2 |