结构数据类型的生成
这是最通用的数据构造器。形式如下:
MPI_TYPE_STRUCT( count, array_of_blocklength, array_of_displacement,
array_of_types, newtype )
IN count 块的数目
IN array_of_blocklength 各块的元素个数(数组)
IN array_of_displacement 各块的偏移(数组)
IN array_of_types 构成各块的元素类型(数组)
OUT newtype
int MPI_Type_struct( int count, int *array_of_blocklength,
MPI_Aint *array_of_displacement,
MPI_Datatype *array_of_types,
MPI_Datatype *newtype);
在构造新类型时,构造器首先构造块,块i(i=0,1,...,count-1)是由array_of_blocklength[i]个array_of_type[i]类型的数据构成的CONTIGUOUS类型。然后用这count个块构成newtype类型,块i(i=0,1,...,count-1)在newtype类型中的偏移为array_of_displacement[i]。
(思考,如何用MPI_Type_struct构造器来实现其它的构造器?)
|