【问题标题】:sizeof(MPI_INT) different from sizeof(int)sizeof(MPI_INT) 不同于 sizeof(int)
【发布时间】: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


    【解决方案1】:

    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 等等。

    【讨论】:

      猜你喜欢
      • 2012-06-14
      • 2013-02-19
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2021-05-12
      • 2010-11-09
      相关资源
      最近更新 更多