検索サイトからいらした方へ
インストール関連の最新記事はリンク先ページです:最新インストール記事へ移動
デバッグ実行はこちら
はじめに
開発環境をVisual Studio 2012(VS2012))に変更しました。これまで2008を使ってきて2010はパスしたのですが、いいですよね2012。マシンパワーが上がったためなのかアプリケーションの最適化のためかわかりませんが、VS2012はサクサク動き、補完機能も快適です。さて、ここでは、VS2012にあわせて、Microsoft製のMPI(MS-MPI)のインストールにチャレンジします。MS-MPIはWindows環境でMPIが使えるようにMicrosoft自身が用意したものなので、Visual Studioでの開発には最も楽に導入できると思います。特にVS上でのデバッグ実行がMPI並列でも可能になるので、開発が非常にスムーズになります。
このメモ時点での環境。すでにVisual Studioはインストール済みの環境を想定しています。
- OS:Windows 7 pro. 64bit
- C++コンパイラ:Visual Studio 2012 pro
- MS-MPI:HPC Pack 2012 MS-MPI Redistributable Package - 日本語
MS-MPIの取得
MS-MPIはMicrosoftのダウンロードセンターから取得できます。この記事を書いている現時点でのリンクはhttp://www.microsoft.com/ja-jp/download/details.aspx?id=36045
です(2013/12/13修正)。ただし、Microsoftのリンクアドレスは頻繁に変わるので、最新のものを取得するようにしてみてください。 まだダウンロード時には64bit環境(x64)か32bit環境(x86)か、あなたのOS環境に合わせた方のバージョンを選択してください。ここでの選択はビルドするバイナリがx86/x64どちらかということではなく、あくまでOSの環境がどちらかということです。基本的にOSが64bitの場合、x64をインストールすることになりますが、Visual Studioでのコンパイルに必要なライブラリファイルは、64bit用と32bit用の両方がちゃんとインストールされます。
MS-MPIのインストール
さて、mpi_x64.Msiをダウンロードしたら、クリックしてそのままインストールしましょう。 あとはインストーラーの設定に従って進んでください。今回はインストールディレクトリの変更はしないものとして話を進めます。MS-MPIのパスをVisual Studioに登録
インストールができたら、Visual Studioにインストールディレクトリのパスを登録します。 VS2008の場合と比べて、VS2012では、「VC++ ディレクトリ」によるパスの登録方法が変わりました。 「VC++ ディレクトリ」を設定する方法としては、プロジェクトごとに設定する方法と、ユーザー単位で設定する方法があるようですが、ここではプロジェクトごとに設定することにします。まず目的のプロジェクトファイルを開き、メニューから「プロジェクト」→「プロパティ」を開きます。 すると別窓でプロパティーページが開きます。その左側のツリーの中から「構成プロパティ」→「VC++ ディレクトリ」を選びます。 次のようにMS-MPIのディレクトリを追加していきます。 開発環境が64bitOSであっても、x86用の32bitアプリケーションソフトを作ることが可能です。目的に合わせてライブラリの設定値は変えてください。 細かい操作方法は省きます。
- 実行可能ディレクトリ:
C:\Program Files\Microsoft HPC Pack 2012\Bin(2013/06/27変更) - インクルードディレクトリ:C:\Program Files\Microsoft HPC Pack 2012\Inc
- ライブラディレクトリ(x64の場合):C:\Program Files\Microsoft HPC Pack 2012\Lib\amd64
- ライブラディレクトリ(WIN32(x86)の場合):C:\Program Files\Microsoft HPC Pack 2012\Lib\i386
- 追加の依存ライブラリ:msmpi.lib
Visual Studio上でのMPIプログラム実行のための設定
VS2008(VS2010も?)では「MPIクラスタデバッガ」なるデバッグ実行モードが選べますが、VS2012では現時点で未対応の様です。もしかすると、使えるのかもしれませんがweb資料を漁った限りでは情報が見つかりませんでした。分かり次第追加レポートします。ここでは暫定的に、Visual Studio上からF5キーでexeを実行できるようにします。 プロパティーページの左側のツリーの中から「構成プロパティ」→「デバッグ」を選び、右の設定項目の中で以下の設定をします。
- 起動するデバッガー:ローカル Windows デバッガー
- コマンド:C:\Program Files\Microsoft HPC Pack 2012\Bin\mpiexec.exe (2013/06/27変更)
- コマンド引数:-n プロセス数 $(TargetPath)
コンパイル&実行
ディレクトリの設定ができたら、ソースコードに"mpi.h"をインクルードさせましょう。 これで、MPI関係のAPIもコンパイルが通ります。 無事にコンパイルが通ればおめでとうございます。 実行すると、mpiexec.exeとしてプロンプトが立ち上がり、その上で並列数分の実行ファイルが走ります。以下の設定はプロンプトへの出力がうまくいかない人だけ試してみてください。
- コマンド引数:-n プロセス数 $(TargetPath) > log.txt
余談
Visual Studio 2012の「MPIクラスタデバッガ」が早く出て欲しいですね。 また何かわかったらレポートします。(追記:2016/07/28)MPI並列でもデバッグ実行できる方法に気付きました。 こちらへどうぞ。