UbuntuとMintにOpenMPIを導入
次の記事-OpenMPIの使い方について
OpenMPIとOpenMPは別物だよ!!!
どちらも並列処理のためのフレームワークだけど、
なんでわざわざ混乱を招く名前をつけるのかね。
両者の違いは
「MPIでは各プロセスが占有のメモリ領域を扱うのに対し、
OpenMPではメモリを共有してアクセスすることができる。」
ということらしい。
参考:OpenMPが遅くなってしまう理由-あおんとのブログ
この記事は OpenMPI のインストール記事です。OpenMPではありません。
インストール
インテル製の速いコンパイラ(iccとかifortとか)を使う場合は自前でビルドする必要がある。 普通のgccで妥協すればaptで一発導入。
$ sudo apt-get install openmpi-bin openmpi-dev
正しくインストールできたかチェックする
- テストコード(C言語)
// testcode.c #include <mpi.h> #include <stdio.h> int main(int argc, char **argv){ int my_rank, my_size; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&my_size); MPI_Comm_rank(MPI_COMM_WORLD,&my_rank); printf ("size (numprocs) = %d, my rank (id) = %d\n", my_size, my_rank); MPI_Finalize(); return 0; }
- コンパイル
$ mpicc testcode.c
- 実行(&結果)
$ mpirun -np 8 a.out size (numprocs) = 4, my rank (id) = 0 size (numprocs) = 4, my rank (id) = 2 size (numprocs) = 4, my rank (id) = 3 size (numprocs) = 4, my rank (id) = 1
参考文献:計算科学入門第7回-MPIによる並列計算 ←これはおすすめ