在上一篇中我们介绍了 MPI-3 中大的计数及相关函数,下面我们将介绍 MPI 3.1 新增的若干功能。
MPI 3.1 标准于 2015 年 6 月发布,主要是针对 MPI 3.0 的改正,但也增加了少量的新功能。
新增功能
- 新增 MPI_Aint_add 和 MPI_Aint_diff 以对内存地址进行更安全和更具移植性的算术加减操作。
这两个新函数用来替代对地址的直接 + 和 - 算术操作。提供这两个新函数的原因是,地址类型的整数 MPI_Aint 或者 INTEGER(KIND=MPI_ADDRESS_KIND) 是有符号的整型数,绝对地址是无符号的整型数,对地址整数进行直接的 + 和 - 操作可能会溢出或产生其它未定义的结果。新增加的函数可以对内存地址进行更安全和更具移植性的算术加减操作,因此在支持此新函数的环境下,不应该对内存地址再执行内置的 + 和 - 运算。
这两个函数在 mpi4py 中的接口为:
MPI.Aint_add(Aint base, Aint disp)
计算内存中的一个绝对地址 base 和一个相对偏移 disp 的和(为内存中的一个绝对地址)并返回。
MPI.Aint_diff(Aint addr1, Aint addr2)
计算内存中的两个绝对地址 addr1 和 addr2 之间的相对偏移。
- 函数 MPI_Initialized, MPI_Finalize, MPI_Query_thread, MPI_Is_threa

本文介绍了MPI 3.1标准的新特性,包括MPI_Aint_add和MPI_Aint_diff函数,用于安全的内存地址算术操作,以及新增的非阻塞集合并行I/O函数。此外,还提到了几个函数在线程中的无限制调用,并提供了mpi4py中的接口示例。
最低0.47元/天 解锁文章
1544

被折叠的 条评论
为什么被折叠?



