User Tools

Site Tools


自作クラスタ計算機:mpiによる並列計算

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
自作クラスタ計算機:mpiによる並列計算 [2020/03/03 15:43]
koudai [ホストファイルによるジョブの投入]
自作クラスタ計算機:mpiによる並列計算 [2020/03/03 16:34]
koudai [概要]
Line 3: Line 3:
   * 実際にMPIを用いたノード内およびノード間の並列計算を行います   * 実際にMPIを用いたノード内およびノード間の並列計算を行います
   * 事前にOpenMPI, MPICH2, Intel MPIなどのMPIライブラリを管理ノードにインストールしてください   * 事前にOpenMPI, MPICH2, Intel MPIなどのMPIライブラリを管理ノードにインストールしてください
-  * OpenMPIの場合次のようにaptで簡単にインストールできるので、特にこだわりがなければお勧めです<code>+  * UbuntuではOpenMPIをaptで簡単にインストールできるので、特にこだわりがなければお勧めです<code>
 $ sudo apt install openmpi-bin libopenmpi-dev $ sudo apt install openmpi-bin libopenmpi-dev
 </code> </code>
Line 133: Line 133:
 Hello world: rank 7 of 8 running on keisan11 Hello world: rank 7 of 8 running on keisan11
 </code> </code>
 +    * ホスト名の代わりにIPアドレスでも可能です
  
  
Line 143: Line 144:
   * オプション<nowiki>-hosts</nowiki>で複数のホスト名を指定します   * オプション<nowiki>-hosts</nowiki>で複数のホスト名を指定します
   * 計算ノードkeisan11, keisan12, keisan13にジョブを投げる場合は次のようにします<code>   * 計算ノードkeisan11, keisan12, keisan13にジョブを投げる場合は次のようにします<code>
-$ mpirun -n 10 -hosts keisan11,keisan12,keisan13 ./hello +$ mpirun -hosts keisan11,keisan12,keisan13 -n 8 -ppn 2 ./hello 
-Hello world: rank 0 of 10 running on keisan11 +Hello world: rank 0 of running on keisan11 
-Hello world: rank 1 of 10 running on keisan11 +Hello world: rank 1 of running on keisan11 
-Hello world: rank 2 of 10 running on keisan11 +Hello world: rank 2 of running on keisan12 
-Hello world: rank 3 of 10 running on keisan11 +Hello world: rank 3 of running on keisan12 
-Hello world: rank 4 of 10 running on keisan12 +Hello world: rank 4 of running on keisan13 
-Hello world: rank 5 of 10 running on keisan12 +Hello world: rank 5 of running on keisan13 
-Hello world: rank 6 of 10 running on keisan12 +Hello world: rank 6 of running on keisan11 
-Hello world: rank 7 of 10 running on keisan12 +Hello world: rank 7 of 8 running on keisan11
-Hello world: rank of 10 running on keisan13 +
-Hello world: rank 9 of 10 running on keisan13+
 </code> </code>
-  * どうやらMPIを実行したノード(今場合管理ノード)コア数だけ投げた次のノードに行く、とう仕組みみたいで。(未確認)+  * オプション-ppnでノードあたりプロセス数を指定します 
 +  * プロセスは keisan11 -> keisan11 -> keisan12 -> keisan12 -> keisan13 -> keisan13 -> keisan11 -> keisan11 -> keisan12 -> ... 順に割り振れてきま
  
 ==== ホストファイルによるジョブの投入 ==== ==== ホストファイルによるジョブの投入 ====
  
-例えば計算ノードによって性能に差がある場合など、ノードごとのプロセス数を自分で管理したい場合はホストファイルを作成します。+ホスト名を毎回入力したくない、計算ノードによってプロセス数を変えたいなどの場合はホストファイルを作成します。
  
   * MPICH, Intel MPIの場合   * MPICH, Intel MPIの場合
Line 183: Line 183:
 </code> </code>
     * プロセスは 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の場合は<nowiki>-f</nowiki>の代わりに<nowiki>-machinefile</nowiki>あるいは<nowiki>-machine</nowiki>を使用してください+    * Intel MPIの場合は<nowiki>-f</nowiki>の代わりに<nowiki>-machinefile</nowiki>を使用してください
       * https://software.intel.com/en-us/articles/controlling-process-placement-with-the-intel-mpi-library        * https://software.intel.com/en-us/articles/controlling-process-placement-with-the-intel-mpi-library 
  
自作クラスタ計算機/mpiによる並列計算.txt · Last modified: 2023/12/26 23:43 by koudai