向量数据类型的生成

  它的形式如下:

  MPI_TYPE_VECTOR( count, blocklength, stride, oldtype, newtype )
  IN count 块的数目
  IN blocklength 块中(基类型)元素个数
  IN stride 相邻两块起始位置之间距离(以可容纳的(基类型)元素个数衡量
  IN oldtype 基类型
  OUT newtype 新的数据类型

  int MPI_Type_vector( int count, int blocklength, int stride,
  MPI_Datatype oldtype, MPI_Datatype *newtype);
 
  在构造新类型时,构造器首先构造块,块是由blocklength个基类型(oldtype)数据构成的CONTIGUOUS类型。然后用count个块构成newtype类型。相邻的块之间的间距由stride给出,这个数据表示相邻的两块的起始位置之间能够容纳的oldtype类型的元素的个数(注意,需要包含因为地址对齐的要求所加入的填塞数据)。

  例子:基类型{(double, 0),(char, 8)},
  MPI_TYPE_VECTOR(2,2,3,...)的结果为
  {(double,0),(char,8),(double,16),(char,24),(double,48),(char,56),(double ,64),(char,72)}。注意(double,32),(char,40)没有包含在里面。
  (思考,如何将MPI_TYPE_CONTIGUOUS用MPI_TYPE_VECTOR调用表示)