This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
自作クラスタ計算機:mpiによる並列計算 [2020/03/02 18:30] koudai [ノード間並列計算] |
自作クラスタ計算機:mpiによる並列計算 [2020/03/02 18:47] koudai [通常の使い方] |
||
---|---|---|---|
Line 133: | Line 133: | ||
===== ノード間並列計算 ===== | ===== ノード間並列計算 ===== | ||
+ | |||
+ | ==== 通常の使い方 ==== | ||
複数の計算ノードにわたるジョブを投げてみます。 | 複数の計算ノードにわたるジョブを投げてみます。 | ||
Line 147: | Line 149: | ||
(以下略) | (以下略) | ||
</ | </ | ||
- | * MPIが各ノードにプロセスを割り振ります | + | * プロセスは keisan11 -> keisan12 -> keisan13 -> keisan11 -> ... の順に割り振られて行きます |
- | * keisan11 -> keisan12 -> keisan13 | + | |
+ | |||
+ | ==== ホストファイルによるジョブの投入 ==== | ||
+ | |||
+ | 例えばノードごとに性能差がある場合など、ノードごとのプロセス数を自分で管理したい場合はホストファイルを作成します。 | ||
+ | 例えばkeisan11に2スレッド、keisan12に3スレッド割り振りたい場合は次のファイルを用意します。 | ||
+ | |||
+ | * MPICH, Intel MPIの場合 | ||
+ | <file - my_hosts> | ||
+ | keisan11: | ||
+ | keisan12: | ||
+ | </ | ||
+ | * OpenMPIの場合 | ||
+ | <file - my_hosts> | ||
+ | keisan11 slots=2 | ||
+ | keisan12 slots=3 | ||
+ | </ | ||
+ | |||
+ | 次のように実行します | ||
+ | < | ||
+ | $ mpirun -n 6 --hostfile my_hosts hello | ||
+ | Hello World! I am 0 of 6 from keisan11. | ||
+ | Hello World! I am 1 of 6 from keisan11. | ||
+ | Hello World! I am 2 of 6 from keisan12. | ||
+ | Hello World! I am 3 of 6 from keisan12. | ||
+ | Hello World! I am 4 of 6 from keisan12. | ||
+ | Hello World! I am 5 of 6 from keisan11. | ||
+ | </ | ||
+ | * プロセスは keisan11 -> keisan11 -> keisan12 -> keisan12 -> keisan12 -> keisan11 -> keisan11 -> keisan12 -> keisan12 -> keisan12 | ||
====== 参考 ====== | ====== 参考 ====== |