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 revisionPrevious revision
Next revision
Previous revision
自作クラスタ計算機:mpiによる並列計算 [2020/03/06 20:32] – [サンプルプログラム] koudai自作クラスタ計算機:mpiによる並列計算 [2026/06/15 18:22] (current) – [SSHの導入] koudai
Line 2: Line 2:
  
   * 実際にMPIを用いたノード内およびノード間の並列計算を行います   * 実際にMPIを用いたノード内およびノード間の並列計算を行います
-  * 事前にOpenMPI, MPICH2, Intel MPIなどのMPIライブラリを管理ノードにインストしてください +  * 事前にOpenMPI, MPICH2, Intel MPIなどのMPIライブラリを管理ノードでビルドし、NFSよって計算ノドと共有してください -> [[数値計算ライブラリ:OpenMPI]] 
-  * Ubuntuでaptを使えばOpenMPIを簡単インストきるので、特にこだわりがなければお勧めです<code> +  * /homeディレクトリNFSサーバよって、管理ノードと計算ノ共有さているとします
-$ sudo apt install openmpi-bin libopenmpi-dev +
-</code> +
-  * **複数のMPIを一つのコンピュータに入れると、競合を起こてMPIが動かなくなります**+
  
 ====== 準備 ====== ====== 準備 ======
Line 19: Line 16:
     * 出てきた数字がCPUあたりのコア数になります      * 出てきた数字がCPUあたりのコア数になります 
   * スレッド数<code>$ cat /proc/cpuinfo | grep "processor"</code>   * スレッド数<code>$ cat /proc/cpuinfo | grep "processor"</code>
-    * 表示される行数が スレッド数 = 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をオフにすることもできます
  
  
-===== SSHの導入 ===== 
  
-管理ノードと計算ノードの間の通信はSSHで行います。 
-  * 現状のままだと管理ノードから計算ノードへ入る際にパスワードの入力が必要ですが、ジョブ投入のたびにパスワードを入力するのは現実的ではありません。 
-  * そこでパスフレーズなしのSSH鍵を作成することで、パスワードの入力を回避します 
- 
-  - 管理ノードのジョブを投げるユーザーのアカウント(以下ではsugimotoとします)にログインし、SSH鍵を作成します。パスフレーズを聞かれるところでは**なにも入力せずに**エンターを押します<code> 
-$ ssh-keygen -t rsa 
-Generating public/private rsa key pair. 
-Enter file in which to save the key (/home/sugimoto/.ssh/id_rsa):  
-Created directory '/home/sugimoto/.ssh'. 
-Enter passphrase (empty for no passphrase):  
-Enter same passphrase again:  
-Your identification has been saved in /home/sugimoto/.ssh/id_rsa. 
-Your public key has been saved in /home/sugimoto/.ssh/id_rsa.pub. 
-The key fingerprint is: 
-SHA256:ZLnV/uJ8+lml7EdU+j8sjGJdxqF6F+tyg8FrD2hP3hI sugimoto@kanri 
-The key's randomart image is: 
-+---[RSA 2048]----+ 
-|                 | 
-|         . .    .| 
-|        + . .  ..| 
-|       o o . .. .| 
-|        S . + .o.| 
-|          .E B .+| 
-|         ooo@ B.o| 
-|        .++%oX.=o| 
-|        . +o@B*..| 
-+----[SHA256]-----+ 
-</code> 
-  - 公開鍵を設置します<code> 
-$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
-</code> 
-    * NFSサーバを設置しているので、管理ノードにおいてある鍵は計算ノードでも見えます 
-  - 初回接続時に表示されるメッセージを抑制させます<code> 
-$ echo "StrictHostKeyChecking no" >> ~/.ssh/config 
-</code> 
-  - 権限を変更します<code> 
-$ chmod 600 ~/.ssh/id_rsa 
-$ chmod 600 ~/.ssh/authorized_keys 
-$ chmod 700 ~/.ssh/ 
-</code> 
-  - 実際にパスワード無しで計算ノードにログインできるか確かめます<code> 
-$ ssh keisan11 
-</code> 
  
 ====== 並列計算 ====== ====== 並列計算 ======
自作クラスタ計算機/mpiによる並列計算.1583494332.txt.gz · Last modified: 2021/06/27 21:58 (external edit)