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:43] koudai [ホストファイルによるジョブの投入] |
自作クラスタ計算機:mpiによる並列計算 [2020/03/02 21:39] koudai [サンプルプログラム] |
||
---|---|---|---|
Line 3: | Line 3: | ||
* 実際にMPIを用いたノード内およびノード間の並列計算を行います | * 実際にMPIを用いたノード内およびノード間の並列計算を行います | ||
* 事前にOpenMPI, | * 事前にOpenMPI, | ||
- | * 例えばOpenMPIであれば次のようにインストールできます< | + | * OpenMPIの場合、次のようにaptで簡単にインストールできるので、特にこだわりがなければお勧めです< |
$ sudo apt install openmpi-bin libopenmpi-dev | $ sudo apt install openmpi-bin libopenmpi-dev | ||
</ | </ | ||
- | * **同じコンピュータに複数のMPIを入れると競合を起こしてMPIが動かなくなることがあります** | + | * **複数のMPIを一つのコンピュータに入れると、競合を起こしてMPIが動かなくなります** |
====== 準備 ====== | ====== 準備 ====== | ||
Line 108: | Line 108: | ||
</ | </ | ||
* 試しに管理ノードで走らせてみます< | * 試しに管理ノードで走らせてみます< | ||
- | $ mpirun -n 4 hello | + | $ mpirun -n 4 ./hello |
Hello World! I am 0 of 4 from kanri. | Hello World! I am 0 of 4 from kanri. | ||
Hello World! I am 1 of 4 from kanri. | Hello World! I am 1 of 4 from kanri. | ||
Line 149: | Line 149: | ||
(以下略) | (以下略) | ||
</ | </ | ||
- | * MPIが各ノードにプロセスを割り振ります | ||
* プロセスは keisan11 -> keisan12 -> keisan13 -> keisan11 -> ... の順に割り振られて行きます | * プロセスは keisan11 -> keisan12 -> keisan13 -> keisan11 -> ... の順に割り振られて行きます | ||
Line 155: | Line 154: | ||
==== ホストファイルによるジョブの投入 ==== | ==== ホストファイルによるジョブの投入 ==== | ||
- | 例えばノードごとに性能差がある場合など、ノードごとのプロセス数を自分で管理したい場合はホストファイルを作成します。 | + | 例えば計算ノードによって性能に差がある場合など、ノードごとのプロセス数を自分で管理したい場合はホストファイルを作成します。 |
- | 例えばkeisan11に2スレッド、keisan12に3スレッド割り振りたい場合は次のファイルを用意します。 | + | |
* MPICH, Intel MPIの場合 | * MPICH, Intel MPIの場合 |