Raspberry PiにOpenMPIをインストール
こんにちは。
今回はRaspberry PiにOpenMPIをインストールします。
ざっくりOpenMPIの説明をします。
OpenMPIとはFortran、C、C++用の並列コンピューティングを可能にするライブラリです。
劇的ざっくり。
ここではC言語用ライブラリとして想定のもと行います。
準備
まず、ソースファイルを準備して解凍します。
$ wget http://www.open-mpi.org/software/ompi/v1.8/download/openmpi-1.8.4.tar.bz2
$ tar xjvf openmpi-1.8.4.tar.bz2
$ cd openmpi-1.8.4
$ ./configure
ここでconfigureにprefixは指定しませんのでデフォルトの/usr/local/binをトップディレクトリとしたMakefileが生成されます。
configureで30分くらいかかりました。
make
$ sudo make all
$ sudo make install
make allでかなり時間がかかります。寝る前にやった方が良いと思います。
ちなみに3時間くらいかかりました。
PATHの設定
$ export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH #修正20160525 #Tr_Kyamさんありがとうございます。
これでインストールは完了です。
$ which mpicc
を実行し先ほど指定したPATH、つまり/usr/local/bin/mpiccと表示されたら成功です!
$ mpicc -o <出力名> <入力ファイル>
です。複数ノードで実行する場合は
$ mpirun -np <ノード数> <実行ファイル>
と指定します。
サンプル
こんな感じのソースコードがひな形になります。
#include<stdio.h> #include "mpi.h" int main(int argc,char **argv){ int pid,procs; MPI_Init(&argc,&argv); MPI_Comm_rank(MPI_COMM_WORLD,&pid); MPI_Comm_size(MPI_COMM_WORLD,&procs); printf("Hello!World! %d¥n",pid); MPI_Finalize(); return 0; }
ファイル名をmpi1.cで保存し、コンパイル。
実行結果はこのようになりました。
1台のRaspberry Piで並列コンピューティングなんてなんの意味もないんですけどね・・・
じゃあ2台ではどうだろうか!
という事でRaspberry Pi2台で並列分散コンピューティングします。
(通信にかかる時間により、早くはなりません。でも好奇心が駆り立てます。)
結果はのちのち書きます。