在上一篇中我們介紹了 SLURM 資源管理系統(tǒng),下面將介紹 MPI-3 的新特性。
在前面我們介紹了 MPI 的基本概念和使用 mpi4py 在 Python 環(huán)境下進行 MPI 編程的方法。不過前面的介紹主要基于 MPI-1 和 MPI-2 標準,最新的 MPI-3 標準已經(jīng)發(fā)布,MPI-3 引進了若干新特性,并對之前版本的部分特性作了擴充和改進,這些新特性使我們能夠更好地使用 MPI 以滿足更高的并行計算需求和應(yīng)對更加廣泛的并行計算平臺。各大 MPI 軟件實現(xiàn)已支持 MPI-3 標準,我們有必要加以了解。
MPI 發(fā)布歷史
-
版本: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
主要新特性
- 非阻塞集合通信
- 近鄰集合通信(阻塞 + 非阻塞)
- 單邊通信增強
- 共享內(nèi)存擴展
- 新的 Fortran 2008 接口
- 新的工具接口(MPI_T)
小的改動和增加
- 用于混合編程的線程安全的 Mprobe 和 Mrecv
- 非阻塞通信子復(fù)制和組集合通信子創(chuàng)建
- 新函數(shù) MPI_Type_create_hindexed_block
- 大的計數(shù) MPI_Count 及相關(guān)函數(shù)
- 去掉 C++ 接口
- 其它小的改動
MPI 3.1
錯誤改正
- 若干工具接口(MPI_T)改正
- 若干新的 Fortran 2008 接口改正
- 少量單邊通信改正
增加的新特性
- 地址 + 和 - 被替換為 MPI_Aint_add 和 MPI_Aint_diff
- 單邊通信窗口創(chuàng)建函數(shù)增加新的 info 項 same_disp_unit
- 非阻塞集合并行 I/O 函數(shù): MPI_File_iread_at_all + MPI_File_iwrite_at_all 和 MPI_File_iread_all + MPI_File_iwrite_all
- 工具接口(MPI_T)增加 3 個新函數(shù)和 2 個新的錯誤代碼
以上概要地介紹了最新的 MPI-3 標準中引進的新特性,mpi4py 3.0.0 支持 MPI-3 的很多新特性,我們將在后面逐步介紹,在下一篇中我們首先介紹 mpi4py 中的非阻塞集合通信。