HPC クラスターで 1 つ以上のメッセージ パッシング インターフェイス (MPI) アプリケーションを起動します。
このコマンドを使用する方法の例については、例を参照してください。
構文
mpiexec [/genv <env_var_name> <env_var_value>]
[/gpath <path1>[;<path2>...]] [/gwdir <working_dir>] [/ghost <host_name>]
[/gmachinefile <file_name>] [/genvlist <env_var1>[,<env_var2>...]]
[/cores <num>] [/affinity] [/affinity_layout <algorithm>[:<target>]] [/exitcodes] [/priority {0|1|2|3|4}]
[/port <port>] [/timeout <seconds>] [/job <string>] [/lines]
[/t [(<filter1>,<filter2>...)]] [/tracefile <file_name>]
[/tracemax <max_size>] [/debug [{0|1|2|3}]] [/logfile <log_file_name>] [/np {<num>|*}]
[/machinefile <file_name>] [/host <host_name>]
[/hosts <num> <host1> [num1] <host2> [num2] ... <hostn> [numn]]
[/wdir <working_dir>] [/env <env_var_name> <env_var_value>]
[/path <path1>[;<path2>...]] <application1> [<application1_paramteters>]
[: [<section2_parameters>] <application2> [<application2_parameters>]
[: [<section3_ parameters>] <application3> [<application3_parameters>]...]]
mpiexec /configfile <file_name>
mpiexec {/? | /help | /?? | /help2 | /??? | /help3}
パラメーター
パラメーター | 説明 |
---|---|
/genv <env_var_name><env_var_value> | mpiexec コマンドのすべてのセクションのアプリケーションに対して、環境変数を指定した値に設定します。 /env パラメーターを使用して特定のセクションの環境変数の値を指定し、/genv パラメーターを使用してグローバルに指定した場合、/env パラメーターがセクションに指定する設定は、/genv パラメーターが指定する設定よりも優先されます。 複数の環境変数の値を指定するには、環境変数ごとに 1 回ずつ 、/genv パラメーターを複数回指定します。 /genv パラメーターで設定できる組み込み環境変数の一覧については、「MPICH 環境変数」を参照してください。 |
/gpath <path1>[;<path2>...] | mpiexec コマンドのすべてのセクションで、アプリケーションのターゲット ノードで検索する 1 つ以上のパスを指定します。 複数のパスを指定するには、パスをセミコロンで区切ります。 パスにスペースが含まれている場合は、パスを引用符 (") で囲みます。 このパラメーターに指定した値は、PATH 環境変数に置き換えられず、追加されません。 /path パラメーターを使用して特定のセクションの検索パスを指定し、/gpath パラメーターを使用してグローバルに検索パスを指定した場合、/path パラメーターがセクションに対して指定する設定は、/gpath パラメーターが指定する設定よりも優先されます。 |
/gwdir <working_dir> | mpiexec コマンドのすべてのセクションでアプリケーションに使用する作業ディレクトリを指定します。 このディレクトリには、ローカル パスまたはリモート パスを指定できます。 このパラメーターを /gdir として指定することもできます。 /wdir パラメーターを使用して特定のセクションの作業ディレクトリを指定し、/gwdir パラメーターを使用してグローバルに指定した場合、/wdir パラメーターがセクションに対して指定する設定は、/gwdir パラメーターが指定する設定をオーバーライドします。 |
/ghost <host_name> | 指定したノードの mpiexec コマンドのすべてのセクションでアプリケーションを起動します。 /np * パラメーターも指定した場合、または /np パラメーターを指定しない場合、アプリケーションはそのノードで 1 つのコアを使用します。 mpiexec コマンドを実行するタスクが、/ghost パラメーターが指定するノードに割り当てられない場合、コマンドは失敗します。 タスクがノードに確実に割り当てられるように、タスクのリソースとノードを指定します。 数値で /ghosts、/gmachinefile、または /np パラメーターを指定した場合は、/ghost パラメーターも指定できません。 /host パラメーターを使用して mpiexecコマンドの特定のセクションにホストを指定し、/ghost パラメーターを使用してグローバルにホストを指定した場合、/host パラメーターがセクションに指定する設定は、/ghost パラメーターが指定する設定よりも優先されます。 |
/gmachinefile <file_name> | 指定したファイルから、 mpiexec コマンドのすべてのセクションでアプリケーションを実行するノードの一覧を読み取ります。 ファイルの形式は、1 行に 1 つのノード名で、必要に応じて、そのノードでのアプリケーションの実行が許可されているコアの数です。 コメントの先頭に番号記号 (#) を含めることで、ファイル内の行または行の一部をコメントとして指定できます。 その後、コメントは行の末尾まで拡張されます。 ファイル内の空の行は無視されます。 ファイルは、 mpiexec コマンドを実行するタスクに割り当てられている各ノードに存在する必要があります。 mpiexec コマンドを実行するタスクが、/gmachinefile パラメーターが指定するファイルにリストされているノードのいずれかに割り当てられない場合、コマンドは失敗します。 タスクがファイル内のすべてのノードに確実に割り当てられるように、タスクのリソースとノードを指定します。 /np * オプションも指定した場合、または /np オプションを指定しない場合、アプリケーションはファイル内のすべてのノードに対して指定されたコア数の合計を使用します。 ファイル内のすべてのノードに対して指定されたコア数の合計より小さい /np オプションの値を指定した場合、アプリケーションは /np オプションで指定されたコアの合計数のみを実行します。 ノード上のコアは、ファイルがノードを指定する順序で使用されます。 /ghost パラメーターを指定した場合は、/gmachinefile パラメーターも指定できません。 /machinefile パラメーターを使用して mpiexec コマンドの特定のセクションに対してアプリケーションを実行するノードを一覧表示するファイルを指定し、/gmachinefile パラメーターを使用して mpiexec コマンドのすべてのセクションのアプリケーションに対してグローバルに指定した場合、/machinefile パラメーターがセクションに指定する設定は、/gmachinefile パラメーターが指定する設定をオーバーライドします。 |
/configfile <file_name> | 指定したファイルから mpiexec コマンド ラインの残りのパラメーターを読み取ります。 ファイル内の行は、次の形式のコマンド ライン セクションです。 [<section_parameters>] <アプリケーション> [<application_parameters>] 最後の行を除くコマンドの各行を円記号 (\) で終えることで、複数の行にまたがるコマンドをファイルに含めることができます。 コメントの先頭に番号記号 (#) を含めることで、ファイル内の行または行の一部をコメントとして指定できます。 その後、コメントは行の末尾まで拡張されます。 ファイル内の空の行は無視されます。 ジョブでタスクとして mpiexec コマンドを実行する場合は、タスクに割り当てられている各ノードにファイルが存在している必要があります。 clusrun コマンドを使用して mpiexec コマンドを実行する場合は、clusrun が mpiexec を実行する各ノードにファイルが存在している必要があります。 |
/np {<num>|*} | /np パラメーターとして mpiexec コマンドの同じセクションで指定されたアプリケーションを実行するプロセスの数を指定します。 アスタリスク (*) を指定した場合、MPI アプリケーションでは、複数のセクションが指定されていない限り、使用可能なすべてのコアが使用されます。その場合、MPI アプリケーションは残りの使用可能なコアを使用します。 /np パラメーターがない場合は、/np * と同じです。 このパラメーターを /n として指定することもできます。 /hosts パラメーターを指定した場合は、/np または /n パラメーターも指定できません。 |
/machinefile <file_name> | 指定したファイルから、/machinefile パラメーターと同じ mpiexec コマンドのセクションで指定されたアプリケーションを実行するノードの一覧を読み取ります。 ファイルの形式は、1 行に 1 つのノード名で、必要に応じて、そのノードでのアプリケーションの実行が許可されているコアの数です。 コメントの先頭に番号記号 (#) を含めることで、ファイル内の行または行の一部をコメントとして指定できます。 その後、コメントは行の末尾まで拡張されます。 ファイル内の空の行は無視されます。 ファイルは、 mpiexec コマンドを実行するタスクに割り当てられている各ノードに存在する必要があります。 mpiexec コマンドを実行するタスクが、/machinefile パラメーターが指定するファイルにリストされているノードのいずれかに割り当てられない場合、コマンドは失敗します。 タスクがファイル内のすべてのノードに確実に割り当てられるように、タスクのリソースとノードを指定します。 /np * オプションも指定した場合、または /np オプションを指定しない場合、アプリケーションはファイル内のすべてのノードに対して指定されたコア数の合計を使用します。 ファイル内のすべてのノードに対して指定されたコア数の合計より小さい /np オプションの値を指定した場合、アプリケーションは /np オプションで指定されたコアの合計数のみを実行します。 ノード上のコアは、ファイルがノードを指定する順序で使用されます。 /host または /hosts パラメーターを指定した場合は、/machinefile パラメーターも指定できません。 ファイルを指定すると、 /machinefile パラメーターを使用して mpiexec コマンドの特定のセクションに対してアプリケーションを実行するノードが一覧表示され、/gmachinefile パラメーターを使用して mpiexec コマンドのすべてのセクション内のアプリケーションに対してグローバルに一覧表示されます。/machinefile パラメーターがセクションに指定する設定は、/gmachinefile パラメーターが指定する設定をオーバーライドします。 |
/host <host_name> | 指定したノードの /host パラメーターと同じ mpiexec コマンドのセクションで指定されたアプリケーションを起動します。 /np * パラメーターも指定した場合、または /np パラメーターを指定しない場合、アプリケーションはそのノードで 1 つのコアを使用します。 mpiexec コマンドを実行するタスクが、/host パラメーターが指定するノードに割り当てられない場合、コマンドは失敗します。 タスクがノードに確実に割り当てられるように、タスクのリソースとノードを指定します。 数値で /hosts、/machinefile、または /np パラメーターを指定した場合は、/host パラメーターも指定できません。 /host パラメーターを使用して mpiexec コマンドの特定のセクションにホストを指定し、/ghost パラメーターを使用してグローバルにホストを指定した場合、/host パラメーターがセクションに指定する設定は、/ghost パラメーターが指定する設定よりも優先されます。 |
/hosts <num><host1> [num1] <host2> [num2] ... <hostn> [numn] | /hosts パラメーターとして mpiexec コマンドの同じセクションで指定されたアプリケーションを実行するノードの数を指定し、各ノードの名前を一覧表示し、必要に応じてそのノードで実行するプロセスの数を一覧表示します。 mpiexec コマンドを実行するタスクが、/hosts パラメーターで指定されているノードのいずれかに割り当てられない場合、コマンドは失敗します。 タスクがリスト内のすべてのノードに確実に割り当てられるように、タスクのリソースとノードを指定します。 /host または /machinefile パラメーターを指定した場合は、/hosts パラメーターも指定できません。 |
/cores <num> | 各ノードで使用するコア数を指定します。 このオプションは、 /hosts パラメーターまたは /machinefile パラメーターで指定されたファイル内の各ノードに指定されているコアの数をオーバーライドします。 このオーバーライドは、 mpiexec コマンドのすべてのセクションに適用されます。 このパラメーターを /c として指定することもできます。 |
/affinity | mpiexec コマンドが開始する各プロセスのアフィニティ マスクを 1 つのコアに設定します。 この設定は、ジョブがノードのみを使用している場合にのみ使用する必要があります。 ジョブがノードを共有している (排他的に実行されていない) 場合、このアフィニティ設定メカニズムは、ノード上のすべてのジョブに同じアフィニティ マスクを割り当てる可能性があります。 ノードを共有する場合は、アフィニティを明示的に設定するか、ジョブ スケジューラでアフィニティを管理できるようにする必要があります。 詳細については、「 ジョブ スケジューラのアフィニティ設定」を参照してください。 アフィニティの詳細については、「 並列アプリケーション用の Windows HPC クラスターのパフォーマンス チューニング」を参照してください。 |
/affinity_layout | ランク プロセスをコンピューティング コアに分散するために使用されるアルゴリズムを指定します。 異なるアルゴリズムを指定すると、各ランク プロセスが実行されるコアが変更されます。 ターゲットを変更すると、ランク プロセスごとにより大きなコアユニットを割り当てることができます。 ターゲットは通常、マルチスレッド アプリケーションにのみ使用されます。 アルゴリズムの値を次に示します。 Disabled = 0 - どのプロセスにもアフィニティを割り当てません。 スプレッド = 1 - 可能な限りプロセスを分散します (既定値)。 シーケンシャル = 2 - コアごとにプロセスを順番に分散します。 Balanced = 3 - 使用可能な NUMA ノードにプロセスを分散します。 ターゲットの値を次に示します。 L - 各プロセスを論理コアに割り当てます。 P - 各プロセスを物理コアに割り当てます。 N - 各プロセスを NUMA ノードに割り当てます。 このパラメーターは HPC Pack 2012 で導入され、以前のバージョンではサポートされていません。 |
/wdir <working_dir> | /wdir パラメーターとして mpiexec コマンドの同じセクションで指定されたアプリケーションに使用する作業ディレクトリを指定します。 このディレクトリには、ローカル パスまたはリモート パスを指定できます。 このパラメーターを /dir として指定することもできます。 /wdir パラメーターを使用して特定のセクションの作業ディレクトリを指定し、/gwdir パラメーターを使用してグローバルに指定した場合、/wdir パラメーターがセクションに対して指定する設定は、/gwdir パラメーターが指定する設定をオーバーライドします。 |
/env <env_var_name><env_var_value> | /env パラメーターとして mpiexec コマンドの同じセクションで指定されたアプリケーションの環境変数を設定します。 /env パラメーターを使用して特定のセクションの環境変数の値を指定し、/genv パラメーターを使用してグローバルに指定した場合、/env パラメーターがセクションに指定する設定は、/genv パラメーターが指定する設定よりも優先されます。 複数の環境変数の値を指定するには、環境変数ごとに 1 回ずつ /env パラメーターを複数回指定します。 /env パラメーターで設定できる組み込み環境変数の一覧については、「MPICH 環境変数」を参照してください。 |
/genvlist <env_var1>[,<env_var2>...] | 指定した環境変数の値を、 mpiexec が開始するプロセスに渡します。 リストは、環境変数名のコンマ区切りのリストです。 /genvlist パラメーターで使用できる組み込み環境変数の一覧については、「MPICH 環境変数」を参照してください。 |
/exitcodes | mpiexec が実行の終了時に標準出力の一部として開始したプロセスの終了コードを出力します。 |
/priority {0|1|2|3|4} | mpiexec が開始するプロセスの優先順位を設定します。 既定の優先度は 2 です。 使用できる値を次に示します。 0 - アイドル 1 - 通常より低い 2 - 標準 3 - 通常より上 4 - 高 |
/port port <> | smpd.exe プロセスがリッスンするポートを指定します。 このパラメーターを /p として指定することもできます。 |
/path <path1>[;<path2>...] | /path パラメーターとして mpiexec コマンドの同じセクションで指定されているアプリケーションのターゲット ノードで検索する 1 つ以上のパスを指定します。 複数のパスを指定するには、パスをセミコロンで区切ります。 パスにスペースが含まれている場合は、パスを引用符 (") で囲みます。 このパラメーターに指定した値は置き換えられず、PATH 環境変数に追加されません。 /path パラメーターを使用して特定のセクションの検索パスを指定し、/gpath パラメーターを使用してグローバルに検索パスを指定した場合、/path パラメーターがセクションに対して指定する設定は、/gpath パラメーターが指定する設定よりも優先されます。 |
/timeout <秒> | mpiexec コマンドを実行するジョブがタイムアウトになるまでに実行する時間を秒単位で設定します。 |
/job <string> | MPI ジョブを、Windows HPC ジョブ スケジューラ サービスによって作成されたジョブに関連付けます。 この文字列は、HPC Node Manager サービスによって mpiexec に渡されます。 |
/行 | mpiexec コマンドの出力の各行に、行を生成したプロセスのランクをプレフィックスとして付けます。 このパラメーターを /l として指定することもできます。 |
/trace [(<filter1,filter2>><...)] | アプリケーションのインターフェイス (MS-MPI) イベントを渡す Microsoft-Message トレースします。 フィルターを指定しない場合、 mpiexec コマンドはアプリケーションのすべての MS-MPI イベントをトレースします。 必要に応じて、トレース フィルターを指定して、目的のトレース イベントのみを有効にすることができます。 かっこで囲まれたコンマ区切りのリストを使用して、イベント フィルター名または同等の 16 進数の値を一覧表示します。 大事な: この種類のトレースは、非常に単純なテスト アプリケーションに役立ちますが、ほとんどの実用的なアプリケーションでは、このメソッドは非常に役に立たないような大きなトレース ファイルを生成します。 トレースを制御し、管理可能なトレース ファイルを作成するには、Xperf や Logman などの Windows イベント トレーシング (ETW) ツールを使用して、必要な部分についてのみトレースを有効にします。 既定では、トレース ログは各ノードのユーザー プロファイルのディレクトリに書き込まれます。 /tracefile パラメーターを使用して、代替トレース ファイルを指定します。 フィルターの一覧に含めることができるイベント フィルター名と同等の 16 進値を次に示します。 all (0xffffffff) - すべての API イベントと通信イベント api (0x00007fff) - すべての API イベント pt2pt (0x00000001) - ポイントツーポイント API ポーリング (0x00000002) - ポイントツーポイントポーリング API (MPI_IprobeやMPI_TestXXXなど) coll (0x00000004) - 集合 API rma (0x00000008) - 片側 API comm (0x00000010) - 通信 API errh (0x00000020) - エラー ハンドラー API group (0x00000040) - グループ API attr (0x00000080) - 属性 API dtype (0x00000100) - データ型 API io (0x00000200) - 入出力 API topo (0x00000400) - トポロジ API spawn (0x00000800) - 動的プロセス API init (0x00001000) - 初期化 API info (0x00002000) - 情報 API misc (0x00004000) - その他の API interconn (0x000f8000) - すべての相互接続通信 icsock (0x00008000) - ソケット相互接続通信 icshm (0x00010000) - 共有メモリ相互接続通信 icnd (0x00020000) - NetworkDirect 相互接続通信 このパラメーターを /t として指定することもできます。 このパラメーターは、Service Pack 3 (SP3) を使用した HPC Pack 2008 R2 の時点では非推奨です。 |
/tracefile <file_name> | トレース ログに使用するファイルの名前 (パスを含む) を指定します。 既定のファイルは %USERPROFILE%\mpi_trace_job_identifier です。task_identifier。subtask_identifier.etl。 このパラメーターを /tf として指定することもできます。 このパラメーターは、Service Pack 3 (SP3) を使用した HPC Pack 2008 R2 の時点では非推奨です。 |
/tracemax <max_size> | トレース ログ ファイルの最大サイズをメガバイト単位で指定します。 トレース ファイルに指定するドライブには、少なくとも max_size MB の空き領域が必要です。 バイナリ トレース データは循環バッファーを使用して書き込まれるので、データがファイルの最大サイズを超えると、トレース データはファイルの先頭から上書きされます。 その結果、トレース ログ ファイルには常に、MPI ジョブからの最新の max_size MB のトレース データが含まれます。 トレース ログ ファイル内の各バイナリ レコードにはタイムスタンプがあるため、ログ ファイル ビューアーは、トレース データが上書きされた場合の折り返しの原因に関係なく、情報を時系列で表示できます。 このパラメーターの既定値は 10240 です。 無制限のサイズのトレース ログ ファイルを作成できるようにするには、 0 を指定します。 このパラメーターを /tm として指定することもできます。 このパラメーターは HPC Pack 2008 R2 で導入されました。 SERVICE Pack 3 (SP3) を使用した HPC Pack 2008 R2 の時点では非推奨です。 |
/debug [{0|1|2|3}] | 指定したレベルのデバッグ情報を標準エラーに出力します。 値を指定せずに /debug オプションを指定した場合、 mpiexec は 値 2 として指定したかのように動作します。 可能なデバッグ レベルを次に示します。 0 - デバッグ情報は表示されません。 1 - エラーに関する情報が表示されます。 2 - 広範なデバッグ情報が表示されます。 3 - エラーと広範なデバッグ情報の両方が表示されます。 このパラメーターを /d として指定することもできます。 |
/logfile <log_file_name> | ログ ファイルに使用するファイルの名前 (パスを含む) を指定します。 |
<セクションN_parameters> | mpiexec コマンドのセクションにのみ適用されるパラメーターを指定し、次のパラメーターを含めます。 - /Env - /パス - /wdir - /ホスト - /ホスト - /machinefile - /Np [構文] セクションでは、最初のセクションのこれらのパラメーターが明示的に一覧表示され、セクションN_parameters> プレースホルダーが追加のセクションに使用<されます。 mpiexec コマンドのセクションについては、アプリケーション N [<applicationN>_parameters>] パラメーターの<説明を参照してください。 |
<applicationN> [<applicationN_parameters>] | 開始する MPI アプリケーションと、それらのアプリケーションに必要なパラメーターを指定します。 複数のアプリケーションを指定するには、 mpiexec コマンドに複数のコロン区切りセクションを含めます。 複数のアプリケーションを指定する複数のセクションを含める場合、アプリケーションには、アプリケーションを実行する必要があるランクと、それらのランクでアプリケーションが機能するロールに互換性のある要件が必要です。 たとえば、2 つのセクションを使用して、ランク 0 で実行する必要があるマスター プロセスと、ランク 0 で実行する必要のない下位プロセスを指定できます。 |
/pwd <string> | 指定されたパスワードを使用してユーザーを認証します。 このオプションは、MS-MPI 起動サービスが使用されている場合にのみ有効です。 |
/saveCreds | 資格情報を保存するように起動サービスに通知します。 このオプションは、/pwd が指定されている場合にのみ有効です。 /saveCreds の呼び出しが成功した後は、パスワードが変更されない限り、パスワードに /pwd を指定する必要はありません。 |
/unicode | mpiexec 出力を Unicode ストリームに切り替えます。 これは 、mpiexec の出力にのみ影響します。 Unicode パスと実行可能ファイルは、このオプションの有無にかかわらずサポートされます。 |
/? | コマンド プロンプトで mpiexec コマンドの一般的に使用されるパラメーターのヘルプを表示します。 このパラメーターを /help として指定することもできます。 |
/?? | コマンド プロンプトで 、mpiexec コマンドのすべてのパラメーターと mpiexec コマンドの例に関するヘルプの説明を表示します。 このパラメーターを /help2 として指定することもできます。 |
/??? | コマンド プロンプトで mpiexec コマンドで使用できる環境変数のヘルプを表示します。 このパラメーターを /help3 として指定することもできます。 |
注釈
ほとんどの場合、 mpiexec コマンドをジョブのタスクで指定して実行する必要があります。 アプリケーションで必要なノードが 1 つだけで、/host、/hosts、または /machinefile パラメーターを使用してノードを指定する代わりに、ローカル コンピューターで実行する場合は、コマンド プロンプトで mpiexec を直接実行できます。
clusrun コマンドを使用して mpiexec コマンドを実行した場合、mpiexec コマンドは、clusrun が mpiexec コマンドを実行する各ノードのコマンド プロンプトでコマンドをローカルに指定したかのように動作します。 この場合も、アプリケーションで必要なノードが 1 つだけの場合、および mpiexec コマンドのパラメーターを使用して他のノードを指定しない場合にのみ、 mpiexec コマンドを実行できます。
例
4 つのコアを持つローカル ホストで 4 つの application1 プロセスを実行するには、次のいずれかのコマンドを使用します。
mpiexec application1
mpiexec /np * application1
1 つのマスター プロセスと 4 つのコアを持つ 3 つの下位プロセスをローカル ホストで実行するには、次のコマンドを使用します。2 番目のセクションに /np がない場合は 、/np *:
mpiexec /np 1 master : subordinate
1 つのマスター プロセスと 31 個の下位プロセスを、それぞれ 8 つのコアを持つ 4 つのホストを一覧表示する myhosts.txt ファイルに一覧表示されているホストで実行するには、次のコマンドを使用します。
mpiexec /gmachinefile myhosts.txt /np 1 master : subordinate
2 つの application1 プロセスが行っているポイント対ポイントおよび集合 MPI 呼び出しと MPI によって生成される相互接続通信をトレースし、トレース ファイルの最大サイズを 20,480 メガバイトに制限するには、次のコマンドを使用します。
mpiexec /trace (pt2pt,coll,interconn) /tracemax 20480 /np 2 application1
myhosts.txt ファイルに一覧表示されているホストで application1 プロセスを実行し、標準出力に接続テーブルを含めるには、次のコマンドを使用します。
mpiexec /machinefile myhosts.txt /env MPICH_CONNECTIVITY_TABLE 1 application1