Amazon Web Services ブログ
今すぐ利用可能 – 密結合された HPC ワークロードのための Elastic Fabric Adapter
Amazon は Elastic Fabric Adapter (EFA) を re:Invent 2018 で発表し、その時点でプレビュー形式で利用できるようにしました。プレビュー中、AWS のお客様はさまざまな密結合した HPC ワークロードに EFA を活用し、貴重なフィードバックを提供し、最終製品の微調整に役立ちました。
今すぐ利用可能
本日、EFA が複数の AWS リージョンで実稼働の準備が整ったことをお知らせします。従来の TCP 通信で可能であったものよりも、より高いスループットがあり、より低くより一貫したネットワークレイテンシーを必要とする、要求の厳しい HPC ワークロードをサポートする準備が整いました。今回の発表により、 AWS Cloud の規模、柔軟性、および弾力性を密結合した HPC アプリに適用できます。それをどう活用されるかの話を聞くのがとても楽しみです。たとえば、ハードウェアやネットワークを事前に予約しなくても、何千もの計算ノードにスケールアップできます。
EFA のすべて
Elastic Fabric Adapter は、機能を追加した AWS Elastic Network Adapter (ENA) です (ENA について詳しくは、Elastic Network Adapter – Amazon EC2 のための高性能ネットワークインターフェイスを参照してください)。EFA は依然として IP トラフィックを処理できますが、一般的に OS バイパスと呼ばれる重要なアクセスモデルもサポートします。このモデルでは、オペレーティングシステムを各メッセージに関与させることなく、アプリケーションが (最も一般的には一部のユーザースペースミドルウェアを介して) ネットワークインターフェイスにアクセスできます。そうすることで、オーバーヘッドが削減され、アプリケーションをより効率的に実行できます。これは次のようになります (ソース)。
このケーキの MPI 実装および libfabric レイヤーは次の重要な役割を果たします。
MPI – Message Passing Interface の略。MPI は、並列プログラミングをサポートするように設計された古くからある通信プロトコルです。密結合したコンピュータのセットで実行されているプロセスが言語に依存しない方法で通信できるようにする機能を提供します。
libfabric – このライブラリーは、いくつかの異なるタイプのネットワークファブリックプロバイダー (EFA を含む) と MPI などの高レベルのライブラリーとの間に収まります。EFA は標準的な RDM (信頼できるデータグラム) と DGRM (信頼できないデータグラム) エンドポイントタイプをサポートします。詳しくは、「libfabric プログラマーズマニュアル」を参照してください。EFA は、Scalable Reliable Datagram と呼ばれる新しいプロトコルもサポートします。このプロトコルは AWS ネットワーク内で機能するように設計されており、Nitro チップの一部として実装されています。
これら 2 つのレイヤー (および MPI に代えて挿入することができる他のレイヤー) を連携させることで、既存の HPC コードを AWS に持ち込み、ほとんど変更することなく実行することができます。
c5n.18xlarge および p3dn.24xlarge のインスタンスを使用できるすべての AWS リージョンで、それらのインスタンスで EFA を使用できます。インスタンスは EFA を使用して VPC サブネット内で通信できます。そしてセキュリティグループには、セキュリティグループ内のすべてのトラフィックが流れることを許可する入力規則と出力規則が必要です。各インスタンスは単一の EFA を持つことができ、インスタンスの起動時または停止時にアタッチできます。
次のソフトウェアコンポーネントも必要になります。
EFA カーネルモジュール – EFA ドライバーは Amazon GitHub リポジトリ、および Amazon Linux&Amazon Linux 2 AMI にあります。EFA を他の Linux ディストリビューションの AMI に追加することを検討しています。
Libfabric Network Stack – 今のところ (Amazon Linux および Amazon Linux 2 AMI に既に存在する) AWS カスタムバージョンを使用する必要があります。当社は libfabric の次のリリース (1.8) で変更を加えられるように取り組んでいます。
MPI または NCCL 実装 – Open MPI 3.1.3 (以降) または NCCL (2.3.8以降) に加えて、OFI NCCL のドライバーを使用できます。また、Intel MPI ライブラリのサポートにも取り組んでいます。
CLI、API、または EC2 コンソールを使用してインスタンスを起動し、EFA をアタッチすることができ、CloudFormation のサポートは数週間で提供されます。CLI を使用している場合は、次のように、サブネット ID を含めて EFA を要求する必要があります (必ず適切なセキュリティグループを含めてください)。
インスタンスが起動した後、EFA デバイスがアタッチされていることを確認するには、lspci | grep efa0
を実行してください。light-foot がカウントされるたびに物理的な隣接関係から恩恵を受けるために、Cluster Placement Group でインスタンスを起動することができます (必須ではありません)。このように使用すると、EFA は 15.5 マイクロ秒の一方向の MPI レイテンシーを提供できます。
また Launch Template を作成して On-Demand または Spot Form で EC2 インスタンスを (直接的にまたは EC2 Auto Scaling グループの一部として) 起動し、Spot Fleets を起動し、AWS Batch で計算ジョブを実行するためにも使用できます。
詳細
EFA の詳細について詳しくは、そしてその他のベンチマークを確認するには、次の re:Invent の動画 (Elastic Fabric Adapter を使用して EC2 で HPC アプリケーションをスケーリングする) を視聴してください。
AWS のお客様の CFD Direct は、Computational Fluid Dynamics (CFD) のために一般的な OpenFOAM プラットフォームを維持しており、さらに AWS でOpenFOAM を簡単に実行できるようにする AWS Marketplace のサービスである CFD Direct from the Cloud (CFDDC) も提供しています。CFD Direct は EFA のテストとベンチマークを行っており、最近「OpenFOAM HPC with AWS EFA」というタイトルのブログ記事で測定結果を共有しました。記事の中で、同社は次の一対のシミュレーションについて報告しています。
External Aerodynamics Around a Car (車の周りの外部空気力学) – このシミュレーションは、200 コアを超えるまで直線的にスケーリングし、1000 コアでは徐々に線形スケーリングに縮小します (1 コアあたり約 100K のシミュレーションセル)。
Flow Over a Weir with Hydraulic Jump (油圧ジャンプを使ったせき上の流れ) – このシミュレーション (1000 コア、100M セル) では、「データの書き込み」の設定に応じて、67% から 72.6% の間でスケーリングされます。
記事全文を読んで詳細を学び、グラフや可視化を確認しましょう。
制作中
EFA サポートを今後の EC2 インスタンスタイプに追加する予定です。一般的に、あらゆるタイプの最大の「n」インスタンス 2 つと、ベアメタルインスタンスに対しても EFA サポートを提供する予定です。
— Jeff;