あなたが話しているメカニズムは、実装に厳密に依存しています。MPI は、ハードウェアとオペレーティング システムによって提供される通信メカニズムの上に位置する中間レベルの標準です。
ORTE は Open MPI の一部です。これは、現在広く普及している汎用 MPI 実装の 1 つです。また、MPICH と MPICH2、およびそれらのバリアント (Intel MPI など) もあります。ほとんどのスーパーコンピューター ベンダーは、独自の MPI 実装を提供しています (たとえば、IBM は Blue Gene/Q 用に修正された MPICH2 を提供しています)。
Open MPI が機能する方法は、複数のレイヤーに分割され、各レイヤーの機能が動的にロードされる多数のモジュールによって提供されることです。特定の条件下で最適なモジュールを選択することになっているスコアリング メカニズムがあります。
すべての MPI 実装は、いわゆる SPMD 起動を行うメカニズムを提供します。基本的に、MPI アプリケーションは特殊な種類の SPMD (Single Program Multiple Data) です。単一の実行可能ファイルの多数のコピーが実行され、通信と調整のメカニズムとしてメッセージ パッシングが使用されます。実行ノードのリストを取得し、プロセスをリモートで起動し、それらの間の関連付けと通信スキームを確立するのは SPMD ランチャーです (Open MPI では、これは MPI ユニバースと呼ばれます)。これは、グローバル MPI コミュニケーター MPI_COMM_WORLD を作成し、最初のランク割り当てを配布し、CPU コアへのプロセスのバインドなどのオプションを提供できます (NUMA システムでは非常に重要です)。プロセスが開始されると、識別のための何らかのメカニズムが利用可能になります (例: ランクと IP アドレス/TCP ポートの間のマッピング) 他のアドレッシング方式が使用される場合があります。たとえば、Open MPI は、次を使用してリモート プロセスを起動します。ssh
または、rsh
別のリソース管理システム (PBS/Torque、SLURM、Grid Engine、LSF など) によって提供されるメカニズムを使用できます。プロセスが起動し、それらの IP アドレスとポート番号が記録されてユニバースにブロードキャストされると、プロセスは InfiniBand などの他の (より高速な) ネットワーク上でお互いを見つけ、通信ルートを確立できます。
通常、メッセージのルーティングは MPI 自体によって行われるのではなく、基礎となる通信ネットワークに任されます。MPI はメッセージの作成のみを処理し、メッセージをネットワークに渡して宛先に配信します。同じノードに存在するプロセス間の通信には、通常、共有メモリが使用されます。
技術的な詳細に興味がある場合は、Open MPI のソース コードを読むことをお勧めします。プロジェクトのWEB サイトで見つけることができます。