自作クラスタ計算機:mpiによる並列計算
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
自作クラスタ計算機:mpiによる並列計算 [2020/03/03 17:04] – koudai | 自作クラスタ計算機:mpiによる並列計算 [2023/12/26 23:43] (current) – [ハードウェアの確認] koudai | ||
---|---|---|---|
Line 2: | Line 2: | ||
* 実際にMPIを用いたノード内およびノード間の並列計算を行います | * 実際にMPIを用いたノード内およびノード間の並列計算を行います | ||
- | * 事前にOpenMPI, | + | * 事前にOpenMPI, |
- | * Ubuntuではaptを使えばOpenMPIを簡単にインストールできるので、特にこだわりがなければお勧めです< | + | * / |
- | $ sudo apt install openmpi-bin libopenmpi-dev | + | |
- | </ | + | |
- | * **複数のMPIを一つのコンピュータに入れると、競合を起こしてMPIが動かなくなります** | + | |
====== 準備 ====== | ====== 準備 ====== | ||
Line 19: | Line 16: | ||
* 出てきた数字がCPUあたりのコア数になります | * 出てきた数字がCPUあたりのコア数になります | ||
* スレッド数< | * スレッド数< | ||
- | * 表示される行数が スレッド数 = CPU数 × CPUあたりのコア数 に対応します。通常は論理コア数と物理コア数は等しいですが、Hyper-Threadingが有効の場合は論理コア数が物理コア数の2倍になります。 | + | * 表示される行数が スレッド数 = CPU数 × CPUあたりのコア数 に対応します。通常は論理コア数と物理コア数は等しいですが、Intel Hyper-Threadingが有効の場合は論理コア数が物理コア数の2倍になります。 |
- | * Hyper-Threadingは見かけ上のコア数が2倍になる技術であり、並列計算プログラムで並列化効率が良い場合は逆に計算速度が著しく低下します。これは1つの物理コアに2つのジョブが投入されてしまうために発生します。 | + | * Hyper-Threadingは見かけ上のコア数が2倍になる技術です。2つのプロセスを1つのCPU物理コアで実行するときに、効率よくリソースを割り振ります |
- | * スレッドごとの計算の重さのバランスが著しく悪く、1つのスレッドの計算が終わっているのに別のスレッドの計算は続いている、というような場合にのみ有効です。 | + | * OpenMPやMPIを使った並列計算をするときに物理コア数以上のプロセス数を割り当てても、トータルの計算速度にほとんどご利益がない(遅くなることもある)ことが多いです |
- | * よくわからない場合は、BIOSを使ってHyper-Threadingをオフにするか、MPIでのジョブ投入時に並列数を物理コア数以下にすることが望ましいです。 | + | * BIOSからHyper-Threadingをオフにすることもできます |
Line 83: | Line 80: | ||
次のコードを使って説明します | 次のコードを使って説明します | ||
- | < | + | < |
#include < | #include < | ||
#include " | #include " | ||
Line 184: | Line 181: | ||
</ | </ | ||
* プロセスは keisan11 -> keisan11 -> keisan12 -> keisan12 -> keisan12 -> keisan12 -> keisan11 -> keisan11 -> keisan12 -> keisan12 -> keisan12 -> keisan12 -> keisan11 -> ... の順に割り振られて行きます | * プロセスは keisan11 -> keisan11 -> keisan12 -> keisan12 -> keisan12 -> keisan12 -> keisan11 -> keisan11 -> keisan12 -> keisan12 -> keisan12 -> keisan12 -> keisan11 -> ... の順に割り振られて行きます | ||
- | * Intel MPIの場合は< | + | * Intel MPIの場合は< |
* https:// | * https:// | ||
自作クラスタ計算機/mpiによる並列計算.1583222690.txt.gz · Last modified: 2021/06/27 21:58 (external edit)