BoostでMPIを弄ってみる

初めに

初心者にとって優しくないことで定評のあるBoostだが、MPIラッパーがあると聞いては、並列計算の専門家(を目指す)私が黙ってはおれない。という訳で早速弄ってみたのだが。

必要なパッケージ(Ubuntu)

  1. libboost_mpi1.40-dev
  2. openmpi-bin

色々試し過ぎて何が何だか分からなくなっていたりするが、多分これだけでOK

ソースコード

ソースコードはこちらから拝借。

http://www.kmonos.net/alang/boost/classes/mpi.html

若干アレンジしているが、多分このままでも動く。

コンパイル

コンパイラはmpic++を指定して、あと引数に-lboost_mpi入れればOK。

ローカル実行

mpirunコマンドを使えば良い。引数の-npで実行するプロセスの数を指定する。従ってこうなる

$ mpirun -np 4 ./a.out

クラスタによる実行

只今実験中…