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/03 15:32] koudai [ノード内並列計算] |
自作クラスタ計算機:mpiによる並列計算 [2020/03/03 16:31] koudai [ホストファイルによるジョブの投入] |
||
---|---|---|---|
Line 121: | Line 121: | ||
指定した計算ノードにジョブを投げてみます。 | 指定した計算ノードにジョブを投げてみます。 | ||
- | * MPIで指定のホストに投げる場合は、オプション< | + | * MPIで指定のホストに投げる場合は、オプション< |
* 計算ノードのkeisan11にジョブを投げる場合は次のようにします< | * 計算ノードのkeisan11にジョブを投げる場合は次のようにします< | ||
- | $ mpirun -n 2 -host keisan11 ./hello | + | $ mpirun -n 8 -hosts keisan11 ./hello |
- | Hello world: rank 3 of 4 running on keisan11 | + | Hello world: rank 0 of 8 running on keisan11 |
- | Hello world: rank 3 of 4 running on keisan11 | + | Hello world: rank 1 of 8 running on keisan11 |
+ | Hello world: rank 2 of 8 running on keisan11 | ||
+ | Hello world: rank 3 of 8 running on keisan11 | ||
+ | Hello world: rank 4 of 8 running on keisan11 | ||
+ | Hello world: rank 5 of 8 running on keisan11 | ||
+ | Hello world: rank 6 of 8 running on keisan11 | ||
+ | Hello world: rank 7 of 8 running on keisan11 | ||
</ | </ | ||
+ | * ホスト名の代わりにIPアドレスでも可能です | ||
Line 137: | Line 144: | ||
* オプション< | * オプション< | ||
* 計算ノードkeisan11, | * 計算ノードkeisan11, | ||
- | $ mpirun | + | $ mpirun -hosts keisan11, |
- | Hello World! I am 0 of 72 from keisan11. | + | Hello world: rank 0 of 8 running on keisan11 |
- | Hello World! I am 1 of 72 from keisan12. | + | Hello world: rank 1 of 8 running on keisan11 |
- | Hello World! I am 2 of 72 from keisan13. | + | Hello world: rank 2 of 8 running on keisan12 |
- | Hello World! I am 3 of 72 from keisan11. | + | Hello world: rank 3 of 8 running on keisan12 |
- | Hello World! I am 4 of 72 from keisan12. | + | Hello world: rank 4 of 8 running on keisan13 |
- | Hello World! I am 5 of 72 from keisan13. | + | Hello world: rank 5 of 8 running on keisan13 |
- | (以下略) | + | Hello world: rank 6 of 8 running on keisan11 |
+ | Hello world: rank 7 of 8 running on keisan11 | ||
</ | </ | ||
+ | * オプション-ppnでノードあたりのプロセス数を指定します | ||
+ | * プロセスは keisan11 -> keisan11 -> keisan12 -> keisan12 -> keisan13 -> keisan13 -> keisan11 -> keisan11 -> keisan12 -> ... の順に割り振られていきます | ||
==== ホストファイルによるジョブの投入 ==== | ==== ホストファイルによるジョブの投入 ==== | ||
- | 例えば計算ノードによって性能に差がある場合など、ノードごとのプロセス数を自分で管理したい場合はホストファイルを作成します。 | + | ホスト名を毎回入力したくない、計算ノードによってプロセス数を変えたいなどの場合は、ホストファイルを作成します。 |
* MPICH, Intel MPIの場合 | * MPICH, Intel MPIの場合 | ||
<file - my_hosts> | <file - my_hosts> | ||
keisan11:2 | keisan11:2 | ||
- | keisan12:3 | + | keisan12:4 |
</ | </ | ||
* OpenMPIの場合 | * OpenMPIの場合 | ||
<file - my_hosts> | <file - my_hosts> | ||
keisan11 slots=2 | keisan11 slots=2 | ||
- | keisan12 slots=3 | + | keisan12 slots=4 |
</ | </ | ||
Line 165: | Line 175: | ||
< | < | ||
$ mpirun -n 6 -f my_hosts ./hello | $ mpirun -n 6 -f my_hosts ./hello | ||
- | Hello World; | + | Hello world: |
- | Hello World! I am 1 of 6 from keisan11. | + | Hello world: rank 1 of 6 running on keisan11 |
- | Hello World! I am 2 of 6 from keisan12. | + | Hello world: rank 2 of 6 running on keisan12 |
- | Hello World! I am 3 of 6 from keisan12. | + | Hello world: rank 3 of 6 running on keisan12 |
- | Hello World! I am 4 of 6 from keisan12. | + | Hello world: rank 4 of 6 running on keisan12 |
- | Hello World! I am 5 of 6 from keisan11. | + | Hello world: rank 5 of 6 running on keisan12 |
</ | </ | ||
- | * プロセスは keisan11 -> keisan11 -> keisan12 -> keisan12 -> keisan12 -> keisan11 -> keisan11 -> keisan12 -> keisan12 -> keisan12 -> keisan11 -> ... の順に割り振られて行きます | + | * プロセスは keisan11 -> keisan11 |
- | * Intel MPIの場合は< | + | * Intel MPIの場合は< |
* https:// | * https:// | ||