我注意到 int 和 double 的大小与使用函数 MPI_Type_size(MPI_INT, &MPI_INT_SIZE); 计算的大小不同。这是否意味着 sizeof(MPI_INT) 返回错误值 8?通常应该是 4
感谢您的回复
MPI_INT
是一个 MPI类型句柄。它用于告诉 MPI 将内存内容视为int
在发送消息时阅读或在接收消息时写作时。这是not一种语言数据类型,不能用于声明变量。使用size-ofMPI 句柄上的运算符是错误的,因为它给出的是句柄本身的大小,而不是底层数据类型的大小。 MPI 句柄是某个 MPI 对象表的整数索引,在这种情况下size-of该句柄将是sizeof(int)
,或指向不透明数据结构的指针,在这种情况下size-of将sizeof(void *)
。在典型的 LP64 系统上,分别为 4 字节和 8 字节。
这同样适用于所有其他预定义的 MPI 数据类型句柄,例如MPI_FLOAT
, MPI_DOUBLE
, MPI_CHAR
, 等等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)