MPI-3 新特性

在上一篇中我们介绍了 SLURM 资源管理系统,下面将介绍 MPI-3 的新特性。

在前面我们介绍了 MPI 的基本概念和使用 mpi4py 在 Python 环境下进行 MPI 编程的方法。不过前面的介绍主要基于 MPI-1 和 MPI-2 标准,最新的 MPI-3 标准已经发布,MPI-3 引进了若干新特性,并对之前版本的部分特性作了扩充和改进,这些新特性使我们能够更好地使用 MPI 以满足更高的并行计算需求和应对更加广泛的并行计算平台。各大 MPI 软件实现已支持 MPI-3 标准,我们有必要加以了解。

MPI 发布历史

  • 版本:1.0 (1994 年 5 月),1.1 (1995 年 6 月),1.2 (1997 年 7 月),1.3 (2008 年 5月)

    引进了基本的消息传递概念。

  • 版本:2.0 (1997 年 7 月),2.1 (2008 年 6 月)

    增加了单边通信和并行 I/O 特性。

  • 版本:2.2 (2009 年 9 月)

    小的改正。

  • 版本:3.0 (2012 年 9 月)

    增加若干新特性,为 MPI 标准较为重大的更新。

  • 版本:3.1 (2015 年 6 月)

    主要是对 MPI 3.0 的改正,也增加了少量新特性。

当前最新的 MPI 标准为 MPI 3.1,我们将要介绍的 MPI-3,如不特别加以说明,即指 MPI 3.1 标准。

MPI 3.0

主要新特性

  • 非阻塞集合通信
  • 近邻集合通信(阻塞 + 非阻塞)
  • 单边通信增强
  • 共享内存扩展
  • 新的 Fortran 2008 接口
  • 新的工具接口(MPI_T)

小的改动和增加

  • 用于混合编程的线程安全的 Mprobe 和 Mrecv
  • 非阻塞通信子复制和组集合通信子创建
  • 新函数 MPI_Type_create_hindexed_block
  • 大的计数 MPI_Count 及相关函数
  • 去掉 C++ 接口
  • 其它小的改动

MPI 3.1

错误改正

  • 若干工具接口(MPI_T)改正
  • 若干新的 Fortran 2008 接口改正
  • 少量单边通信改正

增加的新特性

  • 地址 + 和 - 被替换为 MPI_Aint_add 和 MPI_Aint_diff
  • 单边通信窗口创建函数增加新的 info 项 same_disp_unit
  • 非阻塞集合并行 I/O 函数: MPI_File_iread_at_all + MPI_File_iwrite_at_all 和 MPI_File_iread_all + MPI_File_iwrite_all
  • 工具接口(MPI_T)增加 3 个新函数和 2 个新的错误代码

以上概要地介绍了最新的 MPI-3 标准中引进的新特性,mpi4py 3.0.0 支持 MPI-3 的很多新特性,我们将在后面逐步介绍,在下一篇中我们首先介绍 mpi4py 中的非阻塞集合通信。

你可能感兴趣的:(MPI-3 新特性)