Plane distribution: -m plane=plane_size

The plane distribution allocates tasks in blocks of size plane_size in a round-robin fashion across allocated nodes.
平面分布は、割り当てられたノード間でラウンドロビン方式でサイズplane_sizeのブロックにタスクを割り当てます。

To specify the plane distribution add to the srun command line --distribution=plane=plane_size or -m plane=plane_size where plane_size is the requested plane/block size.
平面分布を指定するには、srunコマンドラインに--distribution = plane = plane_sizeまたは-mplane = plane_sizeを追加します。ここで、plane_sizeは要求された平面/ブロックサイズです。

Examples of plane distributions

In the examples below we assume we have 21 tasks and that the task list is: 0, 1, 2, 3, 4, ..., 19, 20.
以下の例では、21個のタスクがあり、タスクリストが0、1、2、3、4、...、19、20であると想定しています。

On One (1) node: srun -N 1-1 -n 21 -m plane=4 <...>.

The distribution results in a plane distribution with plane_size 21. Even though the user specified a plane_size of 4 the final plane distribution results in a plane_size of 21.
分布の結果、plane_size 21の平面分布になります。ユーザーがplane_sizeを4に指定した場合でも、最終的な平面分布の結果はplane_size21になります。

Figure 1: Process layout for srun -N 1-1 -n 21 -m plane=4 <...>

On four (4) nodes: srun -N 4-4 -n 21 -m plane=4 <...>.

The plane distribution with a plane_size of 4 results in the following allocation of the task ids:
plane_sizeが4の平面分布では、タスクIDが次のように割り当てられます。

Figure 2: Process layout for srun -N 4-4 -n 21 -m plane=4 <...>

On four (4) nodes: srun -N 4-4 -n 21 -m plane=2 <...> .

The plane distribution with a plane_size of 2 results in the following allocation of the task ids:
plane_sizeが2の平面分布では、タスクIDが次のように割り当てられます。

Figure 3: Process layout for srun -N 4-4 -n 21 -m plane=2 <...>

Plane distribution and task affinity

The concept behind this distribution is to divide the clusters into planes.
この分布の背後にある概念は、クラスターを平面に分割することです。
Each plane includes a number of the lowest level of logical processors (CPU, cores, threads depending on the architecture) on each node.
各プレーンには、各ノードにいくつかの最下位レベルの論理プロセッサ(CPU、コア、アーキテクチャに応じたスレッド)が含まれています。
We then schedule within each plane first and then across planes.
次に、最初に各プレーン内でスケジュールを設定し、次にプレーン間でスケジュールを設定します。

We ensure that the processes are located correctly by setting the process affinity to the specified/appropriate logical processor.
指定された/適切な論理プロセッサにプロセスアフィニティを設定することにより、プロセスが正しく配置されていることを確認します。
Process affinity is available in Slurm when the task affinity plug-in is enabled.
タスクアフィニティプラグインが有効になっている場合、Slurmでプロセスアフィニティを使用できます。

On a dual-processor node with quad-core processors (see figure 4) the plane distribution results in:
クアッドコアプロセッサを搭載したデュアルプロセッサノード(図4を参照)では、プレーン分散により次のようになります。

  • One plane if the plane_size=8.
    plane_size = 8の場合は1つの平面。
    In this case the processors are scheduled by first filling up the nodes and then scheduled across the nodes.
    この場合、プロセッサは最初にノードを埋めることによってスケジュールされ、次にノード間でスケジュールされます。
  • Eight planes if the plane_size=1.
    plane_size = 1の場合、8つの平面。
    In this case we would always schedule across the node first.
    この場合、常に最初にノード全体をスケジュールします。

Figure 4: Quad-core dual-processor system

In a multi-core/hyper-threaded environment, two planes would provide better locality but potentially more contention for other resources.
マルチコア/ハイパースレッド環境では、2つのプレーンがより優れたローカリティを提供しますが、他のリソースの競合が増える可能性があります。

On the other hand, four planes (scheduling across processors) would minimize contention for cache and memory.
一方、4つのプレーン(プロセッサ間でのスケジューリング)は、キャッシュとメモリの競合を最小限に抑えます。

Examples of plane distributions with process affinity enabled

In the examples below we assume we have 21 tasks and that the task list is: 0, 1, 2, 3, 4, ..., 19, 20.
以下の例では、21個のタスクがあり、タスクリストが0、1、2、3、4、...、19、20であると想定しています。

On One (1) node: srun -N 1-1 -n 21 -m plane=4 --cpu-bind=core <...>. Even though the user specified a plane_size of 4 the final plane distribution results in a plane distribution with plane_size=8.
ユーザーがplane_size4を指定した場合でも、最終的な平面分布は、plane_size = 8の平面分布になります。

Figure 5: Process layout for srun -N 1-1 -n 21 -m plane=4 --cpu-bind=core <...>.

On four (4) nodes: srun -N 4-4 -n 21 -m plane=4 --cpu-bind=core <...>. The plane distribution with a plane_size of 4 results in the following allocation of the task ids:
plane_sizeが4の平面分布では、タスクIDが次のように割り当てられます。

Figure 6: Process layout for srun -N 4-4 -n 21 -m plane=4 --cpu-bind=core <...>.

On four (4) nodes: srun -N 4-4 -n 21 -m plane=2 --cpu-bind=core <...> . The plane distribution with a plane_size of 2 results in the following allocation of the task ids:
plane_sizeが2の平面分布では、タスクIDが次のように割り当てられます。

Figure 7: Process layout for srun -N 4-4 -n 21 -m plane=2 --cpu-bind=core <...>.

Last modified 27 October 2017