IBM Books

MPI Programming Guide


Bindings for derived datatypes

Table 20 lists the bindings for derived datatype subroutines.

Table 20. Bindings for derived datatypes

Subroutine name:
C
C++
FORTRAN
Binding:
C
C++
FORTRAN
MPI_Address int MPI_Address(void* location, MPI_Aint *address);
(none) (none)
MPI_ADDRESS MPI_ADDRESS(CHOICE LOCATION, INTEGER ADDRESS, INTEGER IERROR)
MPI_Get_address int MPI_Get_address(void *location, MPI_Aint *address);
MPI::Get_address MPI::Aint MPI::Get_address(void* location);
MPI_GET_ADDRESS MPI_GET_ADDRESS(CHOICE LOCATION(*), INTEGER(KIND=MPI_ADDRESS_KIND) ADDRESS, INTEGER IERROR)
MPI_Get_elements int MPI_Get_elements(MPI_Status *status,MPI_Datatype datatype,int *count);
MPI::Status::Get_elements int MPI::Status::Get_elements(const MPI::Datatype& datatype) const;
MPI_GET_ELEMENTS MPI_GET_ELEMENTS(INTEGER STATUS(MPI_STATUS_SIZE),INTEGER DATATYPE,INTEGER COUNT,INTEGER IERROR)
MPI_Pack int MPI_Pack(void* inbuf,int incount,MPI_Datatype datatype,void *outbuf, int outsize,int *position,MPI_Comm comm);
MPI::Datatype::Pack void MPI::Datatype::Pack(const void* inbuf, int incount, void* outbuf, int outsize, int& position, const MPI::Comm& comm) const;
MPI_PACK MPI_PACK(CHOICE INBUF,INTEGER INCOUNT,INTEGER DATATYPE,CHOICE OUTBUF,INTEGER OUTSIZE,INTEGER POSITION,INTEGER COMM,INTEGER IERROR)
MPI_Pack_external int MPI_Pack_external(char *datarep, void *inbuf, int incount, MPI_Datatype datatype, void *outbuf, MPI_Aint outsize, MPI_Aint *position);
MPI::Datatype::Pack_external void MPI::Datatype::Pack_external(const char* datarep, const void* inbuf, int incount, void* outbuf, MPI::Aint outsize, MPI_Aint& position) const;
MPI_PACK_EXTERNAL MPI_PACK_EXTERNAL(CHARACTER*(*) DATAREP, CHOICE INBUF(*), INTEGER INCOUNT, INTEGER DATATYPE, CHOICE OUTBUF(*), INTEGER(KIND=MPI_ADDRESS_KIND) OUTSIZE, INTEGER(KIND=MPI_ADDRESS_KIND) POSITION, INTEGER IERROR)
MPI_Pack_external_size int MPI_Pack_external_size(char *datarep, int incount, MPI_Datatype datatype,MPI_Aint *size);
MPI::Datatype::Pack_external_size MPI::Aint MPI::Datatype::Pack_external_size(const char* datarep, int incount) const;
MPI_PACK_EXTERNAL_SIZE MPI_PACK_EXTERNAL_SIZE(CHARACTER*(*) DATAREP, INTEGER INCOUNT, INTEGER DATATYPE, INTEGER(KIND=MPI_ADDRESS_KIND) SIZE, INTEGER IERROR
MPI_Pack_size int MPI_Pack_size(int incount,MPI_Datatype datatype,MPI_Comm comm,int *size);
MPI::Datatype::Pack_size int MPI::Datatype::Pack_size(int incount, const MPI::Comm& comm) const;
MPI_PACK_SIZE MPI_PACK_SIZE(INTEGER INCOUNT,INTEGER DATATYPE,INTEGER COMM,INTEGER SIZE,INTEGER IERROR)
(none) (none)
(none) (none)
MPI_SIZEOF MPI_SIZEOF(CHOICE X, INTEGER SIZE, INTEGER IERROR)
MPI_Type_commit int MPI_Type_commit(MPI_Datatype *datatype);
MPI::Datatype::Commit void MPI::Datatype::Commit();
MPI_TYPE_COMMIT MPI_TYPE_COMMIT(INTEGER DATATYPE,INTEGER IERROR)
MPI_Type_contiguous int MPI_Type_contiguous(int count,MPI_Datatype oldtype,MPI_Datatype *newtype);
MPI::Datatype::Create_contiguous MPI::Datatype MPI::Datatype::Create_contiguous(int count) const;
MPI_TYPE_CONTIGUOUS MPI_TYPE_CONTIGUOUS(INTEGER COUNT,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR)
MPI_Type_create_darray int MPI_Type_create_darray (int size,int rank,int ndims, int array_of_gsizes[],int array_of_distribs[], int array_of_dargs[],int array_of_psizes[], int order,MPI_Datatype oldtype,MPI_Datatype *newtype);
MPI::Datatype::Create_darray MPI::Datatype MPI::Datatype::Create_darray(int size, int rank, int ndims, const int array_of_gsizes[], const int array_of_distribs[], const int array_of_dargs[], const int array_of_psizes[], int order) const;
MPI_TYPE_CREATE_DARRAY MPI_TYPE_CREATE_DARRAY (INTEGER SIZE,INTEGER RANK,INTEGER NDIMS, INTEGER ARRAY_OF_GSIZES(*),INTEGER ARRAY_OF_DISTRIBS(*), INTEGER ARRAY_OF_DARGS(*),INTEGER ARRAY_OF_PSIZES(*), INTEGER ORDER,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR)
MPI_Type_create_f90_complex int MPI_Type_create_f90_complex(int p, int r, MPI_Datatype *newtype);
MPI::Datatype::Create_f90_complex static MPI::Datatype MPI::Datatype::Create_f90_complex(int p, int r);
MPI_TYPE_CREATE_F90_COMPLEX MPI_TYPE_CREATE_F90_COMPLEX(INTEGER P, INTEGER R, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_create_f90_integer int MPI_Type_create_f90_integer(int r, MPI_Datatype *newtype);
MPI::Datatype::Create_f90_integer static MPI::Datatype MPI::Datatype::Create_f90_integer(int r);
MPI_TYPE_CREATE_F90_INTEGER MPI_TYPE_CREATE_F90_INTEGER(INTEGER R, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_create_f90_real int MPI_Type_create_f90_real(int p, int r, MPI_Datatype *newtype);
MPI::Datatype::Create_f90_real static MPI::Datatype MPI::Datatype::Create_f90_real(int p, int r);
MPI_TYPE_CREATE_F90_REAL MPI_TYPE_CREATE_F90_REAL(INTEGER P, INTEGER R, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_create_hindexed int MPI_Type_create_hindexed(int count, int array_of_blocklengths[], MPI_Aint array_of_displacements[], MPI_Datatype oldtype,MPI_Datatype *newtype);
MPI::Datatype::Create_hindexed MPI::Datatype MPI::Datatype::Create_hindexed(int count, const int array_of_blocklengths[], const MPI::Aint array_of_displacements[]) const;
MPI_TYPE_CREATE_HINDEXED MPI_TYPE_CREATE_HINDEXED(INTEGER COUNT, INTEGER ARRAY_OF_BLOCKLENGTHS(*), INTEGER(KIND=MPI_ADDRESS_KIND) ARRAY_OF DISPLACEMENTS(*), INTEGER OLDTYPE, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_create_hvector int MPI_Type_create_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype, MPI_Datatype *newtype);
MPI::Datatype::Create_hvector MPI::Datatype MPI::Datatype::Create_hvector(int count, int blocklength, MPI::Aint stride) const;
MPI_TYPE_CREATE_HVECTOR MPI_TYPE_CREATE_HVECTOR(INTEGER COUNT, INTEGER BLOCKLENGTH, INTEGER(KIND=MPI_ADDRESS_KIND) STRIDE, INTEGER OLDTYPE, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_create_indexed_block int MPI_Type_create_indexed_block(int count, int blocklength, int array_of_displacements[], MPI_Datatype oldtype, MPI_datatype *newtype);
MPI::Datatype::Create_indexed_block MPI::Datatype MPI::Datatype::Create_indexed_block(int count, int blocklength, const int array_of_displacements[]) const;
MPI_TYPE_CREATE_INDEXED_BLOCK MPI_TYPE_CREATE_INDEXED_BLOCK(INTEGER COUNT, INTEGER BLOCKLENGTH, INTEGER ARRAY_OF DISPLACEMENTS(*), INTEGER OLDTYPE, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_create_keyval int MPI_Type_create_keyval (MPI_Type_copy_attr_function *type_copy_attr_fn, MPI_Type_delete_attr_function *type_delete_attr_fn, int *type_keyval, void *extra_state);
MPI::Datatype::Create_keyval int MPI::Datatype::Create_keyval(MPI::Datatype::Copy_attr_function* type_copy_attr_fn, MPI::Datatype::Delete_attr_function* type_delete_attr_fn, void* extra_state);
MPI_TYPE_CREATE_KEYVAL MPI_TYPE_CREATE_KEYVAL(EXTERNAL TYPE_COPY_ATTR_FN, EXTERNAL TYPE_DELETE_ATTR_FN, INTEGER TYPE_KEYVAL, INTERGER EXTRA_STATE, INTEGER IERROR)
MPI_Type_create_resized int MPI_Type_create_resized(MPI_Datatype oldtype, MPI_Aint lb, MPI_Aint extent, MPI_Datatype *newtype);
MPI::Datatype::Create_resized MPI::Datatype MPI::Datatype::Create_resized(const MPI::Aint lb, const MPI::Aint extent) const;
MPI_TYPE_CREATE_RESIZED MPI_TYPE_CREATE_RESIZED(INTEGER OLDTYPE, INTEGER LB, INTEGER(KIND=MPI_ADDRESS_KIND) EXTENT, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_create_struct int MPI_Type_create_struct(int count, int array_of_blocklengths[], MPI_Aint array_of_displacements[], MPI_Datatype array_of_types[], MPI_datatype *newtype);
MPI::Datatype::Create_struct static MPI::Datatype MPI::Datatype::Create_struct(int count, const int array_of_blocklengths[], const MPI::Aint array_of_displacements[], const MPI::Datatype array_of_types[]);
MPI_TYPE_CREATE_STRUCT MPI_TYPE_CREATE_STRUCT(INTEGER COUNT, INTEGER ARRAY_OF_BLOCKLENGTHS(*), INTEGER(KIND=MPI_ADDRESS_KIND) ARRAY_OF DISPLACEMENTS(*), INTEGER ARRAY_OF_TYPES(*), INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_create_subarray int MPI_Type_create_subarray (int ndims,int array_of_sizes[], int array_of_subsizes[],int array_of_starts[], int order,MPI_Datatype oldtype,MPI_Datatype *newtype);
MPI::Datatype::Create_subarray MPI::Datatype MPI::Datatype::Create_subarray(int ndims, const int array_of_sizes[], const int array_of_subsizes[], const int array_of_starts[], int order) const;
MPI_TYPE_CREATE_SUBARRAY MPI_TYPE_CREATE_SUBARRAY (INTEGER NDIMS,INTEGER ARRAY_OF_SUBSIZES(*), INTEGER ARRAY_OF_SIZES(*),INTEGER ARRAY_OF_STARTS(*), INTEGER ORDER,INTEGER OLDTYPE,INTEGER NEWTYPE,INTEGER IERROR)
MPI_Type_delete_attr int MPI_Type_delete_attr (MPI_Datatype type, int type_keyval);
MPI::Datatype::Delete_attr void MPI::Datatype::Delete_attr(int type_keyval);
MPI_TYPE_DELETE_ATTR MPI_TYPE_DELETE_ATTR(INTEGER TYPE, INTEGER TYPE_KEYVAL, INTEGER IERROR)
MPI_Type_dup int MPI_Type_dup (MPI_Datatype type, MPI_Datatype *newtype);
MPI::Datatype::Dup MPI::Datatype MPI::Datatype::Dup() const;
MPI_TYPE_DUP MPI_TYPE_DUP(INTEGER TYPE, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_extent int MPI_Type_extent(MPI_Datatype datatype, int *extent);
(none) (none)
MPI_TYPE_EXTENT MPI_TYPE_EXTENT(INTEGER DATATYPE, INTEGER EXTENT, INTEGER IERROR)
MPI_Type_free int MPI_Type_free(MPI_Datatype *datatype);
MPI::Datatype::Free void MPI::Datatype::Free();
MPI_TYPE_FREE MPI_TYPE_FREE(INTEGER DATATYPE,INTEGER IERROR)
MPI_Type_free_keyval int MPI_Type_free_keyval (int *type_keyval);
MPI::Datatype::Free_keyval void MPI::Datatype::Free_keyval(int& type_keyval);
MPI_TYPE_FREE_KEYVAL MPI_TYPE_FREE_KEYVAL(INTEGER TYPE_KEYVAL, INTEGER IERROR)
MPI_Type_get_attr int MPI_Type_get_attr (MPI_Datatype type, int type_keyval, void *attribute_val, int *flag);
MPI::Datatype::Get_attr bool MPI::Datatype::Get_attr(int type_keyval, void* attribute_val) const;
MPI_TYPE_GET_ATTR MPI_TYPE_GET_ATTR(INTEGER TYPE, INTEGER TYPE_KEYVAL, INTEGER ATTRIBUTE_VAL, LOGICAL FLAG, INTEGER IERROR)
MPI_Type_get_contents int MPI_Type_get_contents(MPI_Datatype datatype, int *max_integers, int *max_addresses, int *max_datatypes, int array_of_integers[], int array_of_addresses[], int array_of_datatypes[]);
MPI::Datatype::Get_contents void MPI::Datatype::Get_contents(int max_integers, int max_addresses, int max_datatypes, int array_of_integers[], MPI::Aint array_of_addresses[], MPI::Datatype array_of_datatypes[]) const;
MPI_TYPE_GET_CONTENTS MPI_TYPE_GET_CONTENTS(INTEGER DATATYPE, INTEGER MAX_INTEGERS, INTEGER MAX_ADDRESSES, INTEGER MAX_DATATYPES, INTEGER ARRAY_of_INTEGERS(*), INTEGER ARRAY_OF_ADDRESSES(*), INTEGER ARRAY_of_DATATYPES(*), INTEGER IERROR)
MPI_Type_get_envelope int MPI_Type_get_envelope(MPI_Datatype datatype, int *num_integers, int *num_addresses, int *num_datatypes, int *combiner);
MPI::Datatype::Get_envelope void MPI::Datatype::Get_envelope(int& num_integers, int& num_addresses, int& num_datatypes, int& combiner) const;
MPI_TYPE_GET_ENVELOPE MPI_TYPE_GET_ENVELOPE(INTEGER DATATYPE, INTEGER NUM_INTEGERS, INTEGER NUM_ADDRESSES, INTEGER NUM_DATATYPES, INTEGER COMBINER, INTEGER IERROR)
MPI_Type_get_extent int MPI_Type_get_extent(MPI_Datatype datatype, MPI_Aint *lb, MPI_Aint *extent);
MPI::Datatype::Get_extent void MPI::Datatype::Get_extent(MPI::Aint& lb, MPI::Aint& extent) const;
MPI_TYPE_GET_EXTENT MPI_TYPE_GET_EXTENT(INTEGER DATATYPE, INTEGER(KIND=MPI_ADDRESS_KIND) LB, INTEGER(KIND=MPI_ADDRESS_KIND) EXTENT, INTEGER IERROR)
MPI_Type_get_true_extent int MPI_Type_get_true_extent(MPI_Datatype datatype, MPI_Aint *true_lb, MPI_Aint *true_extent);
MPI::Datatype::Get_true_extent void MPI::Datatype::Get_true_extent(MPI::Aint& true_lb, MPI::Aint& true_extent) const;
MPI_TYPE_GET_TRUE_EXTENT MPI_TYPE_GET_TRUE_EXTENT(INTEGER DATATYPE, INTEGER TRUE_LB, INTEGER(KIND=MPI_ADDRESS_KIND) TRUE_EXTENT, INTEGER IERROR)
MPI_Type_hindexed int MPI_Type_hindexed(int count, int *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Datatype oldtype, MPI_Datatype *newtype);
(none) (none)
MPI_TYPE_HINDEXED MPI_TYPE_HINDEXED(INTEGER COUNT, INTEGER ARRAY_OF_BLOCKLENGTHS(*), INTEGER ARRAY_OF DISPLACEMENTS(*), INTEGER OLDTYPE, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_hvector int MPI_Type_hvector(int count, int blocklength, MPI_Aint stride, MPI_Datatype oldtype, MPI_Datatype *newtype);
(none) (none)
MPI_TYPE_HVECTOR MPI_TYPE_HVECTOR(INTEGER COUNT, INTEGER BLOCKLENGTH, INTEGER STRIDE, INTEGER OLDTYPE, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_indexed int MPI_Type_indexed(int count, int *array_of_blocklengths, int *array_of_displacements, MPI_Datatype oldtype, MPI_Datatype *newtype);
MPI::Datatype::Create_indexed MPI::Datatype MPI::Datatype::Create_indexed(int count, const int array_of_blocklengths[], const int array_of_displacements[]) const;
MPI_TYPE_INDEXED MPI_TYPE_INDEXED(INTEGER COUNT, INTEGER ARRAY_OF_BLOCKLENGTHS(*), INTEGER ARRAY_OF DISPLACEMENTS(*), INTEGER OLDTYPE, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_lb int MPI_Type_lb(MPI_Datatype datatype, int* displacement);
(none) (none)
MPI_TYPE_LB MPI_TYPE_LB(INTEGER DATATYPE,INTEGER DISPLACEMENT,INTEGER IERROR)
MPI_Type_match_size int MPI_Type_match_size(int typeclass, int size, MPI_Datatype *type);
MPI::Datatype::Match_size static MPI::Datatype MPI::Datatype::Match_size(int typeclass, int size);
MPI_TYPE_MATCH_SIZE MPI_TYPE_MATCH_SIZE(INTEGER TYPECLASS, INTEGER SIZE, INTEGER TYPE, INTEGER IERROR)
MPI_Type_set_attr int MPI_Type_set_attr (MPI_Datatype type, int type_keyval, void *attribute_val);
MPI::Datatype::Set_attr void MPI::Datatype::Set_attr(int type_keyval, const void* attribute_val);
MPI_TYPE_SET_ATTR MPI_TYPE_SET_ATTR(INTEGER TYPE, INTEGER TYPE_KEYVAL, INTEGER ATTRIBUTE_VAL, INTEGER IERROR)
MPI_Type_size int MPI_Type_size(MPI_Datatype datatype,int *size);
MPI::Datatype::Get_size int MPI::Datatype::Get_size() const;
MPI_TYPE_SIZE MPI_TYPE_SIZE(INTEGER DATATYPE, INTEGER SIZE, INTEGER IERROR)
MPI_Type_struct int MPI_Type_struct(int count, int *array_of_blocklengths, MPI_Aint *array_of_displacements, MPI_Datatype *array_of_types, MPI_Datatype *newtype);
(none) (none)
MPI_TYPE_STRUCT MPI_TYPE_STRUCT(INTEGER COUNT, INTEGER ARRAY_OF_BLOCKLENGTHS(*), INTEGER ARRAY_OF DISPLACEMENTS(*), INTEGER ARRAY_OF_TYPES(*), INTEGER NEWTYPE, INTEGER IERROR)
MPI_Type_ub int MPI_Type_ub(MPI_Datatype datatype,int* displacement);
(none) (none)
MPI_TYPE_UB MPI_TYPE_UB(INTEGER DATATYPE,INTEGER DISPLACEMENT,INTEGER IERROR)
MPI_Type_vector int MPI_Type_vector(int count, int blocklength, int stride, MPI_Datatype oldtype, MPI_Datatype *newtype);
MPI::Datatype::Create_vector MPI::Datatype MPI::Datatype::Create_vector(int count, int blocklength, int stride) const;
MPI_TYPE_VECTOR MPI_TYPE_VECTOR(INTEGER COUNT, INTEGER BLOCKLENGTH, INTEGER STRIDE, INTEGER OLDTYPE, INTEGER NEWTYPE, INTEGER IERROR)
MPI_Unpack int MPI_Unpack(void* inbuf,int insize,int *position,void *outbuf,int outcount,MPI_Datatype datatype,MPI_Comm comm);
MPI::Datatype::Unpack void MPI::Datatype::Unpack(const void* inbuf, int insize, void* outbuf, int outcount, int& position, const MPI::Comm& comm) const;
MPI_UNPACK MPI_UNPACK(CHOICE INBUF,INTEGER INSIZE,INTEGER POSITION,CHOICE OUTBUF,INTEGER OUTCOUNT,INTEGER DATATYPE,INTEGER COMM, INTEGER IERRROR)
MPI_Unpack_external int MPI_Unpack_external(char *datarep, void *inbuf, MPI_Aint insize, MPI_Aint *position, void *outbuf, int outcount, MPI_Datatype datatype);
MPI::Datatype::Unpack_external void MPI::Datatype::Unpack_external(const char* datarep, const void* inbuf, MPI::Aint insize, MPI::Aint& position, void* outbuf, int outcount) const;
MPI_UNPACK_EXTERNAL MPI_UNPACK_EXTERNAL(CHARACTER*(*) DATAREP, CHOICE INBUF(*), INTEGER(KIND=MPI_ADDRESS_KIND) INSIZE, INTEGER(KIND=MPI_ADDRESS_KIND) POSITION, CHOICE OUTBUF(*), INTEGER OUTCOUNT, INTEGER DATATYPE, INTEGER IERROR)


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]