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 16:35]
koudai [概要]
自作クラスタ計算機:mpiによる並列計算 [2020/03/03 16:48]
koudai [ホストファイルによるジョブの投入]
Line 31: Line 31:
   * そこでパスフレーズなしのSSH鍵を作成することで、パスワードの入力を回避します   * そこでパスフレーズなしのSSH鍵を作成することで、パスワードの入力を回避します
  
-  - 管理ノードのジョブを投げるユーザーのアカウント(以下ではsugimotoとします)にログインし、SSH鍵を作成します。パスフレーズを聞かれるところでは**なにも入力せずに**エンターを押します<code>+  - 管理ノードのジョブを投げるユーザーのアカウント(以下ではsugimotoとします)にログインし、SSH鍵を作成します。パスフレーズを聞かれるところでは**なにも入力せずに**エンターを押します<code>
 $ ssh-keygen -t rsa $ ssh-keygen -t rsa
 Generating public/private rsa key pair. Generating public/private rsa key pair.
Line 121: Line 121:
 指定した計算ノードにジョブを投げてみます。 指定した計算ノードにジョブを投げてみます。
  
-  * MPIで指定のホストに投げる場合は、オプション<nowiki>-hosts</nowiki>でホスト名を指定します+  * MPIで指定のホストに投げる場合は、オプション<nowiki>-host</nowiki>でホスト名を指定します
   * 計算ノードのkeisan11にジョブを投げる場合は次のようにします<code>   * 計算ノードのkeisan11にジョブを投げる場合は次のようにします<code>
-$ mpirun -n 8 -hosts keisan11 ./hello+$ mpirun -host keisan11 -n 8 ./hello
 Hello world: rank 0 of 8 running on keisan11 Hello world: rank 0 of 8 running on keisan11
 Hello world: rank 1 of 8 running on keisan11 Hello world: rank 1 of 8 running on keisan11
Line 142: Line 142:
 複数の計算ノードにわたるジョブを投げてみます。 複数の計算ノードにわたるジョブを投げてみます。
  
-  * オプション<nowiki>-hosts</nowiki>で複数のホスト名を指定します 
   * 計算ノードkeisan11, keisan12, keisan13にジョブを投げる場合は次のようにします<code>   * 計算ノードkeisan11, keisan12, keisan13にジョブを投げる場合は次のようにします<code>
-$ mpirun -hosts keisan11,keisan12,keisan13 -n 8 -ppn 2 ./hello+$ mpirun -host keisan11,keisan12,keisan13 -n 8 -ppn 2 ./hello
 Hello world: rank 0 of 8 running on keisan11 Hello world: rank 0 of 8 running on keisan11
 Hello world: rank 1 of 8 running on keisan11 Hello world: rank 1 of 8 running on keisan11
Line 161: Line 160:
 ホスト名を毎回入力したくない、計算ノードによってプロセス数を変えたいなどの場合は、ホストファイルを作成します。 ホスト名を毎回入力したくない、計算ノードによってプロセス数を変えたいなどの場合は、ホストファイルを作成します。
  
-  * MPICH, Intel MPIの場合 
-<file - my_hosts> 
-keisan11:2 
-keisan12:4 
-</file> 
   * OpenMPIの場合   * OpenMPIの場合
-<file - my_hosts>+<file - hosts.txt>
 keisan11 slots=2 keisan11 slots=2
 keisan12 slots=4 keisan12 slots=4
 +</file>
 +  * MPICH, Intel MPIの場合
 +<file - hosts.txt>
 +keisan11:2
 +keisan12:4
 </file> </file>
  
 次のように実行します 次のように実行します
 <code> <code>
-$ mpirun -n 6 -f my_hosts ./hello+$ mpirun -n 6 -f hosts.txt ./hello
 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
Line 183: Line 182:
 </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>を使用してください+    * Intel MPIの場合は<nowiki>-f</nowiki>の代わりに<nowiki>-machine</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