ラベル MPI の投稿を表示しています。 すべての投稿を表示
ラベル MPI の投稿を表示しています。 すべての投稿を表示

2011年7月21日木曜日

MPI

少しMPIでプログラミングする機会があったのでメモ.

  • MPI(Message-Passing Interface)
    • 並列プログラミングの規格
    • C,C++,FOTRANなどでサポート
    • ライブラリをインクルードしてやれば使用可能
  • プロセス
    • 各プロセスは自律的に実行される
    • 各プロセスで実行されるコードは,同一でなくて良い
    • プロセスはランクによって管理される
    • 各プロセスごとに,ランクがつけれて,これを分割して実行できる
  •  記述方法
    •  MPIの初期化関数が呼ばれない限りは,MPIとして実行されない
    • 終了のための関数を呼び出してMPIを終了する


とりあえずまだこんなもんで.

2011年7月19日火曜日

Visual C++でMPIのプログラムを動かす

Viusual C++ で,MPIを使ったサンプルプログラムを動かすまでの流れ

環境 : Windows 7 64bit, Visual C++ 2008

  1. HPC Pack 2008 SDK with Service Pack 1 (SP1)をダウンロード
  2. 1をインストール.クリックしてけばオッケー
  3. Visual C++の設定
  •  プロジェクトのプロパティ->構成プロパティのC/C++->追加のインクルードディレクトリにパスを通す.(ここでは,C:\Program Files\Microsoft HPC Pack 2008 SDK\Include)
  •  コード生成のランタイムライブラリ->マルチスレッド(/MT)に設定 
  • リンカの全般の追加のライブラリディレクトリ->"C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\i386"に設定
  • リンカの入力の追加の依存ファイル->msmpi.libを追加
これでビルドが通るようになるはず.

あとは,コマンドプロンプトなどでデバックのディレクトリにある実行ファイル.exeを下記のようにオプションをつけて実行する.特にプロセスの個数を入力する場合は以下のようにする.

% mpiexec -n プロセスの個数 実行ファイル名.exe
でオッケー

具体的には,
% mpiexec -n 5 mpisample.exe
 というかんじで実行する.