|TOP Page|


MPICH2 on Windows Local

MPICH2 on Windows Local




Last Update:2008年03月01日


概要

MPICH2を用いると並列計算のプログラムを開発することができます。いきなり多数のPCを使って開発を行うとデバッグが大変ですが、MPICH2は多数のPCで実行されていることを仮想的に再現することができるのでとても便利です。ここではWindows上での設定方法について説明します。

MPICH2のインストール

こちらのMPICH2のページ

http://www.mcs.anl.gov/research/projects/mpich2/

http://www-unix.mcs.anl.gov/mpi/mpich2/index.htm

から

Win32 IA32 mpich2-1.0.6p1-win32-ia32.msi

をダウンロードする。あとは適当に[Next]ボタンを押していくとインストールが終了する。

何も指定しなければ、

C:\Program Files\MPICH2\

にMPICH2がインストールされる

PATHを通す

;C:\Program Files\MPICH2\bin\

を追加して[OK]ボタンをクリックする。

mpiexec

と入力、引数のUsageが表示されたらPATHは通っている。

Visual Studio2005がすでに起動している場合は再び立ち上げないと設定が反映されないので注意が必要である。

Visual Studio 2005 での設定

ヘッダ、ライブラリの設定

C:Program Files\MPICH2\include

を追加する。

C:Program Files\MPICH2\lib

を追加する。

プロパティの変更

デバッグの場合 mpi.lib cxxd.lib
リリースの場合 mpi.lib cxx.lib

を追加する。

実行時の引数の指定

MPICH2を用いて作られたプログラムをローカル環境で実行させるには次のようにすればよい。

mpiexec.exe -localonly 4 (プログラム名)

ここで4というのは仮想的に実行させるプロセッサ数である。



わざわざビルドしたプログラムをコマンドプロンプトで実行させるのは不便なので開発環境側で同じ処理が行われるように設定を変更しておく

mpiexec.exe

と入力する

-localonly 4 $(TargetPath)

と入力する。ここで4としたのは仮想的に並列計算させるプロセッサー数の例である。この数字を変えることで、何台のマシンで仮想的に並列計算を実行するかを変えることができる。

プログラムの実行

Windows上でMPIのプログラムを実行する場合、管理者権限が必要なので注意が必要である。

簡単なプログラム

ソース

#include "mpi.h"
#include <iostream>

int main(int argc,char **argv)
{
	int myid, numprocs;

	MPI::Init(argc,argv);

	numprocs = MPI::COMM_WORLD.Get_size();
	myid     = MPI::COMM_WORLD.Get_rank();
	std::cout << "Process " << myid << " of " << numprocs << std::endl;

   	MPI::Finalize();
}

実行結果

Process 2 of 4
Process 3 of 4
Process 1 of 4
Process 0 of 4

参考にしたもの

MPICH2のWindows用のマニュアル
http://www-unix.mcs.anl.gov/mpi/mpich2/downloads/mpich2-doc-windev.pdf