Visual Studio 2005 Express Editionと
MPICH2の組み合わせでMPI(Message Passing Interface)による並列化を図ろうとしたが、なかなか上手く動いてくれず、試行錯誤とネット検索を繰り返し、やっと動くようになった。手順を以下に示す。
<MPICH2のインストール>
<PATHを通す>
1.マイコンピュータを右クリック
2.メニューから[プロパティ]を選択
3.[詳細設定]のタブで[環境変数]のボタンをクリック
4.システム環境変数のリストから変数名のpathを選択し、編集ボタンをクリック
5.末尾に下記を追加して[OK]ボタンをクリック
C/:Program Files/MPICH2/bin
<PATHを通したことの確認>
1.コマンドプロンプトを立ち上げ、「mpiexec」と入力
2.引数のUsageが表示されたらPATHは通っている
<Visual Studio 2005 での設定>
1.ツールバー[ツール]→[オプション]でダイアログを開く
2.ツリービューの[プロジェクトおよびソリューション]→[VC++ディレクトリ]を選択
3.[ディレクトリを表示するプロジェクト]のコンボボックスで[インクルードファイル]を選択
4.リストに下記を追加
C/:Program Files/MPICH2/include
5.ツールバー[ツール]→[オプション]でダイアログを開く
6.ツリービューの[プロジェクトおよびソリューション]→[VC++ディレクトリ]を選択
7.[ディレクトリを表示するプロジェクト]のコンボボックスで[ライブラリファイル]を選択
8.リストに下記を追加
C/:Program Files/MPICH2/lib
9.ツールバー[プロジェクト]→[プロパティ]でダイアログを開く
10.ツリービューから[構成プロパティ]→[リンカ]→[入力]を選択する
11.表の[追加の依存ファイル]の項目に、デバックの場合「mpi.lib cxxd.lib」、リリースの場合「mpi.lib cxx.lib」を追加(※)
※この手順については、ソースコード中に以下の記述をすれば必要ない(かもしれない)。
#pragma comment(lib, "mpi.lib")
#ifdef DEBUG
#pragma comment(lib, "cxxd.lib")
#else
#pragma comment(lib, "cxx.lib")
#endif
12.ツールバー[プロジェクト]→[プロパティ]でダイアログを開く
13.ツリービューから[構成プロパティ]→[デバッグ]を選択する
14.[コマンド]の項目に「mpiexec.exe」と入力
15.[コマンド引数]の項目に「-localonly 4 $(TargetPath)」と入力(4はプロセッサー数)
<SMPD(Single Program, Multi Data)のインストール>
※ Windows Vista のみの操作かもしれない
1.コマンドプロンプトを起動
2.「smpd -phrase behappy -install」と入力(「behappy」はMPICH2のインストール時に指定するパスワードのデフォルト)
<参考>
●無計画算法:
MPIライブラリのdefineマクロキーワード(プリプロセッサディレクティブ)一覧