- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
通过MPI3.0引入邻里集体通信。其中 2 个(MPI_NEIGHBOR_ALLTOALLW
和 MPI_INEIGHBOR_ALLTOALLW
)位移(sdispls
和 rdispls
)是 数组常量 MPI_Aint
。相反,相同但集体的函数(MPI_ALLTOALLW
和 MPI_ALLTOALLW
)是如何定义的 -const int
数组。
同时考虑 MPI 标准 v3.0 关于 MPI_Aint 的规定(第 16 页):
2.5.6 Addresses
Some MPI procedures use address arguments that represent an absolute address in the calling program. The datatype of such an argument is MPI_Aint in C and INTEGER (KIND=MPI_ADDRESS_KIND) in Fortran. These types must have the same width and encode address values in the same manner such that address values in one language may be passed directly to another language without conversion. There is the MPI constant MPI_BOTTOM to indicate the start of the address range.
我仍然不明白这一点,如果存在的话,int
和MPI_Aint之间的区别(此外
!MPI_Aint
不能为负)
最佳答案
MPI_Aint
是一种可移植的 C 数据类型,可以保存内存地址,并且它可能比通常的 int
更大。 MPI 论坛的政策是不更改现有 MPI 调用的签名(因为它可能会破坏现有应用程序 - 请参阅 here)。相反,引入了新的调用来取代旧的调用。其基本原理是,int
在 LP64 64 位架构流行之前就运行良好,此时 int
无法再用于寻址单个进程的整个虚拟地址空间。实现这一点后,一些 MPI 调用在更高版本中获得了使用 MPI_Aint
或 MPI_Count
(大整数类型)而不是 int
的新版本。例如,MPI_Get_count_x
取代 MPI_Get_count
并使用 MPI_Count
而不是 int
。
在这方面,MPI_Alltoallw
是一个旧调用(它来自 MPI-2.0),它保留了使用 int
偏移量的签名,而 MPI_(I) Neighbor_alltoallw
是一种新类型(随 MPI-3.0 一起提供),它使用地址类型以便能够处理(几乎)位于内存中任何位置的数据。
这同样适用于 Fortran 绑定(bind)。
关于MPI_(I)NEIGHBOR_ALLTOALLW() 中的 MPI_Aint 与 MPI_(I)ALLTOALLW() 中的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18358201/
我是一名优秀的程序员,十分优秀!