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 [実行ファイル]
で実行。