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 ワーカー プロセスにアフィニティを割り当てる問題を修正しました。 これらの OS では、アフィニティ マスクではなく 、CPU セットを介して割り当てられます。
MS-MPI v10.1.3 SDK は 、nuget でも使用できます。
MS-MPI v10.1.2 (2019 年 11 月)
MS-MPI v10.1.2 には、次の機能強化と修正が含まれています。 Microsoft ダウンロード センターから MS-MPI v10.1.2 をダウンロードします。
- 署名付きベンチマーク実行可能ファイル
- APIScan 要件を満たすようにビルドされたバイナリ
MS-MPI v10.1.2 SDK は 、nuget でも使用できます。
MS-MPI v10.1.1 (2019 年 9 月)
MS-MPI v10.1.1 には、次の機能強化と修正が含まれています。 Microsoft ダウンロード センターから MS-MPI v10.1.1 をダウンロードします。
- MsmpiLaunchSvc に渡されるサポート引数
- mpiexec の二重引用符解析のバグを修正しました
- SAL 注釈の修正
- コマンド ラインからアンインストールする msmpi インストーラーのオプションを追加する
- gfortran でエラーが発生する mpif ヘッダー ファイルでの非準拠整数表現の修正
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 での使用をサポートするために非標準の組み込み/型を削除する
コア ダンプ作成のバグを修正する
MPI_THREAD_MULTIPLE モードのバグを修正する
資格情報の保存を妨げる MSMPILaunchSvc のバグを修正しました
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 コードのバグを修正しました。
smpd がすべてのプロセッサ グループ間でプロセスを生成できないようにするバグを修正しました。
動的ウィンドウの MPI_Win_Get_Attr の戻り値を修正しました。
smpd での名前付きパイプの作成中のバグを修正しました。
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 のバグ。特定の条件下で 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 起動サービスを実行するときに、複数のプロセッサ グループをサポートします。
集合を使用するときにオーバーフローが原因でクラッシュを引き起こす可能性がある MS-MPI v8 のバグ。
MPI_ALLTOALLVでデッドロックが発生する可能性がある MS-MPI v8 のバグ。
大きなファイルを処理するときに未定義の動作を引き起こす MS-MPI v8 のバグ。
MS-MPI v8.1 SDK は、nuget でも使用できます。
MS-MPI v8 (2017 年 1 月)
MS-MPI v8 には、次の新機能、機能強化、修正プログラムが含まれています。
すべての非ブロッキング 集合の完全なサポート。
MPI_Reduce_scatter_blockのサポート。
MPI_AlltoallvとMPI_Alltoallwのパフォーマンス向上。
MSMPI Launch Service のイベント ソースに情報が見つからない原因となる MS-MPI v7 のバグ
MSMPI Launch Service でハングが発生する MS-MPI v7.1 のバグ。
MS-MPI v7 のバグにより、 MPI_Open_portから不適切なポート文字列が返される可能性があります。
MS-MPI v8 SDK は、nuget でも使用できます。
MS-MPI v7.1 (2016 年 6 月)
MS-MPI v7.1 には、MS-MPI v7 に対する次の重要な機能強化と修正が含まれています。
セットアップの回復性が向上し、以前のアンインストールでレジストリを正常にクリーンできなかった場合は失敗しません。
MS-MPI v7 のバグが修正され、多数の 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 <port> - サービスを起動するリッスンしているポートを変更します。
-g | -group group <name> - 指定されたグループのメンバーのみが MPI アプリケーションの実行を許可します。 指定しない場合、既定値は認証済みユーザーです。
起動サービスの新しい mpiexec オプション - 起動サービス を使用してプロセスを起動するために必要な資格情報を指定できる mpiexec (-pwd と -savecreds) には、2 つの新しいオプションがあります。 -pwd オプションを使用すると、非対話型シナリオ (スクリプトやスケジュールされたタスクの使用など) で送信するユーザーのパスワードを指定できます。 この場合、パスワードはクリア テキストで指定されます。 -savecreds オプションを指定すると、指定された資格情報 (-pwd で指定されている場合) が、mpiexec コマンド ラインで指定されたすべてのホストに安全に格納されます。
たとえば、次のコマンドを実行すると、ユーザーのパスワードの入力を求め、指定したマシン host1 と host2 に保存するかどうかをユーザーに確認し、host1 と host2 で 3 つのプロセスを起動します。
mpiexec –hosts 2 host1 1 host2 2 –wdir C:\MpiTests mpiapp.exe [parameters]
別の例として、次のコマンドは、指定されたパスワードを使用してユーザーを認証し、指定されたマシン host1 と host2 に保存してから、host1 に 1 つ、host2 で 2 つのプロセスを起動します。
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 ジョブを 1 台のコンピューター上に共存させることができます。実行されているコアが重複することはありません。 MPI ランタイムは、コアにピン留めされた既存のジョブがあることを検出し、現在使用されていないコアで後続のジョブを起動します。
この機能は 、mpiexec (-affinity_auto または –aa) の新しいオプションとして公開され、Microsoft HPC Pack などのジョブ スケジューラとスタンドアロン SDK モードの両方で動作するように設計されています。
たとえば、1 台の 16 コア コンピューターで 2 つの 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_STATUS構造体で大きなデータ型を適切に表現できるようにするためのMPI_COUNTのサポート
- 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 (Microsoft HPC Pack を使用している場合) を使用して再び適用できます。
- MSMPI_HA_COLLECTIVEはすべてに設定され、階層集合が既定で有効になります。 これを無効にするには、MSMPI_HA_COLLECTIVE=off を設定するか、mpiexec コマンド ラインまたは外部から再度設定します。
非推奨の機能
今後のリリースでは、オートチューナーを別のユーティリティに移行することを目的として、このバージョンの組み込みの自動チューニング機能を非推奨とします。