我注意到int和double的大小与使用函数MPI_Type_size(MPI_INT,& MPI_INT_SIZE)计算的大小不同;这是否意味着sizeof(MPI_INT)返回错误的值8 ??通常应该是4 谢谢你的回复
答案 0 :(得分:6)
MPI_INT
是MPI 类型句柄。它用于告诉MPI在接收消息时发送消息或写入时读取时将内存内容视为int
。它是不语言数据类型,不能用于声明变量。在MPI句柄上使用 size-of 运算符是错误的,因为它给出了句柄本身的大小而不是基础数据类型的大小。 MPI句柄是MPI对象的某些表中的整数索引,在这种情况下,句柄的 size-of 将是sizeof(int)
,或指向不透明数据结构的指针,在这种情况下, size-of 将为sizeof(void *)
。在典型的LP64系统上,它将分别为4个字节和8个字节。
这同样适用于每个其他预定义的MPI数据类型句柄,例如MPI_FLOAT
,MPI_DOUBLE
,MPI_CHAR
等。