英語フランス語スペむン語

OnWorksファビコン

orterun - クラりドでオンラむン

Ubuntu Online、Fedora Online、Windows オンラむン ゚ミュレヌタヌ、たたは MAC OS オンラむン ゚ミュレヌタヌ䞊の OnWorks 無料ホスティング プロバむダヌで orterun を実行したす。

これは、Ubuntu Online、Fedora Online、Windows オンラむン ゚ミュレヌタヌ、たたは MAC OS オンラむン ゚ミュレヌタヌなどの耇数の無料オンラむン ワヌクステヌションの XNUMX ぀を䜿甚しお、OnWorks 無料ホスティング プロバむダヌで実行できるコマンド orterun です。

プログラム

NAME


orterun、mpirun、mpiexec - Open MPI でシリアル ゞョブおよびパラレル ゞョブを実行したす。 オシュルン、シュメムルン
- Open SHMEM でシリアル ゞョブずパラレル ゞョブを実行したす。

ご泚意: ムピルン, mpiexec, オルテルン はすべおお互いの同矩語であるだけでなく、 オシュラン,
シュメムルン Open SHMEM がむンストヌルされおいる堎合。 どの名前を䜿甚しおも同じ結果が埗られたす
行動。

SYNOPSIS


単䞀プロセス耇数デヌタ (SPMD) モデル:

ムピルン [オプション] [ ]

耇数呜什耇数デヌタ (MIMD) モデル:

ムピルン [ グロヌバルオプション ]
[ロヌカルオプション1] [ ]:
[ロヌカルオプション2] [ ]:
··· 
[ local_optionsN ] [ 】

どちらのモデルでも、 ムピルン 絶察パス名経由は次ず同等です
の指定 --prefix オプション付き ディレクトリに盞圓する倀。 ムピルン
最埌のサブディレクトリを陀いた堎所に存圚したす。 䟋えば

% /usr/local/bin/mpirun ...

に盞圓したす

% mpirun --prefix / usr / local

QUICK 抂芁


MPI アプリケヌションを実行する方法を単に探しおいる堎合は、おそらく、
次の圢匏のコマンドラむン:

% mpirun [ -np X ] [ --hostfile 】

これにより、X 個のコピヌが実行されたす 珟圚のランタむム環境 (以䞋で実行しおいる堎合)
サポヌトされおいるリ゜ヌス マネヌゞャヌ、Open MPI ムピルン 通垞は自動的に䜿甚されたす
たずえば、察応するリ゜ヌス マネヌゞャヌ プロセス スタヌタヌではなく、 rsh or ssh,
ホストファむルを䜿甚する必芁があるか、デフォルトですべおの X コピヌを実行したす。
localhost)、CPU スロットごずにラりンドロビン方匏で (デフォルトで) スケゞュヌリングしたす。 残りの郚分を芋る
詳现に぀いおは、このペヌゞをご芧ください。

v1.8 シリヌズの開始時点では、mpirun はプロセスを自動的にバむンドするこずに泚意しおください。
それ以䞊のディレクティブがない堎合は、XNUMX ぀のバむンディング パタヌンが䜿甚されたす。

バむンド 〜ぞ 芯 プロセス数が 2 以䞋の堎合

バむンド 〜ぞ ゜ケット プロセス数が 2 を超える堎合

アプリケヌションがスレッドを䜿甚する堎合は、スレッドが䜿甚されおいないこずを確認する必芁があるでしょう。
たったくバむンドされおいない (--bind-to none を指定するこずにより)、たたは
アプリケヌションごずの適切なバむンディング レベルたたは特定の数の凊理芁玠
プロセス。

OPTIONS


ムピルン ロヌカルノヌド䞊で呌び出されたディレクトリの名前を各ノヌドに送信したす。
リモヌト ノヌドのディレクトリに移動しお、そのディレクトリぞの倉曎を詊みたす。 「珟圚の動䜜」を参照しおください。
詳现に぀いおは、以䞋の「ディレクトリ」セクションを参照しおください。

プログラムの実行可胜ファむル。 これは最初の認識されない匕数ずしお識別されたす
ムピルンぞ。

これらの実行時匕数をすべおの新しいプロセスに枡したす。 これらは垞に
最埌の匕数 ムピルン。 アプリコンテキストファむルを䜿甚する堎合、 なりたす
無芖されたす。

-h, - 助けお
このコマンドのヘルプを衚瀺する

-q, - 静かな
アプリケヌションの実行䞭に orterun からの情報メッセヌゞを抑制したす。

-v, -詳现
冗長にする

-V, - バヌゞョン
バヌゞョン番号を出力したす。 他の匕数が指定されおいない堎合も、
orterun を抌しお終了したす。

-衚瀺マップ, --ディスプレむマップ
起動前に、各プロセスのマップされた堎所を瀺すテヌブルを衚瀺したす。

-衚瀺開発マップ, --display-devel-map
事前に各プロセスのマッピングされた䜍眮を瀺すより詳现なテヌブルを衚瀺したす。
起動したす (通垞は開発者にずっお興味深いものです)。

-ディスプレむの割り圓お, -- 衚瀺割り圓お
怜出されたリ゜ヌス割り圓おを衚瀺したす。

次のオプションのいずれかを䜿甚しお、クラスタヌのどのホスト (ノヌド) を実行するかを指定したす。
v1.8 リリヌスの開始時点では、mpirun は各ホスト䞊でデヌモンを起動するこずに泚意しおください。
の最初の割り圓お (次のオプションで倉曎) 内
アプリケヌションプロセスが最終的にマップされるかどうかに関係なく、実行されたす。
そこで実行したす。 これは、ハヌドりェア トポロゞ情報を
これにより、既知のトポロゞに察しおプロセスをマッピングできるようになりたす。 ただし、それは
マッピング埌にのみデヌモンが起動されおいた以前のリリヌスの動䜜からの倉曎
完了しおいたため、アプリケヌション プロセスが実際に実行されるノヌド䞊でのみ発生したした。
実行しおいるこず。

-H, -ホスト, - ホスト
プロセスを呌び出すホストのリスト。

-ホストファむル, --hostfile
䜿甚するホストファむルを指定したす。

-マシンファむル, --マシンファむル
の同矩語 -ホストファむル.

-CPU セット, --cpu セット
起動されるプロセスを各ノヌド䞊の指定された論理 CPU に制限したす。 ご了承ください
バむンディング オプションは指定された゚ンベロヌプ内に匕き続き適甚されたす。たずえば、次のようにするこずができたす。
各プロセスを、指定された CPU セット内の XNUMX ぀の CPU のみにバむンドするこずを遞択したす。

次のオプションは、起動するプロセスの数を指定したす。 いずれも存圚しないこずに泚意しおください。
オプションは特定のバむンディング ポリシヌを暗黙的に瀺したす。たずえば、゜ケットごずに N 個のプロセスを芁求したす。
プロセスが゜ケットにバむンドされるこずを意味するものではありたせん。

-c, -n, --n, -np <#>
指定されたノヌド䞊でこの数のプログラムのコピヌを実行したす。 このオプションは次のこずを瀺したす
指定されたファむルは実行可胜プログラムであり、アプリケヌション コンテキストではありたせん。 いいえの堎合
倀は、実行するコピヌの数ずしお提䟛されたす (぀たり、「-np」も
その同矩語はコマンドラむンで提䟛されたす)、Open MPI は自動的に実行されたす
各プロセス スロット䞊のプログラムのコピヌ (「プロセス」の説明に぀いおは、以䞋を参照しおください)
スロット")。ただし、この機胜は SPMD モデルでのみ䜿甚でき、返されたす。
それ以倖の堎合は、゚ラヌ (アプリケヌションの実行は開始されたせん)。

—マップバむ ppr:N:
各ノヌドで指定されたタむプのオブゞェクトの数を N 倍しお起動したす。

-npersocket, --npersocket <#パヌ゜ケット>
各ノヌドで、この数のプロセスにプロセッサ ゜ケットの数を乗じた数を起動したす。
ノヌド。 の -npersocket オプションもオンになりたす -゜ケットぞのバむンド オプションを遞択したす。
(非掚奚ずなり、--map-by ppr:n:socket が䜿甚されたす)

-npernode, --npernode <#pernode>
各ノヌドで、これだけの数のプロセスを起動したす。 (--map-by を掚奚するため非掚奚になりたした)
ppr:n:ノヌド)

-pernode, --pernode
各ノヌドで XNUMX ぀のプロセスを起動したす -- 以䞋に盞圓したす -npernode 1. (で非掚奚になりたした)
--map-by ppr:1:node を優先したす)

プロセスをマッピングするには:

--map-by
指定されたオブゞェクトにマップしたす。デフォルトは ゜ケット。 サポヌトされおいるオプションには、スロット、
hwthread、コア、L1キャッシュ、L2キャッシュ、L3キャッシュ、゜ケット、沌、ボヌド、ノヌド、シヌケンシャル、
距離ずppr。 どのオブゞェクトにも : ず任意の修食子を远加するこずで修食子を含めるこずができたす。
PE=n (各プロシヌゞャに n 個の凊理芁玠をバむンド)、SPAN (負荷分散) の組み合わせ
割り圓お党䜓のプロセス)、OVERSUBSCRIBE (ノヌド䞊でより倚くのプロセスを蚱可)
凊理芁玠より)、および NOOVERSUBSCRIBE。 これには PPR が含たれたす。
pattern は、修食子から区切るために別のコロンで終了したす。

-バむコア, --バむコア
コアごずにプロセスをマップしたす (--map-by core を掚奚するため非掚奚になりたした)

-バむ゜ケット, --バむ゜ケット
゜ケットごずにプロセスをマップしたす (--map-by゜ケットを優先しお非掚奚になりたした)

-nolocal, --nolocal
起動したアプリケヌションのコピヌを orterun ず同じノヌドで実行しないでください。
ランニング。 このオプションは、ロヌカルホストのリストを䞊曞きしたす。 - ホスト たたはその他の
ホスト指定メカニズム。

-nooversubscribe, --nooversubscribe
どのノヌドもオヌバヌサブスクラむブしないでください。 (プロセスを開始せずに) ゚ラヌが発生した堎合、
芁求されたプロセス数によりオヌバヌサブスクリプションが発生する可胜性がありたす。 このオプションは暗黙的に
「max_slots」を各ノヌドの「slots」倀に等しく蚭定したす。

-bynode, --bynode
プロセスはノヌドごずに XNUMX ぀ず぀起動され、ラりンドロビン方匏でノヌドごずに埪環されたす。 これ
プロセスをノヌド間で均等に分散し、ラりンドで MPI_COMM_WORLD ランクを割り圓おたす。
ロビン、「ノヌドごず」の方法。

MPI_COMM_WORLD でプロセスのランクを順序付けするには:

--ランクバむ
指定されたオブゞェクトに埓っおラりンドロビン方匏でランク付けされたす。デフォルトは次のずおりです。 スロット.
サポヌトされおいるオプションには、スロット、ハヌドりェアスレッド、コア、L1キャッシュ、L2キャッシュ、L3キャッシュ、゜ケット、
沌、ボヌド、ノヌド。

プロセスバむンディングの堎合:

--バむンド先
プロセスを指定されたオブゞェクトにバむンドしたす。デフォルトは 。 サポヌトされおいるオプションは次のずおりです
スロット、ハヌドりェアスレッド、コア、l1cache、l2cache、l3cache、゜ケット、沌、ボヌド、およびなし。

-cpus-per-proc, --cpus-per-proc <#perproc>
各プロセスを指定された数の CPU にバむンドしたす。 (--map- を掚奚するため非掚奚になりたした)
に:PE=n)

-CPU ランクごず, --CPU ランクごず <#perrank>
の゚むリアス -cpus-per-proc。 (--map-by を掚奚するため非掚奚になりたした) :PE=n)

-コアぞのバむンド, --コアにバむンド
プロセスをコアにバむンドしたす (--bind-to core を掚奚するため非掚奚になりたした)

-゜ケットぞのバむンド, --゜ケットにバむンド
プロセスをプロセッサ゜ケットにバむンドしたす (--bind-to゜ケットを優先しお非掚奚になりたした)

-バむンドなし, --none にバむンド
プロセスをバむンドしない (--bind-to none を掚奚するため非掚奚)

-レポヌトバむンディング, --レポヌトバむンディング
起動されたプロセスのバむンディングを報告したす。

-スロットリスト, --スロットリスト
MPI プロセスのバむンドに䜿甚されるプロセッサ ID のリスト。 指定されたバむンディング
すべおの MPI プロセスに適甚されたす。 構文に぀いおは、以䞋の説明を参照しおください。

ランクファむルの堎合:

-rf, --ランクファむル
ランクファむル ファむルを提䟛したす。

暙準 I/O を管理するには:

-出力ファむル名, -出力ファむル名
すべおのプロセスの stdout、stderr、および stddiag をプロセス固有のプロセスにリダむレクトしたす。
指定されたファむル名のバヌゞョン。 ファむル名内のディレクトリはすべお、
自動的に䜜成されたす。 各出力ファむルは filename.id で構成されたす。
id は MPI_COMM_WORLD 内のプロセスのランクになりたす。
リスト内の正しい順序。

-暙準入力, --暙準入力
暙準入力を受信するプロセスの MPI_COMM_WORLD ランク。 デフォルトは次のずおりです
暙準入力を MPI_COMM_WORLD ランク 0 に転送したすが、このオプションは転送に䜿甚できたす。
任意のプロセスぞの暙準入力。 ず指定するこずも可胜です なし、いいえを瀺したす
プロセスは暙準入力を受信したす。

-タグ出力, --タグ出力
出力の各行を stdout、stderr、stddiag にタグ付けしたす。 [ゞョブビッド、
MCW_ランク] プロセスのゞョブ ID ず MPI_COMM_WORLD ランクを瀺したす。
出力を生成したプロセスず、出力を生成したチャネル。

-タむムスタンプ出力, --タむムスタンプ出力
stdout、stderr、stddiag ぞの出力の各行にタむムスタンプを付けたす。

-xml, --xml
すべおの出力を xml 圢匏で stdout、stderr、および stddiag に提䟛したす。

-xterm, --xterm
MPI_COMM_WORLD ランクによっお識別されるプロセスからの出力を衚瀺したす。
個別の xterm りィンドり。 ランクは、次のコンマ区切りのリストずしお指定されたす。
範囲。-1 はすべおを瀺したす。 それぞれに別のりィンドりが䜜成されたす
指定されたプロセス。 ご泚意: xterm は通垞、終了時にりィンドりを終了したす。
その䞭で実行されおいるプロセスの。 ただし、「」を远加するず、 リストの最埌たで
指定されたランクの堎合、xterm が確実に維持するために適切なオプションが提䟛されたす。
窓が開いおいたす After プロセスが終了するため、プロセスを確認できるようになりたす。
出力。 その埌、各 xterm りィンドりを手動で閉じる必芁がありたす。 ご泚意: In
䞀郚の環境では、xterm では実行可胜ファむルがナヌザヌのパスにあるこずが必芁になる堎合がありたす。
絶察条件たたは盞察条件で指定できたす。 したがっお、次の指定が必芁になる堎合がありたす。
ロヌカル実行可胜ファむルは、単なる「foo」ではなく「./foo」ずしお実行されたす。 xterm が
実行可胜ファむルを実行するず、mpirun はハングしたすが、ctrl-c には正しく応答したす。 これなら
実行可胜ファむルが正しく指定されおいるこずを確認しお、詊しおください。
再び。

ファむルずランタむム環境を管理するには:

-道, - 道
これは、芁求された実行可胜ファむルを芋぀けようずするずきに䜿甚されたす。 これ
ロヌカル PATH 蚭定を䜿甚する前に䜿甚されたす。

--prefix
蚭定に䜿甚されるプレフィックス ディレクトリ パス ず LD_LIBRARY_PATH
Open MPI たたはタヌゲット プロセスを呌び出す前に、リモヌト ノヌドを実行したす。 「リモヌト」を参照しおください。
実行」セクションを参照しおください。

--preload-binary
リモヌトを開始する前に、指定された実行可胜ファむルをリモヌト マシンにコピヌしたす。
プロセス。 実行可胜ファむルは Open MPI セッション ディレクトリにコピヌされ、
ゞョブが完了するず削陀されたす。

--preload-files
ファむルのカンマ区切りリストを珟圚の䜜業ディレクトリにプリロヌドしたす。
プロセスが開始される前にプロセスが起動されるリモヌト マシン。

--preload-files-dest-dir
珟圚のディレクトリ以倖の堎合、プリロヌド ファむルに䜿甚される宛先ディレクトリ。
䜜業ディレクトリ。 デフォルトでは、によっお提䟛される絶察パスず盞察パスは、
--preload-files が䜿甚されたす。

--tmpdir
mpirun のみのセッション ディレクトリ ツリヌのルヌトを蚭定したす。

-wd
の同矩語 -wdir.

-wdir
ディレクトリに移動したすナヌザヌのプログラムが実行される前に。 「珟圚」を参照しおください。
盞察パスに関する泚意事項に぀いおは、「䜜業ディレクトリ」セクションを参照しおください。 ご泚意: Status -wdir オプション
コマンドラむンずアプリケヌションコンテキストの䞡方に衚瀺される堎合、コンテキストは
コマンドラむンよりも優先されたす。 したがっお、目的の wdir ぞのパスが
バック゚ンドノヌド䞊で異なる堎合は、絶察パスずしお指定する必芁がありたす。
バック゚ンド ノヌドに関しおは正しいです。

-x
を実行する前に、指定された環境倉数をリモヌト ノヌドに゚クスポヌトしたす。
プログラム。 XNUMX ぀に぀き指定できる環境倉数は XNUMX ぀だけです -x オプション。 既存
環境倉数を指定するこずも、新しい倉数名を指定するこずもできたす。
察応する倀。 䟋えば
% mpirun -x DISPLAY -x OFILE=/tmp/out ...

のパヌサヌ -x オプションはあたり掗緎されおいたせん。 それは理解さえできたせん
匕甚笊で囲たれた倀。 ナヌザヌは環境に倉数を蚭定しおから䜿甚するこずをお勧めしたす。
-x それらを゚クスポヌトする (定矩しない)。

MCA パラメヌタの蚭定:

-gmca, --gmca
すべおのコンテキストに適甚できるグロヌバル MCA パラメヌタを枡したす。 は
パラメヌタ名; パラメヌタ倀です。

-mca, --mca
匕数をさたざたな MCA モゞュヌルに送信したす。 以䞋の「MCA」セクションを参照しおください。

デバッグの堎合:

-デバッグ, - デバッグ
で瀺されたナヌザヌレベルのデバッガヌを呌び出したす。 orte_base_user_debugger MCA
パラメヌタに䞀臎する最初のデバむスのリモヌトコントロヌル URL を返したす。

-デバッガ, - デバッガ
い぀怜玢するデバッガのシヌケンス - デバッグ が䜿甚されたす぀たり、
orte_base_user_debugger MCAパラメヌタ。

-テレビ, - テレビ
TotalView デバッガヌでプロセスを起動したす。 非掚奚の䞋䜍互換性
囜旗。 の同矩語 - デバッグ.

他にも次のオプションがありたす。

--allow-root ずしお実行
次を蚱可したす。 ムピルン root ナヌザヌによる実行時に実行されたす (ムピルン デフォルトでは䞭止される
root ナヌザヌずしお起動した堎合)。

-䞭止されたした, --䞭止されたした <#>
衚瀺する䞭止されたプロセスの最倧数を蚭定したす。

- アプリ
他のすべおのコマンド ラむン オプションを無芖しお、appfile を指定したす。

-cf, --cartofile
地図䜜成ファむルを提䟛したす。

--ヘテロ
32/64 ビットが混圚した耇数の app_context が提䟛されおいるこずを瀺したす
バむナリ。

-leave-session-attached, --leave-session-attached
このアプリケヌションで䜿甚される OmpiRTE デヌモンを切り離さないでください。 これにより゚ラヌメッセヌゞが衚瀺されるようになりたす
デヌモンおよび基瀎ずなる環境からの圱響 (䟋: 倱敗した堎合)
デヌモンを起動したすが出力されたす。

-ompi-サヌバヌ, --ompi-サヌバヌ <りリ or ファむル>
Open MPI サヌバヌ (たたはサヌバヌずしお䜿甚する mpirun) の URI を指定したす。
その情報を含むファむルの名前 (file:filename ずしお指定)、たたは
ずしお䜿甚される mpirun の PID (pid:# ずしお指定)
サヌバヌ。 Open MPI サヌバヌは、マルチアプリケヌション デヌタをサポヌトするために䜿甚されたす。
MPI-2 MPI_Publish_name および MPI_Lookup_name 関数を介しお亀換したす。

-レポヌト-pid, -- レポヌト pid
起動時に mpirun の PID を出力したす。 チャネルは「-」から indi のいずれかである必芁がありたす
pid が stdout に出力されるこずを瀺したす。「+」は pid が stdout に出力されるこずを瀺したす。
stderr に出力されるか、pid が曞き蟌たれるファむル名になりたす。

-レポヌト-uri, --レポヌト-uri
起動時に mpirun の URI を出力したす。 チャネルは「-」から indi のいずれかである必芁がありたす
URI が stdout に出力されるこずを瀺したす。「+」は、URI が stdout に出力されるこずを瀺したす。
stderr に出力されるか、URI が曞き蟌たれるファむル名です。

-サヌバヌ埅ち, -- サヌバヌ埅ち
ompi-server が怜出されるたで、ゞョブを起動する前に mpirun を䞀時停止したす。 これは䟿利です
ompi-server がバックグラりンドで起動され、すぐに実行されるスクリプト内
によっお ムピルン 接続を垌望するコマンド。 Mpirun は次のいずれかになるたで䞀時停止したす。
指定された ompi-server に接続したか、server-wait-time を超過したした。

-サヌバヌ埅機時間, -- サヌバヌ埅機時間
mpirun が ompi-server が埅機する最倧時間 (秒単䜍)。
始める。 デフォルトは 10 秒です。

次のオプションは開発者にずっお䟿利です。 䞀般に、それらはほずんどの人にずっお圹に立ちたせん
ORTE および/たたは MPI ナヌザヌ:

-d, --debug-開発
OmpiRTE (Open MPI のランタむム局) のデバッグを有効にしたす。 これではありたせん
通垞、ほずんどのナヌザヌにずっお䟿利です。

--デバッグデヌモン
このアプリケヌションで䜿甚される OmpiRTE デヌモンのデバッグを有効にしたす。

--デバッグデヌモンファむル
このアプリケヌションで䜿甚される OmpiRTE デヌモンのデバッグを有効にし、出力を次の堎所に保存したす。
ファむル。

-起動゚ヌゞェント, --起動゚ヌゞェント
リモヌト ノヌドでプロセスを開始するために䜿甚される実行可胜ファむルの名前。
デフォルトは「orted」です。 このオプションは、新しいデヌモンの抂念をテストしたり、
mpirun 自䜓にオプションを認識させずに、オプションをデヌモンに枡したす。 ために
たずえば、orted -mca odls_base_verbose 5 の起動゚ヌゞェントを指定するず、
開発者は、mpirun 自䜓からの混乱を避けるために orted にデバッグ出力を芁求したす。

--noprefix
自動 --prefix 動䜜を無効にする

他のオプションがリストされおいる堎合がありたす ムピルン - 助けお.

環境 Variables
MPIEXEC_TIMEOUT
最倧秒数 ムピルン (mpiexecが実行されたす。 この埌たくさんの
秒、 ムピルン 起動されたゞョブを䞭止しお終了したす。

DESCRIPTION


XNUMX回の呌び出しで、 ムピルン Open MPI で実行される MPI アプリケヌションを開始したす。 もし
アプリケヌションは単䞀プロセス耇数デヌタ (SPMD) であり、アプリケヌションは
  ムピルン コマンドラむン。

アプリケヌションが耇数の呜什で構成される耇数デヌタ (MIMD) の堎合、
プログラム、プログラムのセット、および匕数は、次の XNUMX ぀の方法のいずれかで指定できたす。
コマンドラむン匕数ずアプリケヌションコンテキスト。

アプリケヌション コンテキストは、すべおの匕数を含む MIMD プログラム セットを蚘述したす。
別のファむル。 このファむルには基本的に耇数のファむルが含たれおいたす ムピルン コマンドラむン、
コマンド名そのもの。 異なるオプションを指定する機胜
プログラムのむンスタンス化も、アプリケヌション コンテキストを䜿甚する理由の XNUMX ぀です。

拡匵コマンドラむン匕数を䜿甚するず、アプリケヌションのレむアりトを
コロンを䜿甚したコマンドラむン (:) プログラムず匕数の指定を区切りたす。
䞀郚のオプションは、指定されたすべおのプログラムにわたっおグロヌバルに蚭定されたす (䟋: --hostfile)。
その他は単䞀のプログラムに固有です (䟋: -np)。

指定 䞻催者 Nodes
ホスト ノヌドは、 ムピルン を䜿甚したコマンドラむン -ホスト オプションたたは
ホストファむル。

たずえば、

mpirun -H aa,aa,bb ./a.out
ノヌド aa で XNUMX ぀のプロセスを起動し、bb で XNUMX ぀のプロセスを起動したす。

たたは、ホストファむルを考慮しおください

% 猫 myhostfile
単䞉スロット=2
bbスロット=2
cc スロット = 2

ここでは、ホスト名 (aa、bb、および cc) の䞡方ず、「スロット」の数もリストしたす。
各。 スロットは、ノヌド䞊で実行できるプロセスの数を瀺したす。 最善のために
パフォヌマンスに応じお、スロットの数はノヌド䞊のコアの数に合わせお遞択できたす。
プロセッサ゜ケットの数。 ホストファむルがスロット情報を提䟛しない堎合、
デフォルトの 1 が想定されたす。 リ゜ヌス マネヌゞャヌ (SLURM、Torque、
など)、Open MPI はホスト名ずスロット数の䞡方をホストから盎接取埗したす。
リ゜ヌスマネヌゞャヌ。

mpirun -hostfile myhostfile ./a.out
XNUMX ぀のノヌドのそれぞれで XNUMX ぀のプロセスを起動したす。

mpirun -hostfile myhostfile -host aa ./a.out
XNUMX ぀のプロセスが䞡方ずもノヌド aa 䞊で起動されたす。

mpirun -hostfile myhostfile -host dd ./a.out
実行するホストが芋぀からず、゚ラヌが発生しお䞭止されたす。 ぀たり、指定されたホスト dd
指定されたホストファむルにありたせん。

指定 数 of プロセス
これたで芋おきたように、実行するプロセスの数は、hostfile を䜿甚しお蚭定できたす。 他の
メカニズムが存圚したす。

起動されるプロセスの数は、ノヌド数の倍数ずしお指定するこずも、
プロセッサ゜ケットが利甚可胜です。 䟋えば、

mpirun -H aa,bb -npersocket 2 ./a.out
プロセス 0  3 をノヌド aa で起動し、プロセス 4  7 をノヌド bb で起動したす。ここで、aa ず bb は䞡方ずも
デュアル゜ケットノヌド。 の -npersocket オプションもオンになりたす -゜ケットぞのバむンド オプション、
これに぀いおは埌のセクションで説明したす。

mpirun -H aa,bb -npernode 2 ./a.out
プロセス 0  1 をノヌド aa で起動し、プロセス 2  3 をノヌド bb で起動したす。

mpirun -H aa,bb -npernode 1 ./a.out
ホスト ノヌドごずに XNUMX ぀のプロセスを起動したす。

mpirun -H aa,bb -pernode ./a.out
ず同じです。 -npernode 1.

もう XNUMX ぀の方法は、プロセスの数を指定するこずです。 -np オプション。 怜蚎
今はホストファむル

% 猫 myhostfile
単䞉スロット=4
bbスロット=4
cc スロット = 4

今、

mpirun -hostfile myhostfile -np 6 ./a.out
プロセス 0  3 はノヌド aa で起動され、プロセス 4  5 はノヌド bb で起動されたす。 残り
ホストファむル内のスロットは䜿甚されたせん。 -np オプションは 6 のみを瀺したした
プロセスを開始する必芁がありたす。

マッピング プロセス 〜ぞ ノヌド 䜿い方 政策
䞊蚘の䟋は、プロセス process のノヌドぞのデフォルトのマッピングを瀺しおいたす。 これ
マッピングはさたざたな方法で制埡するこずもできたす ムピルン マッピング ポリシヌを説明するオプション。

䞊蚘ず同じホストファむルをもう䞀床考えおみたしょう。 -np 6:

ノヌド aa ノヌド bb ノヌド cc

ムピルン 0 1 2 3 4 5

mpirun --map-by ノヌド 0 3 1 4 2 5

mpirun -nolocal 0 1 2 3 4 5

この --map-by オプションは、利甚可胜なノヌド間でプロセスの負荷を分散したす。
ラりンドロビン方匏で各プロセスに番号を付けたす。

この -nolocal このオプションは、プロセスがロヌカル ホストにマップされるのを防ぎたす (この䟋では
ケヌスノヌド aa)。 その間 ムピルン 通垞、システム リ゜ヌスをほずんど消費したせん。 -nolocal するこずができたす
非垞に倧芏暡なゞョブを開始する堎合に圹立ちたす。 ムピルン 実際には目立぀ように䜿甚する必芁があるかもしれたせん
メモリ量や凊理時間。

同じように -np スロットよりも少ないプロセスを指定でき、オヌバヌサブスクラむブするこずもできたす
スロット。 たずえば、同じホストファむルを䜿甚するず、次のようになりたす。

mpirun -hostfile myhostfile -np 14 ./a.out
ノヌド aa でプロセス 0  3、bb でプロセス 4  7、cc でプロセス 8  11 を起動したす。 次に、
残りの XNUMX ぀のプロセスは、遞択したノヌドに送信されたす。

オヌバヌサブスクリプションに察する制限を指定するこずもできたす。 たずえば、同じホストファむルを䜿甚するず、次のようになりたす。

mpirun -hostfile myhostfile -np 14 -nooversubscribe ./a.out
゚ラヌが発生したすので、 -nooversubscribe オヌバヌサブスクリプションを防ぎたす。

オヌバヌサブスクリプションの制限は、ホストファむル自䜓で指定するこずもできたす。
% 猫の myhostfile
aa スロット = 4 max_slots = 4
bb max_slots=4
cc スロット = 4

この 最倧スロット数 フィヌルドでそのような制限を指定したす。 そうなるず、 スロット 倀のデフォルトは
限界。 今

mpirun -hostfile myhostfile -np 14 ./a.out
最初の 12 プロセスは以前ず同様に起動されたすが、残りの XNUMX プロセスは起動されたせん。
プロセスはノヌド cc に匷制的に配眮されたす。 他の XNUMX ぀のノヌドは、
このゞョブによるオヌバヌサブスクリプションに察するホストファむル。

䜿い方 --nooversubscribe Open MPI は珟圚取埗できないため、このオプションは圹に立ちたす。
リ゜ヌスマネヌゞャヌからの「max_slots」倀。

もちろん、 -np ず䞀緒に䜿甚するこずもできたす -H or -ホスト オプション。 䟋えば、

mpirun -H aa,bb -np 8 ./a.out
8぀のプロセスを起動したす。 ホストが XNUMX ぀だけ指定されおいるため、最初の XNUMX ぀のホストの埌に
プロセスは XNUMX ぀が aa に、もう XNUMX ぀が bb にマップされ、残りのプロセスはオヌバヌサブスクラむブしたす
指定されたホスト。

MIMD の䟋は次のずおりです。

mpirun -H aa -np 1 ホスト名 : -H bb,cc -np 2 皌働時間
実行䞭のプロセス0を起動したす hostname ノヌド aa 䞊でプロセス 1 ず 2 がそれぞれ実行䞭
uptime それぞれノヌド bb ず cc 䞊にありたす。

マッピング、 ランキング、 ず バむンディング Oh 私の
Open MPI では、プロセスの堎所ずランクを割り圓おるために XNUMX 段階の手順が採甚されおいたす。

マッピング 各プロセスにデフォルトの堎所を割り圓おたす

ランキング MPI_COMM_WORLD ランク倀を各プロセスに割り圓おたす

拘束 各プロセスを特定のプロセッサ䞊で実行するように制玄したす。

この マッピング ステップは、マッパヌに基づいお各プロセスにデフォルトの堎所を割り圓おるために䜿甚されたす。
雇甚されおいる。 スロット、ノヌド、および順にマッピングするず、
ノヌドレベルたで凊理したす。 察照的に、オブゞェクトによるマッピングでは、マッパヌは次のこずを割り圓おるこずができたす。
各ノヌド䞊で実際のオブゞェクトぞの凊理を行いたす。

ご泚意: プロセスに割り圓おられる堎所は、プロセスがバむンドされる堎所ずは無関係です。
割り圓おは、バむンディング アルゎリズムぞの入力ずしおのみ䜿甚されたす。

プロセスプロセスのノヌドぞのマッピングは、䞀般的なポリシヌだけでなく定矩するこずもできたす
たた、必芁に応じお、単玔な衚珟では蚘述できない任意のマッピングを䜿甚するこずもできたす。
ポリシヌ。 ホストファむルを XNUMX 行ず぀読み取る「シヌケンシャル マッパヌ」を䜿甚できたす。
ホストファむルで指定された順序でプロセスをノヌドに割り圓おたす。 䜿甚 -mca マップ
seq オプション。 たずえば、前ず同じホストファむルを䜿甚したす。

mpirun -hostfile myhostfile -mca rmaps seq ./a.out

は、ノヌド aa、bb、および cc のそれぞれに XNUMX ぀ず぀、合蚈 XNUMX ぀のプロセスを起動したす。 スロット
数は関係ありたせん。 リストされおいるノヌド䞊で XNUMX 行ごずに XNUMX ぀のプロセスが起動されたす。
ラむン。

任意のマッピングを指定するもう XNUMX ぀の方法は、ランクファむルを䜿甚するこずです。
プロセスバむンディングも制埡したす。 ランクファむルに぀いおは以䞋で説明したす。

第 XNUMX フェヌズでは、次の点に焊点を圓おたす。 ランキング ゞョブの MPI_COMM_WORLD 内のプロセスの。
Open MPI はこれをマッピング手順から分離し、より柔軟なマッピング手順を可胜にしたす。
MPI プロセスの盞察的な配眮。 これは、次のこずを考慮するずよくわかりたす。
—map-by ppr:2:socket オプションを䜿甚した XNUMX ぀のケヌス:

ノヌド aa ノヌド bb

ランクバむコア0 1 ! 2 3 4 5 ! 6 7

ランクバむ゜ケット 0 2 ! 1 3 4 6 ! 5 7

ランク別゜ケット:スパン 0 4 ! 1 5 2 6 ! 3 7

コア別ずスロット別のランキングでは同じ結果が埗られたす。これは単玔な経過です。
MPI_COMM_WORLD は各ノヌド党䜓でランク付けされたす。 ゜ケットごずのランキングは、以䞋の範囲内でラりンドロビン ランキングを実行したす。
すべおのプロセスに MCW ランクが割り圓おられるたで各ノヌドを実行し、その埌、
次のノヌド。 を远加するず、 スパン ランキング ディレクティブの修食子により、ランキング アルゎリズムが実行されたす。
割り圓お党䜓を単䞀の゚ンティティずしお扱うため、MCW ランクが割り圓おられたす。
最初に戻る前に、すべおの゜ケットにわたっお実行したす。

この 拘束 フェヌズは実際に各プロセスを特定のプロセッサのセットにバむンドしたす。 これはできる
オペレヌティング システムがプロセスを最適に配眮しおいない堎合は、パフォヌマンスが向䞊したす。 ために
たずえば、䞀郚のマルチコア プロセッサ ゜ケットをオヌバヌサブスクラむブし、他の゜ケットを残す可胜性がありたす。
アむドル状態。 これにより、プロセスが共通リ゜ヌスを求めお䞍必芁に競合する可胜性がありたす。 あるいは、それ
プロセスが広範囲に分散しすぎる可胜性がありたす。 アプリケヌションのパフォヌマンスが䜎い堎合、これは最適ではない可胜性がありたす
プロセス間通信コストに敏感です。 バむンディングは動䜜を維持するこずもできたす
プロセスがどれほど最適であるかに関係なく、システムはプロセスを過床に移行しないようにしたす。
初めから眮かれおいたした。

バむンディングに䜿甚されるプロセッサは、トポロゞヌ グルヌプの芳点から識別できたす。
- たずえば、l3cache にバむンドするず、各プロセスがスコヌプ内のすべおのプロセッサにバむンドされたす。
割り圓おられた堎所内の単䞀の L3 キャッシュ。 したがっお、プロセスが
マッパヌを特定の゜ケットに蚭定しおから、 —バむンド先 l3キャッシュ ディレクティブによりプロセスは次のようになりたす
その゜ケット内で単䞀の L3 キャッシュを共有するプロセッサにバむンドされたす。

負荷のバランスをずるために、バむンディング ディレクティブは、バむンドするずきにラりンドロビン方匏を䜿甚したす。
マッパヌで䜿甚されるレベルよりも䜎いレベル。 たずえば、ゞョブがマッピングされおいる堎合を考えおみたしょう。
゜ケットレベルにバむンドされおから、コアにバむンドされたす。 各゜ケットには耇数のコアがあるため、
耇数のプロセスが特定の゜ケットにマップされるず、バむンディング アルゎリズムによっおそれぞれのプロセスが割り圓おられたす。
ラりンドロビン方匏で、゜ケットに配眮されたプロセスを䞀意のコアに割り圓おたす。

あるいは、l2cache によっおマップされおから゜ケットにバむンドされたプロセスは、単玔にバむンドされたす。
それらが配眮されおいる゜ケット内のすべおのプロセッサヌに送信されたす。 このようにしお、ナヌザヌは次のこずができたす。
盞察的な MCW ランクの䜍眮ずバむンディングを詳现に制埡したす。

最埌に、 --レポヌトバむンディング バむンディングのレポヌトに䜿甚できたす。

䟋ずしお、それぞれが XNUMX ぀のコアで構成される XNUMX ぀のプロセッサ ゜ケットを持぀ノヌドを考えおみたしょう。 私たち
ラン ムピルン   -np 4 --レポヌトバむンディング および次の远加オプション:

% mpirun ... --map-by core --bind-to core
[...] ... 子 [...,0] を CPU 0001 にバむンドしおいたす
[...] ... 子 [...,1] を CPU 0002 にバむンドしおいたす
[...] ... 子 [...,2] を CPU 0004 にバむンドしおいたす
[...] ... 子 [...,3] を CPU 0008 にバむンドしおいたす

% mpirun ... --map-by ゜ケット --bind-to ゜ケット
[...] ... 子 [...,0] を゜ケット 0 cpus 000f にバむンドしおいたす
[...] ... 子 [...,1] を゜ケット 1 cpus 00f0 にバむンドしおいたす
[...] ... 子 [...,2] を゜ケット 0 cpus 000f にバむンドしおいたす
[...] ... 子 [...,3] を゜ケット 1 cpus 00f0 にバむンドしおいたす

% mpirun ... --map-by core:PE=2 --bind-to core
[...] ... 子 [...,0] を CPU 0003 にバむンドしおいたす
[...] ... 子 [...,1] を CPU 000c にバむンドしおいたす
[...] ... 子 [...,2] を CPU 0030 にバむンドしおいたす
[...] ... 子 [...,3] を CPU 00c0 にバむンドしおいたす

% mpirun ... --bind-to none

ここでは、 --レポヌトバむンディング は、各プロセスのバむンディングをマスクずしお瀺しおいたす。 最初のケヌスでは、
プロセスは、マスク 0001、0002、0004、および
0008. XNUMX 番目のケヌスでは、プロセスは、瀺されおいるように、連続する゜ケット䞊のすべおのコアにバむンドされたす。
マスク 000f および 00f0 によっお。 プロセスはプロセッサ ゜ケットをラりンドで埪環したす。
ロビンファッションを必芁なだけ䜕床でも。 2 番目のケヌスでは、マスクは次のこずを瀺しおいたす。
コアはプロセスごずにバむンドされおいたす。 XNUMX 番目のケヌスでは、バむンディングがオフになり、
バむンディングが報告されおいたす。

Open MPI によるプロセス バむンディングのサポヌトは、基盀ずなるオペレヌティング システムによっお異なりたす。
したがっお、特定のプロセス バむンド オプションはすべおのシステムで利甚できるわけではありたせん。

プロセス バむンディングは、MCA パラメヌタヌを䜿甚しお蚭定するこずもできたす。 それらの䜿甚法は以䞋よりも䞍䟿です
の ムピルン オプション。 䞀方、MCA パラメヌタは、
ムピルン コマンドラむン、たたはシステムたたはナヌザヌの mca-params.conf ファむル内、あるいは
以䞋の MCA セクションで説明されおいるように、環境倉数。 䟋ずしおは次のようなものがありたす。

mpirun オプション MCA パラメヌタのキヌ倀

--map-by コア rmaps_base_mapping_policy コア
--map-by ゜ケット rmaps_base_mapping_policy ゜ケット
--rank-by コア rmaps_base_ranking_policy コア
--bind-to core hwloc_base_binding_policy core
--゜ケットぞのバむンド hwloc_base_binding_policy ゜ケット
--bind-to なし hwloc_base_binding_policy なし

ランクファむル
Rankfile は、個々のプロセスの詳现情報を指定するテキスト ファむルです。
ノヌドにマッピングする必芁があり、どのプロセッサにバむンドする必芁がありたす。 の各行
Rankfile は XNUMX ぀のプロセスの堎所を指定したす (MPI ゞョブの堎合、プロセスの「ランク」はプロセスを指したす)
MPI_COMM_WORLD でのランクに)。 ランクファむルの各行の䞀般的な圢匏は次のずおりです。

ランク= スロット=

䟋

$猫myrankfile
ランク 0=aa スロット=1:0-2
ランク1=BBスロット=0:0,1
ランク 2=cc スロット=1-2
$ mpirun -H aa,bb,cc,dd -rf myrankfile ./a.out

ずいう意味です

ランク 0 はノヌド aa で実行され、論理゜ケット 1、コア 0  2 にバむンドされたす。
ランク 1 はノヌド bb 䞊で実行され、論理゜ケット 0、コア 0 および 1 にバむンドされたす。
ランク 2 はノヌド cc 䞊で実行され、論理コア 1 および 2 にバむンドされたす。

代わりに Rankfile を䜿甚しお指定するこずもできたす 物理的な プロセッサの堎所。 この堎合、
構文は倚少異なりたす。 ゜ケットが認識されなくなり、スロット番号が
ほずんどの OS は䞀意の物理 PU を割り圓おないため、指定されるのは物理 PU の番号である必芁がありたす。
ノヌド内の各コアの識別子。 したがっお、適切な物理ランクファむルは次のようになりたす。
以䞋

$ cat myphysicalrankfile
ランク 0=aa スロット=1
ランク1=BBスロット=8
ランク 2=cc スロット=6

これは、

ランク 0 は、物理 PU 1 を含むコアにバむンドされたノヌド aa で実行されたす。
ランク 1 は、物理 PU 8 を含むコアにバむンドされたノヌド bb で実行されたす。
ランク 2 はノヌド cc で実行され、物理 PU 6 を含むコアにバむンドされたす。

ランクファむルは次のように扱われたす 論理的な デフォルトでは、MCA パラメヌタ
ランクファむルを指定するには、rmaps_rank_file_physical を 1 に蚭定する必芁がありたす。
ず芋なされる 物理的な.

䞊蚘のホスト名は「絶察」です。぀たり、実際に解決可胜なホスト名は次のずおりです。
指定。 ただし、ホスト名は「盞察」ずしお指定するこずもできたす。
倖郚で指定されたホスト名のリストに関連しお指定されたす (たずえば、mpirun の
--host 匕数、ホストファむル、たたはゞョブ スケゞュヌラ)。

「盞察」指定は「+n」の圢匏です。 "、ここで、X は、
䜿甚可胜なすべおのホスト名のセット内の X 番目のホスト名。0 からむンデックスが付けられたす。次に䟋を瀺したす。

$猫myrankfile
rank 0=+n0 slot=1:0-2
ランク 1=+n1 スロット=0:0,1
ランク 2=+n2 スロット=1-2
$ mpirun -H aa,bb,cc,dd -rf myrankfile ./a.out

Open MPI v1.7 以降、すべおの゜ケット/コア スロットの䜍眮は次のように指定されたす。 論理的な
むンデックス (Open MPI v1.6 シリヌズを䜿甚) 物理的な むンデックス。 などのツヌルを䜿甚できたす
HWLOC の「lstopo」は、゜ケットずコアの論理むンデックスを怜玢したす。

申し蟌み コンテキスト or 実行可胜ファむル プログラム
XNUMX ぀の異なる圢匏を区別するには、 ムピルン コマンドラむンで怜玢したす - アプリ オプションを遞択したす。
これが指定されおいる堎合、コマンドラむンで指定されたファむルは
アプリケヌションコンテキスト。 指定しない堎合、ファむルは実行可胜ファむルずみなされたす。
プログラム。

䜍眮
ファむルの盞察パスたたは絶察パスが指定されおいない堎合、Open MPI は最初にファむルを怜玢したす。
で指定されたディレクトリを怜玢しおファむルを怜玢したす。 - 道 オプション。 ない堎合 - 道
オプションが蚭定されおいるか、ファむルが芋぀からない堎合は、 - 道 堎所を指定するず、Open MPI が怜玢したす
゜ヌス ノヌドで定矩されおいるナヌザヌの PATH 環境倉数。

盞察ディレクトリを指定する堎合は、初期䜜業ディレクトリからの盞察ディレクトリである必芁がありたす。
䜿甚する特定のスタヌタヌによっお決たりたす。 たずえば、rsh たたは ssh スタヌタヌを䜿甚する堎合、
デフォルトでは、初期ディレクトリは $HOME です。 他のスタヌタヌは初期ディレクトリを次のように蚭定する堎合がありたす。
の呌び出しによる珟圚の䜜業ディレクトリ ムピルン.

電流プロヌブ ワヌキング ディレクトリ
この -wdir mpirun オプション (およびその同矩語、 -wd) ナヌザヌは任意の倀に倉曎できたす。
プログラムが呌び出される前のディレクトリ。 アプリケヌションのコンテキスト ファむルでも䜿甚できたす
特定のノヌドおよび/たたは特定のアプリケヌションの䜜業ディレクトリを指定したす。

Status -wdir オプションはコンテキスト ファむルずコマンド ラむンの䞡方に衚瀺されたす。
ファむルディレクトリはコマンドラむン倀をオヌバヌラむドしたす。

Status -wdir オプションが指定されおいる堎合、Open MPI は指定されたものに倉曎しようずしたす。
すべおのリモヌト ノヌド䞊のディレクトリ。 これが倱敗した堎合、 ムピルン 䞭止したす。

Status -wdir オプションがある 指定するず、Open MPI はディレクトリ名を送信したす。 ムピルン
各リモヌト ノヌドに察しお呌び出されたす。 リモヌトノヌドはそれに倉曎しようずしたす
ディレクトリ。 それができない堎合 (たずえば、そのノヌドにディレクトリが存圚しない堎合)、
Open MPI は、スタヌタヌによっお決定されたデフォルトのディレクトリを䜿甚したす。

ディレクトリの倉曎はすべお、ナヌザヌのプログラムが呌び出される前に行われたす。 それたで埅たない
MPI_INIT が呌び出されたす。

スタンダヌド I / O
Open MPI は、UNIX 暙準入力を /dev/null を陀くすべおのプロセスに送信したす。
MPI_COMM_WORLD ランク 0 プロセス。 MPI_COMM_WORLD ランク 0 プロセスは暙準入力を継承したす
from ムピルン. ご泚意: 呌び出したノヌド ムピルン ノヌドず同じである必芁はありたせん
MPI_COMM_WORLD ランク 0 プロセスが存圚したす。 Open MPI は、次のリダむレクトを凊理したす。 ムピルン's
ランク 0 プロセスぞの暙準入力。

Open MPI は、UNIX 暙準出力ず゚ラヌをリモヌト ノヌドから呌び出したノヌドに送信したす。
ムピルン そしおそれを暙準出力/゚ラヌに出力したす。 ムピルン。 ロヌカルプロセスは
暙準出力/゚ラヌ ムピルン 盎接転送したす。

したがっお、Open MPI アプリケヌションの暙準 I/O をリダむレクトするには、
兞型的なシェルのリダむレクト手順 ムピルン.

% mpirun -np 2 my_app < my_input > my_output

この䟋では、 の MPI_COMM_WORLD ランク 0 プロセスがストリヌムを受信したす
from 私の入力 暙準入力で。 他のすべおのノヌドの stdin は /dev/null に関連付けられたす。
ただし、すべおのノヌドからの暙準出力は 私の出力 ファむルに゜フトりェアを指定する必芁がありたす。

シグナル 䌝播
orterun が SIGTERM および SIGINT を受け取るず、次の方法でゞョブ党䜓を匷制終了しようずしたす。
ゞョブ内のすべおのプロセスに SIGTERM を送信し、数秒埅機しおから、
ゞョブ内のすべおのプロセスに SIGKILL を送信したす。

orterun によっお受信された SIGUSR1 および SIGUSR2 シグナルは、
仕事。

mpirun によっお実行されるプログラムぞの SIGSTOP および SIGCONT の転送をオンにするこずができたす。
MCA パラメヌタ orte_forward_job_control を 1 に蚭定したす。mpirun ぞの SIGTSTOP 信号により、
次に、mpirun によっお開始されたすべおのプログラムに SIGSTOP シグナルが送信され、
同様に、mpirun ぞの SIGCONT シグナルにより、SIGCONT が送信されたす。

珟圚、他の信号は orterun によっお䌝播されたせん。

プロセス 終了 / シグナル ハンドリング
MPI アプリケヌションの実行䞭に、いずれかのプロセスが異垞終了した堎合 (終了するか、
呌び出す前に MPI_FINALIZE、たたは信号の結果ずしお死亡したす、 ムピルン プリントアりトしたす
゚ラヌ メッセヌゞが衚瀺され、残りの MPI アプリケヌションが匷制終了されたす。

ナヌザヌシグナルハンドラヌはおそらく MPI 状態をクリヌンアップしようずするこずを避けるべきです (Open MPI は
珟圚、非同期シグナルセヌフではありたせん。 芋る MPI_Init_thread(3)詳现はこちら
MPI_THREAD_MULTIPLE およびスレッドの安党性)。 たずえば、セグメンテヌション違反が発生した堎合、
MPI_SEND (おそらく䞍正なバッファが枡されたため)、ナヌザヌシグナルハンドラヌは
このナヌザヌハンドラヌが呌び出そうずした堎合に呌び出されたす。 MPI_FINALIZE、悪いこずが起こる可胜性がありたす
゚ラヌが発生したずき、Open MPI はすでに MPI 内にあったためです。 以来 ムピルン 気づくでしょう
プロセスがシグナルによっお終了したずいうこずですが、これはおそらく必芁ありたせん (そしお最も安党です)。
ナヌザヌは非 MPI 状態のみをクリヌンアップしたす。

プロセス 環境
MPI アプリケヌション内のプロセスは、Open RTE デヌモンから環境を継承したす。
それらが実行されおいるノヌド。 環境は通垞、
ナヌザヌのシェル。 リモヌト ノヌドでは、正確な環境はブヌト MCA モゞュヌルによっお決定されたす。
䞭叀。 NS rsh たずえば、起動モゞュヌルは次のいずれかを䜿甚したす rsh/ssh Open RTE を起動するには
リモヌト ノヌド䞊のデヌモンであり、通垞はナヌザヌの XNUMX ぀以䞊のシェルセットアップ ファむルを実行したす。
Open RTE デヌモンを起動する前に。 動的にリンクされたアプリケヌションを実行する堎合、
が必芁 LD_LIBRARY_PATH 環境倉数を蚭定する必芁があるため、次のこずを確認する必芁がありたす。
Open MPI の起動時に正しく蚭定されおいるこずを確認したす。

詳现に぀いおは、「リモヌト実行」セクションを参照しおください。

リモヌト 実行
オヌプン MPI では、 パス リモヌトで実行可胜ファむルを芋぀けるために環境倉数を蚭定する必芁がありたす
ノヌド (これは通垞、次の堎合にのみ必芁です) rsh- たたは ssh-ベヌスの環境 --
バッチ/スケゞュヌル環境は通垞、珟圚の環境を実行環境にコピヌしたす。
リモヌト ゞョブなので、珟圚の環境に パス および LD_LIBRARY_PATH 適切に蚭定し、
リモヌト ノヌドでも適切に蚭定されたす)。 Open MPI が共有でコンパむルされた堎合
ラむブラリのサポヌトも必芁になる堎合がありたす。 LD_LIBRARY_PATH 環境倉数
リモヌト ノヌドにも蚭定したす (特にナヌザヌの実行に必芁な共有ラむブラリを芋぀けるため)
MPI アプリケヌション)。

ただし、シェル起動ファむルを線集しお蚭定するこずが垞に望たしいずは限らず、たた可胜であるずは限りたせん。 パス
および LD_LIBRARY_PATHを遞択したす。 --prefix いく぀かの単玔な構成のためにオプションが提䟛されおいたす
それが䞍可胜な堎合。

この --prefix オプションは XNUMX ぀の匕数を取りたす。リモヌト ノヌドのベヌス ディレクトリです。
オヌプンMPIがむンストヌルされおいたす。 Open MPI はこのディレクトリを䜿甚しおリモヌトを蚭定したす パス ず
LD_LIBRARY_PATH Open MPI たたはナヌザヌ アプリケヌションを実行する前に。 これによりランニングが可胜になりたす
事前蚭定を行わずに MPI ゞョブを開く パス ず LD_LIBRARY_PATH リモヌトで
ノヌド。

Open MPI は、珟圚のノヌドの「bindir」(Open MPI が保存されおいるディレクトリ) のベヌス名を远加したす。
実行可胜ファむルがむンストヌルされおいる) をプレフィックスに远加し、それを䜿甚しお パス リモヌトノヌド䞊で。
同様に、Open MPI は珟圚のノヌドの「libdir」(ディレクトリ
Open MPI のラむブラリがむンストヌルされおいる) をプレフィックスに远加し、それを䜿甚しお LD_LIBRARY_PATH
リモヌトノヌド䞊で。 䟋えば

ロヌカルバむンドディレクトリ: /local/node/directory/bin

ロヌカル libdir: /local/node/directory/lib64

次のコマンドラむンが䜿甚される堎合:

% mpirun --prefix /remote/node/directory

Open MPI は、「/remote/node/directory/bin」を パス ず
詊行する前に、「/remote/node/directory/lib64」をリモヌト ノヌドの D_LIBRARY_PATH に远加したす。
䜕かを実行するこず。

この --prefix リモヌト ノヌド䞊のむンストヌル パスが次の堎合、このオプションは十分ではありたせん。
ロヌカルノヌドずは異なりたす (䟋: "/ lib" はロヌカルノヌドで䜿甚されたすが、"/ lib64「です
リモヌト ノヌドで䜿甚される)、たたはむンストヌル パスが
共通のプレフィックスの䞋にあるサブディレクトリ。

実行するこずに泚意しおください ムピルン 絶察パス名を䜿甚しお指定するこずは、 --prefix
絶察パス名の最埌のサブディレクトリを陀く ムピルン 䟋えば

% /usr/local/bin/mpirun ...

に盞圓したす

% mpirun --prefix / usr / local

茞出 環境 Variables
OMPI_* の圢匏で名前が付けられたすべおの環境倉数は自動的に゚クスポヌトされたす。
ロヌカルノヌドずリモヌトノヌド䞊の新しいプロセスに適甚されたす。 環境パラメヌタも次のように指定できたす。
MCAパラメヌタを䜿甚しお新しいプロセスに蚭定/転送されたす。 mca_base_env_listを遞択したす。 -x
オプション ムピルン は非掚奚になりたしたが、MCA パラメヌタの構文は以前の構文に埓いたす。
䟋。 䞀方、の構文は、 -x オプションず MCA パラメヌタにより、新しい
倉数に぀いおは、これらのオプションのパヌサヌは珟圚あたり掗緎されおいないこずに泚意しおください -
匕甚笊で囲たれた倀さえ理解できたせん。 ナヌザヌは倉数を蚭定するこずをお勧めしたす。
環境を倉曎し、オプションを䜿甚しおそれらを゚クスポヌトしたす。 それらを定矩しないこず。

蚭定 MCA Parameters
この -mca スむッチを䜿甚するず、さたざたな MCA (モゞュラヌ コンポヌネント) にパラメヌタヌを枡すこずができたす。
アヌキテクチャ) モゞュヌル。 MCA モゞュヌルは、MPI プログラムに盎接圱響を䞎えたす。
実行時に蚭定する調敎可胜なパラメヌタ (どの BTL 通信デバむス ドラむバを蚭定するかなど)
䜿甚するか、その BTL に枡すパラメヌタなど)。

この -mca switchはXNUMX぀の匕数を取りたす ず を遞択したす。 䞀般的に議論
どの MCA モゞュヌルが倀を受け取るかを指定したす。 たずえば、 「btl」が䜿甚されたす
MPI メッセヌゞの転送に䜿甚する BTL を遞択したす。 の 匕数は
枡される倀。 䟋えば

mpirun -mca btl tcp、self -np 1 foo
「tcp」および「self」BTL を䜿甚し、「foo」の単䞀コピヌを実行するように Open MPI に指瀺したす。
割り圓おられたノヌド。

mpirun -mca btl self -np 1 foo
Open MPI に「self」BTL を䜿甚し、割り圓おられた「foo」の単䞀コピヌを実行するように指瀺したす。
ノヌド。

この -mca スむッチを耇数回䜿甚しお、異なるものを指定できたす および
匕数。 同じ堎合 耇数回指定されおいる堎合、 は連結されたす
カンマ (",") で区切りたす。

なお、 -mca switchは、環境倉数を蚭定するための単なるショヌトカットです。 NS
同じ効果は、前に察応する環境倉数を蚭定するこずによっお達成される可胜性がありたす
ランニング ムピルン。 Open MPI が蚭定する環境倉数の圢匏は次のずおりです。

OMPI_MCA_ =

マルサス、 -mca スむッチは、以前に蚭定された環境倉数をオヌバヌラむドしたす。 の -mca
蚭定も同様に、$OPAL_PREFIX/etc/openmpi-mca- で蚭定された MCA パラメヌタヌをオヌバヌラむドしたす。
params.conf たたは $HOME/.openmpi/mca-params.conf ファむル。

䞍明 匕数は環境倉数ずしお蚭定されたたたです -- チェックされたせん (
ムピルン正確さのために。 違法たたは䞍正確 匕数はそうであるかもしれないし、そうでないかもしれない
報告されおいたす -- それは特定の MCA モゞュヌルに䟝存したす。

MCA アヌキテクチャで䜿甚可胜なコンポヌネント タむプを芋぀けるには、たたは䜿甚可胜なコンポヌネント タむプを芋぀けるには、
特定のコンポヌネントのパラメヌタを䜿甚するには、 ompi_info 指図。 を参照しおください。 ompi_info(1) man
コマンドの詳现に぀いおは、ペヌゞを参照しおください。

Running: as ルヌト
Open MPI チヌムは、実行しないこずを匷く掚奚したす。 ムピルン root ナヌザヌずしお。 MPI
アプリケヌションは通垞の (非 root) ナヌザヌずしお実行する必芁がありたす。

このアドバむスを反映しお、mpirun はデフォルトで root ずしおの実行を拒吊したす。 これをオヌバヌラむドするには
デフォルトでは、 --allow-root ずしお実行 オプションを ムピルン コマンドラむン。

出口 status
䜕に぀いおの暙準的な定矩はありたせん ムピルン 終了ステヌタスずしお返される必芁がありたす。 埌
かなりの議論の結果、次のような割り圓お方法に萜ち着きたした。 ムピルン 終了する
ステヌタス (泚: 以䞋の説明では、「プラむマリ」ゞョブは最初のアプリケヌションです)
mpirun によっお開始される - そのゞョブによっお生成されるすべおのゞョブは「セカンダリ」に指定されたす
ゞョブ):

· プラむマリ ゞョブ内のすべおのプロセスが終了ステヌタス 0 で正垞に終了した堎合、0 を返したす。

· プラむマリ ゞョブ内の XNUMX ぀以䞊のプロセスがれロ以倖の終了で通垞終了する堎合
status では、MPI_COMM_WORLD ランクが最も䜎いプロセスの終了ステヌタスを返したす。
れロ以倖のステヌタスを持぀

· プラむマリ ゞョブ内のすべおのプロセスが終了ステヌタス 0 で正垞に終了し、XNUMX たたは
二次ゞョブ内のより倚くのプロセスは通垞、れロ以倖の終了ステヌタスで終了したす。
MPI_COMM_WORLD ランクが最も䜎いプロセスの終了ステヌタスを最䞋䜍で返したす。
jobid をれロ以倖のステヌタスに蚭定し、(b) ゞョブ ID の終了ステヌタスを芁玄したメッセヌゞを出力したす。
プラむマリ ゞョブずすべおのセカンダリ ゞョブ。

· コマンド ラむン オプション --report-child-jobs- Separately が蚭定されおいる堎合、 -only- を返したす。
プラむマリゞョブの終了ステヌタス。 二次ゞョブのれロ以倖の終了ステヌタスは次のようになりたす。
抂芁の印刷ステヌトメントでのみ報告されたす。

デフォルトでは、OMPI は MPI プロセスがれロ以倖の終了で終了したこずを蚘録しメモしたす。
スタヌテス。 これは通垞、「異垞終了」ずはみなされたせん。぀たり、OMPI は異垞終了を行いたせん。
XNUMX ぀以䞊のプロセスがれロ以倖のステヌタスを返した堎合、MPI ゞョブを䞭止したす。 代わりに、デフォルトの
この動䜜は単に、れロ以倖のステヌタスで終了したプロセスの数を報告するだけです。
仕事の完了。

ただし、堎合によっおは、プロセスが終了したずきにゞョブを䞭止するこずが望たしい堎合がありたす。
れロ以倖のステヌタスで終了したす。 たずえば、非 MPI ゞョブは、次のような䞍正な結果を怜出する可胜性がありたす。
蚈算を䞭止したいが、コア ファむルは生成したくない。 たたは MPI ゞョブ
MPI_Finalize の呌び出しを超えお続行する可胜性がありたすが、すべおのプロセスを䞭止する必芁があるこずを瀺したす
MPI 埌の結果が原因です。

このような状況が頻繁に発生するずは予想されおいたせん。 ただし、利益のために
より広範なコミュニティにサヌビスを提䟛するために、OMPI はナヌザヌがそれを指瀺できる手段を備えおいたす。
ゞョブは、プロセスがれロ以倖のステヌタスで終了するず䞭止されたす。 MCAパラメヌタの蚭定
「orte_abort_on_non_zero_status」を 1 にするず、OMPI はすべおのプロセスを䞀床に䞭止したす。
プロセス
れロ以倖のステヌタスで終了したす。

この方法で発生した終了は、コン゜ヌル䞊で「異垞」ずしお報告されたす。
終了」。終了する最初のプロセスがその終了ステヌタスずずもに識別されたす。

䟋


䞊蚘のセクション党䜓の䟋も必ず参照しおください。

mpirun -np 4 -mca btl ib、tcp、self prog1
MPI のトランスポヌトに「ib」、「tcp」、および「self」BTL を䜿甚しお prog4 の 1 ぀のコピヌを実行したす。
メッセヌゞ。

mpirun -np 4 -mca btl tcp、sm、self
--mca btl_tcp_if_include eth0 prog1
MPI のトランスポヌトに「tcp」、「sm」、および「self」BTL を䜿甚しお prog4 の 1 ぀のコピヌを実行したす。
TCP は通信に eth0 むンタヌフェむスのみを䜿甚したす。 他のBTLに泚意しおください
同様の if_include MCA パラメヌタがありたす。

リタヌン VALUE


ムピルン すべおのプロセスが開始された堎合、0 を返したす。 ムピルン MPI_FINALIZE を呌び出した埌に終了したす。 あ
mpirun で内郚゚ラヌが発生した堎合、たたは XNUMX ぀以䞊の堎合は、れロ以倖の倀が返されたす。
MPI_FINALIZE を呌び出す前にプロセスが終了したした。 mpirun で内郚゚ラヌが発生した堎合、
察応する゚ラヌコヌドが返されたす。 XNUMX ぀以䞊のプロセスが終了した堎合
MPI_FINALIZE を呌び出す前に、プロセスの MPI_COMM_WORLD ランクの戻り倀
それ ムピルン MPI_FINALIZE を呌び出す前に終了した最初の通知が返されたす。 ご了承ください、
䞀般に、これは停止した最初のプロセスになりたすが、実際に停止するずいう保蚌はありたせん。

onworks.net サヌビスを䜿甚しおオンラむンで orterun を䜿甚する


無料のサヌバヌずワヌクステヌション

Windows ず Linux のアプリをダりンロヌド

Linuxコマンド

Ad