/var/log/soymsk

id:soy_msk


MPICH2 on Windows7 64bit with visual studio2010

1台のPCで並列処理を行う場合、openMP と MPI の2通りがあるらしい。
MPI はPCクラスタ上で実行する分散処理フレームワークだけれども、一台で実行する場合でもopenMP以上の性能が出る場合があるとのことなので、まずインストールをやってみた。

1, MPICH2 or OpenMPI
MPIには openMPI, MPICHなどいくつかの実装がある。openMPIはver1.5からwindowsバイナリの配布が始まったけど、実例が少なそうなので却下。

MPICHの方はこなれた実装らしく、割と情報が多かった。

2, MPICH2のインストール
MPICH本家のサイトよりWindows用バイナリをダウンロード。
最新版はなぜかリンク切れでダウンロード出来なかったので、少し古いバージョンをインストールした。

[注意]
Windows版では、インストール作業を管理者権限で行う必要があり、インストーラーのアイコンから起動してもダメ。

コマンドプロンプトを管理者権限で実行し、以下のコマンドを叩いてインストール。
msiexec /I [インストーラー.msi]
, サンプル
インストールするとサンプルも同時にインストールされる。
[INSTALL_DIR/example] にサンプルがあるので
mpiexec -n [サンプルexe]
で実行出来るか試す。


ここで実行できない場合、MPICHのインストールを管理者権限で行っていない、ファイヤーウォールを開けていないなどが考えられる。

PCクラスタ上で計算する場合は各PCにMPICHをインストールして、アカウントを登録しる必要があるが、今回は単なる並列処理なので省略。

, 設定
Visual Studio 2010でコンパイルしてみる。

設定としては、
1, Include ディレクトリ
2, ライブラリディレクトリ
3, ライブラリファイルをプロジェクトに追加
が必要。1,2 で十分かと思ったが、3がないとコンパイルできない。

サンプルと同じようにコマンドプロンプトから
mpiexec -n [実行ファイル]
で実行。