方法 : リモート クラスター アプリケーションをデバッグする
このトピックの内容は、次の製品に該当します。
エディション |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro、Premium、Ultimate |
Visual Studio では、MPI クラスター デバッグがサポートされるようになりました。 この機能により、MPI (Message Passing Interface) 経由で通信するコンピューターのクラスター上で動作する並列プログラムをデバッグできます。
MPI デバッグの必要条件:
クラスター内の各コンピューターに MPI をインストールし、構成する必要があります。 MPI は、Windows Server 2003、Compute Cluster Edition に付属しています。 他の MPI 実装も利用できます。
クラスター内の各コンピューターに MPIShim.exe をインストールする必要があります。 MPIShim は Visual Studio 2005 に付属していて、並列デバッグを有効にするためにリモート デバッグ コンポーネントと共にインストールされます。 MPIShim は、任意のディレクトリにインストールできますが、クラスター内の各コンピューターで同じディレクトリに格納する必要があります。 インストール パスの例を次に示します。
c:\windows\system32\mpishim
または、デバッグ対象にローカルなディレクトリにインストールできます。
クラスター内の各コンピューターにリモート デバッグ モニター (msvsmon) をインストールする必要があります。 方法 : リモート デバッグ モニターを実行する を参照してください。
クラスター コンピューターをデバッグするための適切な特権を持つアカウントを使用して、Visual Studio ホスト (デバッグの実行元のコンピューター) を設定する必要があります。 (「リモート デバッグのアクセス許可」を参照)。
MPI デバッグ用に Visual Studio プロジェクトを準備するには
並列アプリケーションを含むソリューションを Visual Studio で開きます。
ソリューション エクスプローラーでプロジェクトを右クリックし、ショートカット メニューの [プロパティ] をクリックします。
[Project プロパティ] ダイアログ ボックスで、[デバッグ] をクリックします。
[起動するデバッガー] ボックスで、[MPI クラスター デバッガー] を選択します。
[MPIRun コマンド] ボックスに、クラスター コンピューター上の (MPI アプリケーションを起動する) MPIRun または MPIExec の場所を入力します。 次に例を示します。
c:\windows\system32\mpiexec.exe
[MPIRun 引数] ボックスに、MPIRun または MPIExec に渡す引数を入力します。 次に例を示します。
-np 2
[MPIRun 作業ディレクトリ] ボックスに、MPIRun または MPIExec の作業ディレクトリを入力します。 次に例を示します。
c:\temp
[アプリケーション コマンド] ボックスに、MPI が各クラスター コンピューターで実行するアプリケーションへのパスを入力します。このアプリケーションは、Visual Studio で開いたプロジェクトのアプリケーションでもあります。 このパスは、クラスター内の各コンピューターの共有パスまたはローカル パスになります。 ローカル パスの場合は、各コンピューターで一致する必要があります。 次に例を示します。
$(TargetPath)
[アプリケーション引数] ボックスに、アプリケーションに渡す引数を入力します。
[MPIShim の場所] ボックスに、MPIShim.exe へのパスを入力します。 次に例を示します。
c:\windows\system32\mpishim
[デバッガーのタイプ] ボックスの設定を [自動] (既定値) のままにしておくと、実行するコードに見合ったデバッガーの種類が自動的に選択されます。 または、アプリケーションに適合する種類 ([ネイティブのみ]、[マネージのみ]、または [混合]) を選択することもできます。
[Project プロパティ] ダイアログ ボックスを閉じます。
[ツール] メニューの [オプション] をクリックします。
[オプション] ダイアログ ボックスで、[デバッグ] ノードをクリックし、[全般] カテゴリをクリックします。
[1 つのプロセスがブレークするとき、他のプロセスもブレークする] チェック ボックスを見つけます。 デバッグ セッションで必要な動作に応じて、このチェック ボックスをオンまたはオフにします。 これは [ツール] オプションであるため、この設定は、次回変更するまですべてのプロジェクトに対して有効になります。 詳細については、「方法 : 実行を中断する」を参照してください。
[OK] をクリックして、[オプション] ダイアログ ボックスを閉じます。
並列アプリケーションをデバッグするには
[デバッグ] メニューの [開始] をクリックしてデバッグを開始します。
プロジェクトが正しく設定されていれば、アプリケーションはクラスター内のすべてのコンピューターで動作を開始します。
コードにブレークポイントを設定している場合は、最初のブレークポイントで実行が中断します。
[デバッグ] メニューの [ウィンドウ] をポイントし、[プロセス] をクリックします。
[プロセス] ウィンドウが表示されます。 このウィンドウを使用して、アクティブなプロセスを設定できます。 1 つのアクティブ プロセスのみをステップ実行するには、このウィンドウの上部にあるステップ ボタンを使用します。
DataTip を使用すると、並列アプリケーションをデバッグしながら変数値を確認できます。 DataTip に表示される変数値は、[プロセス] ウィンドウで設定された現在アクティブなプロセスに基づきます。