sizeof(MPI_INT)与sizeof(int)不同

时间:2016-11-11 18:55:19

标签: types parallel-processing size mpi

我注意到int和double的大小与使用函数MPI_Type_size(MPI_INT,& MPI_INT_SIZE)计算的大小不同;这是否意味着sizeof(MPI_INT)返回错误的值8 ??通常应该是4 谢谢你的回复

1 个答案:

答案 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_FLOATMPI_DOUBLEMPI_CHAR等。