Parallellaでクラスタリング

いわゆるBeowulf型のクラスタをParallellaで構築してみます。と言っても、最新のインストールイメージにデフォルトでOpenMPIがインストールされていますので、これを利用することで簡単にクラスタリングを試すことができます。

ここでは、ハブを介して2台のParallella DesktopをGbEで接続し、DHCPでMACアドレスに対して静的にIPアドレスを割り当てるものとします。片方のParallellaのホスト名をparallella01, もう一台をparallella02とし、parallella01をマスター演算ノードとします。parallella01, 02のホスト名・IPアドレスの紐付けは/etc/hostsあるいはLANのDNS等で引けるようにしておきます。

  1. parallella01でssh-keygenで公開鍵・秘密鍵のペアを生成します
  2. 生成した公開鍵をparallella02にコピーし、~/.ssh/authorized_keysに追加します
  3. parallella01で以下のコマンドを実行します
$ cd parallella-examples/para-para
$ mpirun -np 4 -host parallella01,parallella02 ./hello-mpi.elf
Hello World from MPI Process 0 on machine parallella01
Hello World from MPI Process 1 on machine parallella01
Hello World from MPI Process 2 on machine parallella02
Hello World from MPI Process 3 on machine parallella02

あっさりクラスタリングできました。-npオプションの引数は2ノード2コア=4となります。4より大きい値を指定するとNUMA云々でエラーになります。なお、para-paraアプリと同じようなアプリが~/test/mpiにもあります。こちらはアプリを自分でmakeする必要がありますが、基本的な実行方法は同じです。

今回は各ノードに個別に同じバイナリを置きましたが、マスター演算ノード(ここではparallella01)のファイルシステムをNFSでスレーブ演算ノード(ここではparallella02)にマウントさせる、という方法も可です。というか、そちらの方がよりBeowulfっぽいかも。ただ、Parallella標準のlinux kernelはNFSサーバに対応してないっぽいです。

Parallellaでクラスタリング」への2件のフィードバック

  1. ピンバック: Parallellaでクラスタリング その2 | CB1300SFのある生活

  2. ピンバック: Parallellaでクラスタリング その3 | CB1300SFのある生活

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です