MPI

Message Passing Interface. 並列計算機でメッセージ交換をするための規格.MPICH, LAM/MPI, OpenMPI, MSMPIなどの実装がある.

普通のPCでも動くことが分かったので(まあプロセス間通信してるだけだから出来ますよね),入れてみた. MacBookにはMacPortsで、UbuntuにはaptでどちらもMPICHを.

  • mpdboot(Ubuntuのみ)
  • mpicc/mpif77 でコンパイル
  • mpirun -np N ./a.out で実行(Nはプロセス数)
  • mpdstop(Ubuntuのみ)

こんな手順で行けた.Mac側のmpdデーモンは勝手に動いてる?

あとはホームディレクトリに .mpd.conf が必要だった.secretwordってどうすんだろ. PCクラスタとかで,同じsecretwordのホストだけ参加したりするのか.

とりあえず文字列を送るテストをしたら,Ubuntuのマシン(Pen4)では6プロセス以上だとCPUが忙しそうだった.

OpenMPを使うよりさらに並列化したい場合は,MPIで明示的にメッセージを飛ばしてやる方が細かく指示できて効果が期待できるということらしい.その分複雑で面倒,と.


About this entry