アフィニティについて
MPI プロセスの配置とアフィニティにより、MPI アプリケーションのパフォーマンスが大幅に向上する可能性があります。
mpiexec
コマンドは、ジョブ所有者が MPI プロセスの配置、アフィニティ、およびその他の実行時パラメーターを制御できるようにする、いくつかの引数を受け取ります。 これらのパラメーターの詳細については、Windows HPC コマンド ライン リファレンスを参照してください。
affinity
パラメーターを使用すると、ジョブ所有者は、MPI アプリケーションの各ランクを 1 つのコアにロックするように指定できます (これにより、特定のアプリケーションのパフォーマンスが大幅に向上する可能性があります)。
ジョブ スケジューラがアフィニティを設定した場合、mpiexec
コマンドで指定されているアフィニティ設定は無視され、アプリケーションでパフォーマンスが低下する可能性があります。 クラスターのワークロードに応じて、ジョブ スケジューラ Affinity Type 設定を構成します。
ジョブ スケジューラのアフィニティの種類
アフィニティの種類によって、ジョブ スケジューラがアプリケーションと対話して、ジョブ内のタスクにプロセッサ コアを割り当てる方法が決まります。 ジョブ スケジューラがタスクのアフィニティを設定すると、アプリケーションによって設定されたアフィニティがオーバーライドされます。 Affinity Type には、次の設定があります。
すべてのジョブ: ジョブ スケジューラは、部分ノードが割り当てられているタスクに対してアフィニティを設定します (ジョブがノードを排他的に使用している場合でも)。 これにより、2 つのタスクで同じコアが使用されなくなります。 この設定は、パラメトリック スイープや SOA ジョブなど、ノードごとに多数のインスタンスを実行するアプリケーションに推奨されます。
非排他ジョブ (推奨): ジョブ スケジューラは、部分ノードが割り当てられているタスクのアフィニティを設定します。ただし、そのタスクが排他としてマークされているジョブ内にある場合を除きます。 この設定は、ノード上で排他的に実行され、独自のアフィニティを管理する MPI ジョブとアプリケーション、および非排他的パラメトリック スイープおよび SOA ジョブに対して推奨されます。
手記
ジョブ テンプレート を使用して、ノードで排他的に実行されるジョブの種類を指定できます。
ジョブがされていません: ジョブ スケジューラは、タスクのアフィニティを設定しません。 タスクは、アプリケーションによって割り当てられているコアでのみ実行されます。 この設定は、ジョブ スケジューラがアフィニティを設定するときに MPI ジョブで問題が発生した場合、またはアプリケーションが独自のアフィニティを管理するが、常にノードで排他的に実行されるとは限らない場合に使用します。
その他の参照
HPC ジョブ スケジューラ サービス の構成
Microsoft HPC Pack でのジョブ スケジューラの構成の