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 16:40] koudai [SSHの導入] |
自作クラスタ計算機:mpiによる並列計算 [2021/06/28 04:01] koudai [概要] |
||
---|---|---|---|
Line 2: | Line 2: | ||
* 実際にMPIを用いたノード内およびノード間の並列計算を行います | * 実際にMPIを用いたノード内およびノード間の並列計算を行います | ||
- | * 事前にOpenMPI, | + | * 事前にOpenMPI, |
- | * Ubuntuではaptを使えばOpenMPIを簡単にインストールできるので、特にこだわりがなければお勧めです< | + | * / |
- | $ sudo apt install openmpi-bin libopenmpi-dev | + | |
- | </code> | + | |
- | * **複数のMPIを一つのコンピュータに入れると、競合を起こしてMPIが動かなくなります** | + | |
====== 準備 ====== | ====== 準備 ====== | ||
Line 74: | Line 71: | ||
作業は全て管理ノードで行います | 作業は全て管理ノードで行います | ||
- | * 生成したプログラムは管理ノードのNFSサーバの機能により全ノードに配布されます | + | * mpirunを実行するノード(管理ノード)とプログラムを動かすノード(計算ノード)が異なる場合は、mpirunを実行したノードと同じ名前のディレクトリに移動してプログラムを動かす仕組みになっています |
+ | * 今回生成したクラスタマシンでは、NFSサーバの機能により、管理ノードにあるプログラムが全ノードに配布されます | ||
Line 81: | Line 80: | ||
次のコードを使って説明します | 次のコードを使って説明します | ||
- | < | + | < |
#include < | #include < | ||
#include " | #include " | ||
Line 142: | Line 141: | ||
複数の計算ノードにわたるジョブを投げてみます。 | 複数の計算ノードにわたるジョブを投げてみます。 | ||
- | * オプション< | ||
* 計算ノードkeisan11, | * 計算ノードkeisan11, | ||
$ mpirun -hosts keisan11, | $ mpirun -hosts keisan11, | ||
Line 162: | Line 160: | ||
* OpenMPIの場合 | * OpenMPIの場合 | ||
- | <file - my_hosts> | + | <file - hosts.txt> |
keisan11 slots=2 | keisan11 slots=2 | ||
keisan12 slots=4 | keisan12 slots=4 | ||
</ | </ | ||
* MPICH, Intel MPIの場合 | * MPICH, Intel MPIの場合 | ||
- | <file - my_hosts> | + | <file - hosts.txt> |
keisan11:2 | keisan11:2 | ||
keisan12:4 | keisan12:4 | ||
Line 174: | Line 172: | ||
次のように実行します | 次のように実行します | ||
< | < | ||
- | $ mpirun -n 6 -f my_hosts | + | $ mpirun -n 6 -f hosts.txt |
Hello world: rank 0 of 6 running on keisan11 | Hello world: rank 0 of 6 running on keisan11 | ||
Hello world: rank 1 of 6 running on keisan11 | Hello world: rank 1 of 6 running on keisan11 |