MPI クラスター デバッガーの構成プロパティ

MPI クラスター デバッガーの構成プロパティでは、デバッグ セッションの実行方法を定義できます。この情報は次のタスクに使用されます。

  • デバッグ セッションの実行場所となるクラスターとノードの選択

  • 実行するプロセスの数の指定

  • 配置情報の指定

  • プリデバッグ スクリプトとポストデバッグ スクリプトの指定

次の表では、MPI クラスター デバッガーの構成プロパティについて説明しています。

MPI クラスター デバッガーの構成プロパティ

プロパティ 説明 既定値

実行環境

クラスター上のデバッガーを起動する際に使用するヘッド ノード、開始する MPI プロセスの数、および計算ノードあたりのプロセスの割り当て (省略可能) を指定します。

特定のノードを要求し、プロセスを選択して割り当てるには、[実行環境] ボックスの一覧から [HPC ノードの編集] を選択します。すると、 [ノード セレクター] ダイアログ ボックスが開きます。その他の考慮事項については、「特定ノードの選択と -hosts パラメーター」を参照してください。

または、localhost/<number of processes> を指定してデバッガーをローカルで起動します。

Dd560807.note(ja-jp,VS.100).gifメモ :
このプロパティで指定したリソースの選択内容は、ジョブ記述ファイルで指定されたいずれのリソース割り当てよりも優先されます。

localhost/1

配置ディレクトリ

デバッガーの起動時におけるプロジェクトの出力ファイルのコピー先となるディレクトリを指定します。このディレクトリは、通常はクラスター ヘッド ノード上にあります。また、デバッグ セッションに参加しているすべての計算ノードが読み取ることのできるネットワーク共有でなければなりません。次に例を示します。

HPC Pack 2008 をヘッド ノードにインストールすると、CcpSpoolDir ディレクトリ共有が作成されます。

配置ディレクトリが存在せず、指定されたルート ディレクトリ内の書き込みアクセス許可がユーザーに付与されていると、配置ディレクトリは自動的に作成されます。

ローカル デバッグ:

なし

クラスター デバッグ:

\\headnode\CcpSpoolDir\$(UserName)\$(ProjectName)

作業ディレクトリ

各プロセスによって使用される作業ディレクトリを指定します。このディレクトリは、実行可能ファイルが実行される場所となります。

クラスター デバッグ時に、このディレクトリが配置ディレクトリと異なる場合、配置ディレクトリのファイルは計算ノード上の作業ディレクトリにコピーされます。

ローカル デバッグ:

Visual Studio プロジェクトの出力ディレクトリ。

クラスター デバッグ:

%tmp% ディレクトリ。

アプリケーション コマンド

各クラスター ノード上で MPI によって実行されるアプリケーションの名前またはパスを指定します (これは Visual Studio でデバッグしているアプリケーションです)。このパスは、共有リソースでもローカル パスでもかまいません。

デバッガーは、このアプリケーション ファイルを配置フォルダーにコピーします。

$(TargetFileName)

アプリケーションの引数

アプリケーションに渡す引数を指定します。

なし

MPIShim の場所

開発用コンピューター上の MPIshim 実行可能ファイルの完全なパスを指定します。Visual Studio では、この場所から配置ディレクトリへの MPIShim のコピーが試みられます。

MPIshim は Visual Studio に含まれており、並列デバッグを有効にするためにリモート デバッグ コンポーネントと共にインストールされます。

このプロパティの値は、MPI クラスター デバッガーの完全にカスタマイズされた起動時に指定できます。

%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger

MPIExec コマンド

MPI アプリケーションの起動を調整する MPI プログラムの完全なパスを指定します。

計算ノード上に別の MPI ライブラリ実装がインストールされている場合に、関連する MPI スタックを使用してアプリケーションを起動するには、このプロパティを使用して各計算ノード上のその実行可能ファイルの完全なパスを指定します。このパスが各ノードで異なる場合は、デバッガーの [追加の配置ファイル] プロパティに、MPIexec.exe とその依存ライブラリを含める必要があります。

指定する MPI スタックが-hosts パラメーターをサポートしていない場合は、状況によってはランタイム エラーが発生することがあります。詳細については、「特定ノードの選択と -hosts パラメーター」を参照してください。

MPIexec.exe

追加の MPIExec 引数

MPIexec.exe に渡す追加の引数を指定します。たとえば、追加の引数を使用して、MPIexec.exe により起動されるプロセスの環境変数を設定できます。

-hosts パラメーターを指定した場合は、状況によってはランタイム エラーが発生することがあります。詳細については、「特定ノードの選択と -hosts パラメーター」を参照してください。

MPIexec コマンドの詳細については、mpiexec Command Reference (https://go.microsoft.com/fwlink/?LinkId=144910) (英語の可能性あり) を参照してください。

なし

MPI ネットワーク セキュリティ モード

Visual Studio の現在のインスタンスへの接続が許可された IP アドレスを指定します。

次の 3 つのセキュリティ モードがあります。

  • ローカル サブネットからの接続のみを受け付ける

  • 指定された範囲のアドレスからの接続を受け付ける

    Dd560807.Important(ja-jp,VS.100).gif メモ :
    このオプションを選択した場合は、[MPI ネットワーク フィルター] プロパティを使用して範囲を指定する必要があります。

  • 任意のアドレスからの接続を受け付ける

任意のアドレスからの接続を受け付ける

MPI ネットワーク フィルター

どの IP アドレス範囲からの接続を受け付けるかを指定します。この範囲の開始 IP アドレスとサブネット マスクを指定します。

たとえば、192.168.0.1/255.255.255.0 というネットワーク フィルターには、192.168.0.1 ~ 192.168.0.254 のすべてのアドレスが含まれます。

Dd560807.Important(ja-jp,VS.100).gif メモ :
このフィルターを適用するには、[MPI ネットワーク セキュリティ モード] で [指定された範囲のアドレスからの接続を受け付ける] を選択します。

なし

デバッガー タイプ

実行しているコードのデバッガー タイプ (ネイティブ、マネージ、混合、またはスクリプト) を指定します。

自動

.exe ファイルの内容に基づいてデバッガー タイプが選択されます。

ジョブ記述ファイル

デバッグ ジョブに追加するタスクが記載されたジョブ記述ファイル (XML) のパスを指定します。このファイルで指定されたタスクは、デバッガーにより作成されるタスクの前に追加されます (デバッガーは、配置タスク、デバッグ タスク、およびクリーンアップ タスクを作成します)。

Dd560807.note(ja-jp,VS.100).gifメモ :
クラスター デバッガー プロパティで選択したリソースは、ジョブ記述ファイルで指定されたいずれのリソース割り当てよりも優先されます。

HPC ジョブ マネージャー コンソールで新しいジョブまたはキュー内のジョブからジョブ記述ファイルを作成するには、[新しいジョブ] ダイアログ ボックスまたは [ジョブの表示] ダイアログ ボックスで、[ジョブに名前を付けて保存] をクリックします。

なし

追加の配置ファイル

プロジェクトとその依存要素で必要なファイルとディレクトリ、および配置ディレクトリにコピーされるファイルとディレクトリを指定します。

なし

スケジューラーのタイムアウト (ミリ秒)

デバッガーがヘッド ノードとの通信を試行する時間の長さ (ミリ秒単位) を指定します。この時間が経過すると、ヘッド ノードは有効とは見なされなくなります。

5000 ミリ秒

CRT の配置

Visual Studio でアプリケーションと共に C ランタイム (CRT) アセンブリが配置されるようにするかどうかを指定します。

[はい] を指定すると、CRT アセンブリはアプリケーションと共に配置されます。

[いいえ] を指定すると、CRT アセンブリはアプリケーションと共に配置されません。

使用しているマルチスレッド デバッグ ダイナミック リンク ライブラリ (DLL) が静的にリンクされている場合は、CRT ファイルを配置する必要はありません。使用しているマルチスレッド デバッグ DLL が動的にリンクされている場合は、CRT ファイルを配置する必要があります。

はい

配置のクリーンアップ

デバッグ後に Visual Studio によって配置ディレクトリが削除されるようにするかどうかを指定します。

[はい] を指定すると、デバッガーが停止するときに、配置ディレクトリと共有リソースが削除されます。

Dd560807.note(ja-jp,VS.100).gifメモ :
Visual Studio 以外によって格納されたファイルが配置ディレクトリに存在する場合、配置ディレクトリは削除されません。たとえば、アプリケーションにより出力が配置ディレクトリに生成される場合は、ポストデバッグ スクリプトを使用してこのディレクトリを削除する必要があります。

[いいえ] を指定すると、配置ディレクトリは削除されません。

はい

プリデバッグ スクリプト

デバッグ前に実行するスクリプトのパスを指定します。このスクリプトは、Visual Studio が実行されているのと同じコンピューターで実行されます。

たとえば、プリデバッグ スクリプトを使用すると、ノード上のアプリケーションのデータをステージングしたり、クラスター上のファイアウォール設定を調整してリモート デバッガーの使用を許可したりできます。

なし

プリデバッグ スクリプトの引数

プリデバッグ スクリプトに渡される引数文字列を指定します。

なし

ポストデバッグ スクリプト

デバッグの終了後に実行するスクリプトのパスを指定します。

たとえば、ポストデバッグ スクリプトを使用すると、ステージングされたデータやアプリケーションによって作成された出力ファイルをクリーンアップしたり、クラスター上のファイアウォール設定を調整してデバッグ セッション後のリモート デバッガーの使用を禁止したりできます。

なし

ポストデバッグ スクリプトの引数

ポストデバッグ スクリプトに渡される引数文字列を指定します。

なし

特定ノードの選択と -hosts パラメーター

MPI クラスター デバッガーを構成する際は、使用するクラスターと、起動するプロセスの数を指定する必要があります。デバッグ セッションに使用する特定のノードを選択することもできます (省略可能)。

MPI クラスター デバッガーは、次の両方の条件が満たされる場合、-hosts パラメーターを MPIexec コマンドで使用してプロセスを配置します。

  1. デバッグ セッションに使用する特定のノードを選択している。

  2. 選択したプロセスの数が要求したノード上のリソースの数より少ない。

特定のノードを要求した場合に、要求したノード上の合計リソース数が、指定したプロセスの数より多い場合、デバッガーは-hosts パラメーターを使用してプロセスを配置します。たとえば、それぞれ 4 つのコアを備えた 2 つのノード (NODE01 および NODE02) を選択して、6 つのプロセスを起動することを指定した場合は、デバッガーは -hosts 2 NODE01 4 NODE2 2 という引数を MPIexec.exe に渡します。

Dd560807.note(ja-jp,VS.100).gifメモ :
MPI クラスター デバッガーが-hosts パラメーターを使用してプロセスを配置する場合、次のどちらかの条件が満たされる場合はランタイム エラーが発生します。

  • 指定した MPI スタックが-hosts パラメーターをサポートしていない。

  • -hosts パラメーターを [追加の MPIExec 引数] プロパティで指定した。

関連項目

概念

方法 : MPI クラスター デバッガーの構成と起動
チュートリアル : Visual Studio 2010 での MPI クラスター デバッガーの起動
HPC クラスター上での MPI アプリケーションのデバッグ

その他の技術情報

mpiexec Command Reference