【发布时间】:2017-03-26 01:33:16
【问题描述】:
我注意到 int 和 double 的大小与使用函数 MPI_Type_size(MPI_INT, &MPI_INT_SIZE); 计算的大小不同。这是否意味着 sizeof(MPI_INT) 返回错误的值 8?它通常应该是 4 感谢您的回复
【问题讨论】:
标签: types parallel-processing size mpi
我注意到 int 和 double 的大小与使用函数 MPI_Type_size(MPI_INT, &MPI_INT_SIZE); 计算的大小不同。这是否意味着 sizeof(MPI_INT) 返回错误的值 8?它通常应该是 4 感谢您的回复
【问题讨论】:
标签: types parallel-processing size mpi
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 等等。
【讨论】: