Microsoft MPI 版本資訊
本檔包含適用于 Windows 的目前 Microsoft MPI (MS-MPI) 版本資訊。
MS-MPI v10.1.3 (2023 年 6 月)
MS-MPI v10.1.3 包含下列改善和修正。 從 Microsoft 下載中心下載MS-MPI v10.1.3。
- 修正將同質指派給 Windows 11 和 Windows Server 2022 上的 mpi 背景工作進程。 在這些 OSes 親和性上,會透過 CPU 集合指派,而不是透過 Affinity mask 進行指派。
NUGet上也提供 MS-MPI v10.1.3 SDK。
MS-MPI v10.1.2 (2019 年 11 月)
MS-MPI v10.1.2 包含下列改善和修正。 從 Microsoft 下載中心下載MS-MPI v10.1.2。
- 已簽署的基準測試可執行檔
- 為了滿足 APIScan 需求而建置的二進位檔
NUGet上也提供 MS-MPI v10.1.2 SDK。
MS-MPI v10.1.1 (2019 年 9 月)
MS-MPI v10.1.1 包含下列改善和修正。 從 Microsoft 下載中心下載MS-MPI v10.1.1。
- 傳遞至 MsmpiLaunchSvc 的支援引數
- 修正 mpiexec 雙引號剖析中的 Bug
- 修正 SAL 注釋
- 從命令列卸載 msmpi 安裝程式的新增選項
- 修正 mpif 標頭檔中導致 gfortran 錯誤的非一致性整數標記法
MS-MPI v10.1.1 SDK 也適用于 nuget。
MS-MPI v10.0 (2018 年 10 月)
MS-MPI v10.0 包含下列改善和修正。 從 Microsoft 下載中心下載MS-MPI v10.0。
支援所有 RMA 作業
支援使用多個處理器群組
包含 IMB-MPI1 和 IMB-NBC 基準測試
在 mpiexec/smpd 中新增選項以重新導向記錄
移除非標準內建函式/類型以支援使用 MinGW/gFortran
修正核心傾印建立中的 Bug
修正MPI_THREAD_MULTIPLE模式中的 Bug
修正 MSMPILaunchSvc 中防止儲存認證的 Bug
MS-MPI v10.0 SDK 也可在 nuget上使用。
MS-MPI v9.0.1 (2018 年 3 月)
MS-MPI v9.0.1 包含下列改善和修正。 從 Microsoft 下載中心下載MS-MPI v9.0.1。
修正在 Windows 7 系統上啟動期間造成死結的 mpiexec 程式碼錯誤。
修正可防止 跨 所有處理器群組繁衍進程的 Bug。
修正動態視窗 MPI_Win_Get_Attr 的傳回值。
修正 smpd中具名管道建立期間的 Bug。
MS-MPI v9.0 (2018 年 2 月)
MS-MPI v9.0 包含下列新功能、改善和修正。
支援 MPI_Win_allocate。
支援 MPI_Win_create_dynamic、 MPI_Win_attach和 MPI_Win_detach。
支援 MPI_Win_flush。
支援 MPI_NO_OP。
部分支援MPI_Rput、MPI_Rget和MPI_Raccumulate。
RMA 錯誤報表中的錯誤。
MS-MPI v7 和 v8 中的 Bug,在特定情況下導致 MPI_Finalize 死結。
MS-MPI v9.0 SDK 也可在 nuget 上使用。
MS-MPI v8.1 (2017 年 6 月)
MS-MPI v8.1 包含下列新功能、改善和修正。
支援 MPI_Comm_spawn 和 MPI_Comm_spawn_multiple。
支援 Unicode mpiexec 命令列引數和應用程式命令列。
針對 MS-MPI 執行時間安全性需求支援回復為 NTLM。
執行 smpd 精靈或 MS-MPI Launch 服務時,支援多個處理器群組。
MS-MPI v8 中的 Bug,可能會在使用整體時造成當機。
MS-MPI v8 中可能導致 MPI_Alltoallv死結的 Bug。
MS-MPI v8 中的 Bug,會在處理大型檔案時造成未定義的行為。
NUGet上也提供 MS-MPI v8.1 SDK。
MS-MPI v8 (2017 年 1 月)
MS-MPI v8 包含下列新功能、改善和修正。
完整支援所有非封鎖的集合。
支援 MPI_Reduce_scatter_block。
MPI_Alltoallv和MPI_Alltoallw的效能改善。
MS-MPI v7 中導致 MSMPI 啟動服務事件來源中遺漏資訊的 Bug
MS-MPI v7.1 中的 Bug,會在 MSMPI Launch Service 中造成停止回應。
MS-MPI v7 中的 Bug,會導致從 MPI_Open_port傳回不正確的埠字串。
MS-MPI v8 SDK 也可在 nuget 上使用。
MS-MPI v7.1 (2016 年 6 月)
MS-MPI v7.1 包含下列值得注意的改進和 MS-MPI v7 修正。
安裝程式現在更具復原性,而且在先前的卸載未成功清除登錄時不會失敗。
MS-MPI v7 中的 Bug 已修正,會導致作業在相同節點上同時執行大量 MPI 作業時失敗。
如果 Kerberos 驗證在部分或設定錯誤的 Kerberos 支援的環境中失敗,驗證會自動回復為 NTLM。
mpiexec 支援命令列中的 Unicode 字元,而且不再有命令列長度的硬式編碼限制。 也支援長路徑標記法 (\\?\) 。
MS-MPI v7.1 SDK 也可在 nuget 上使用。
MS-MPI v7 (2015 年 11 月)
MS-MPI v7 是 MS-MPI v6 的後續任務。 從 Microsoft 下載中心下載MS-MPI v7。
新功能
MS-MPI v7 包含下列新功能、改善和修正。
支援其他非封鎖的統一作業:MPI_Iallreduce、MPI_Iscatter、MPI_Iallgather、MPI_Iscatterv和MPI_Igatherv。 這些除了已支援的 MPI_Ibcast、 MPI_Ireduce、 MPI_Igather 和 MPI_Ibarrier之外。
支援使用MSMPI_ND_PORT_RANGE環境變數設定網路直接連線的埠範圍
已重新取樣的程式管理 (mpiexec/smpd) ,以提升可靠性和效能
整體作業的效能改善
MPI 啟動服務 - MS-MPI v7 引進 MS-MPI 啟動服務,可針對具有使用者提供認證的本機和遠端電腦啟動 MPI 程式。 MS-MPI 可轉散發套件會以手動模式安裝 MS-MPI 啟動服務。 若要啟動服務,請執行下列命令:
sc start MSMPILaunchSvc [options]
以下是您可以在服務啟動時傳遞至啟動服務的選項:
-p | -port 埠 <> - 變更啟動服務正在接聽的埠。
-g | -group group < name > - 只允許指定群組的成員執行 MPI 應用程式。 如果未指定,預設值為已驗證的使用者。
啟動服務的新 mpiexec 選項 - mpiexec (-pwd 和 -savecreds) 有兩個新選項,可讓您提供使用啟動服務啟動程式所需的認證。 -pwd選項允許在非互動式案例中指定提交使用者的密碼 (,例如使用腳本或排程的工作) 。 在此情況下,密碼會以純文字提供。 -savecreds選項會在使用-pwd) 指定時, (提供的認證安全地儲存在 mpiexec 命令列中指定的所有主機上。
例如,下列命令會提示使用者輸入密碼,並詢問使用者是否要將它儲存在指定的機器host1 和 host2,然後啟動三個進程,一個在host1上,另一個在host2上:
mpiexec –hosts 2 host1 1 host2 2 –wdir C:\MpiTests mpiapp.exe [parameters]
另一個範例是,下列命令會使用提供的密碼驗證使用者、將它儲存在指定的機器 host1 和 host2,然後啟動三個進程,一個在 host1 上,另一個在 host2上:
mpiexec –hosts 2 host1 1 host2 2 –wdir C:\MpiTests -pwd <password> -savecreds mpiapp.exe [parameters]
在一組節點上以 -savecreds 選項執行 mpiexec 之後,除非密碼已變更,否則您不需要在後續針對這些節點執行時提供密碼。 如果使用者在互動式模式中執行,如果啟動服務正在執行且尚未提供密碼或先前使用 -savecreds 選項儲存密碼,mpiexec 會提示輸入密碼。
HPC Pack 相容性
MS-MPI v7 與 HPC Pack 2012 R2 和更新版本相容。 如果您執行的是舊版 MS-MPI 的 HPC Pack 相容版本,您可以將 MS-MPI 升級至 v7。
MS-MPI v6 (2015 年 5 月)
MS-MPI v6 是 MS-MPI v5 可轉散發套件的後續任務, (于 2014 年 11 月發行) 。
新功能
MS-MPI v6 包含下列新功能、改善和修正。
非封鎖的統一作業 ,包括 MPI_Ibcast、 MPI_Ireduce、 MPI_Igather 和 MPI_Ibarrier。
多作業親和性支援 ,讓多個同質 MPI 作業可以並存于單一電腦上,而不會重迭其執行的核心。 MPI 執行時間現在會偵測到現有的作業已釘選到核心,而且將會在目前未使用的核心上啟動後續作業。
此功能會公開為 mpiexec (-affinity_auto 或 –aa) 的新選項,並設計成在工作排程器下運作,例如 Microsoft HPC Pack 和獨立 SDK 模式。
例如,若要在單一 16 核心電腦上執行兩個 8 核心作業,您可以使用下列命令列:
mpiexec –cores 8 –affinity_auto –affinity_layout sequential myapp.exe
或mpiexec –c 8 –aa –al seq myapp.exe
支援多執行緒應用程式,方法是在呼叫MPI_Init_thread 時啟用MPI_THREAD_MULTIPLE。 這是為了允許使用 OMP 或其他執行緒模型的混合式應用程式,更輕鬆地利用 MPI 執行時間。
此功能的最低支援伺服器是Windows Server 2012。 這項功能的最低支援用戶端是Windows 8。
MPI 3.0 標準的新功能包括:
- 支援 MPI_Mprobe、 MPI_Mrecv、 MPI_Improbe和 MPI_Imrecv
- 支援 MPI_COUNT,以允許在 MPI_STATUS 結構中正確表示大型資料類型
- 支援 MPI_Type_create_hindexed_block
- 支援 MPI_Dist_graph_create、 MPI_Dist_graph_create_adjacent、 MPI_Dist_graph_neighbors和 MPI_Dist_graph_neighbors_count
HPC Pack 相容性
MS-MPI v6 與 HPC Pack 2012 R2 和更新版本相容。 如果您執行的是舊版 MS-MPI 的 HPC Pack 相容版本,您可以將 MS-MPI 升級至 v6。
預設設定的變更
MS-MPI v6 會變更下列 mpiexec 預設設定:
- MSMPI_ND_ZCOPY_THRESHOLD設定為 -1,停用 zcopy。 您可以在 mpiexec 命令列中設定 MSMPI_ND_ZCOPY_THRESHOLD=0,或使用 cluscfg setenvs () 來重新啟用此功能。
- MSMPI_HA_COLLECTIVE設定為全部,預設會啟用階層式集合。 您可以透過 mpiexec 命令列或外部設定 MSMPI_HA_COLLECTIVE=off 來停用此功能。
過時的功能
我們即將淘汰此版本中內建的自動調整功能,旨在將自動微調工具移至即將發行的個別公用程式。