Portalsは、サンディア国立研究所とニューメキシコ大学が開発した、高性能コンピューティングシステム上で高性能なネットワークを実現するための低レベルネットワークAPIです。Portalsは現在、 Cray社の商業的に成功を収めているXTシリーズのスーパーコンピュータにおいて、最も低レベルのネットワークプログラミングインターフェースとなっています。
Portals は、さまざまな上位レベルのネットワーク トランスポート セマンティクスをサポートするために組み合わせることができる基本的な構成要素の概念に基づいています。Portals は片方向のデータ移動操作を提供しますが、他の片方向プログラミング インターフェイスとは異なり、リモート操作のターゲットは仮想アドレスではありません。代わりに、受信メッセージのメモリ内の最終的な宛先は、メッセージ ヘッダーの内容と宛先の構造体の内容を比較することによって受信側で決定されます。この柔軟性により、片方向および双方向通信の両方を効率的に実装できます。特に、Portals は、高性能でスケーラブルなMessage Passing Interface (MPI) 標準の実装をサポートするために必要な基本操作を提供することを目的としています。[ 1 ]また、 Lustreファイルシステムの初期ネットワーク トランスポート層としても使用されました。
Portals は、1990 年代初頭にSUNMOSおよびPumaオペレーティングシステムで使用されていたnXメッセージ パッシング システムの拡張として始まりました。最初に Sandia のIntel Paragonに実装され、後にASCI RedというIntel TeraFLOPSマシンに移植されました。[ 1 ] Portals の最初のバージョンには、シングル ブロック、ダイナミック ブロック、独立ブロック、結合ブロックの 4 つの構成要素がありました。すべての受信メッセージは、まずマッチ リストを通過し、個々のポータルが特定のグループ、ランク、およびユーザーが指定したマッチ ビットのセットに応答できるようにしました。[ 1 ]
Portals の概念は、軽量カーネルと大規模並列システムの世代を重ねるごとに進化を続けました。1999 年に、Portals に運用プログラミング インターフェイスが提供され、軽量カーネル環境外のインテリジェントまたはプログラマブルなネットワーク インターフェイスに実装できるようになりました。[ 2 ] この標準は、メッセージの準備、送信、配信に必要な作業が、Portals データ構造への往復よりも長いシステム向けに設計されました。たとえば、最新のシステムでは、この作業は IO バスを介してネットワーク インターフェイスへの往復によって支配されます。この標準は、最初のリリース以降、最新の高性能大規模並列コンピュータにより適するように改訂されています。[ 3 ] MPI ライブラリは、 Portals 2というレトロ名から新しい Portals 3.0 に移植されました。[ 4 ]
Portals 3 仕様は、最初にASCI Red上で、次にMyrinet上のCPlant上で、[ 5 ] LinuxおよびCray XTファミリー上で、何度か実装されています。[ 6 ]
パーティション化されたグローバルアドレス空間(PGAS) 言語の登場を受けて、Portals 4 の一部として、Portals API にいくつかの新機能が追加されました。Portals 4 では、オフロードを提供する実装のために、プロセッサとネットワークインターフェイス (NIC) 間の相互作用を改善するためにいくつかの変更も行われました。最後に、Portals 4 にはフロー制御をサポートするオプションが追加されました。[ 7 ]
Portals 4 は Bull-Atos BXI NIC の低レベルネットワーク API です。[ 8 ]
{{cite journal}}:ジャーナルを引用するには|journal=(ヘルプ)