Elastic Fabric Adapter
Elastic Fabric Adapter (EFA) は、ハイパフォーマンスコンピューティング (HPC) と機械学習アプリケーションを高速化するために Amazon EC2 インスタンスにアタッチできるネットワークデバイスです。EFA では、AWS クラウドが提供するスケーラビリティ、柔軟性、伸縮性により、オンプレミスの HPC クラスターのアプリケーションパフォーマンスを実現できます。
EFA では、クラウドベースの HPC システムで従来使用されていた TCP トランスポートよりも低く、一貫性の高いレイテンシーを提供し、高いスループットが得られます。HPC と機械学習アプリケーションのスケーリングに不可欠なインスタンス間通信のパフォーマンスが向上します。既存の AWS ネットワークインフラストラクチャで動作するように最適化されており、アプリケーション要件に応じてスケーリングすることができます。
EFAは、Libfabric 1.8.1 と統合されており、HPC アプリケーションの Open MPI 4.0.2 および インテル MPI 2019 Update 4 と、機械学習アプリケーションの Nvidia Collective Communications Library (NCCL) をサポートしています。
注記
EFAs の OS バイパス機能は、Windows インスタンスではサポートされていません。EFA を Windows インスタンスにアタッチした場合、インスタンスは、Elastic Network Adapter として動作し、EFA 機能は追加されません。
コンテンツ
EFA の基本
EFA は、機能が追加された Elastic Network Adapter (ENA) です。ENA のすべての機能に OS バイパス機能が追加されています。OS バイパスは、HPC と機械学習アプリケーションがネットワークインターフェイスハードウェアと直接通信して、レイテンシーが低く、信頼性の高い転送機能を実現できるようにするアクセスモデルです。

従来、HPC アプリケーションは、Message Passing Interface (MPI) を使用してシステムのネットワーク転送と通信していました。AWS クラウドでは、アプリケーションが MPI と通信することを意味します。MPI はオペレーティングシステムの TCP/IP スタックと ENA デバイスドライバーを使用して、インスタンス間のネットワーク通信を行います。
EFA では、HPC アプリケーションは MPI または NCCL を使用して Libfabric API と通信します。Libfabric API はオペレーティングシステムのカーネルをバイパスし、EFA デバイスと直接通信してパケットをネットワークに送ります。これにより、オーバーヘッドが削減され、HPC アプリケーションを効率的に実行できるようになります。
注記
Libfabric は、OpenFabrics Interface (OFI) フレームワークのコアコンポーネントで、OFI のユーザースペース API を定義およびエクスポートします。詳細については、「Libfabric OpenFabrics」ウェブサイトを参照してください。
EFAs と ENA の違い
Elastic Network Adapters (ENA) は、VPC ネットワークのサポートに必要な従来の IP ネットワーキング機能を提供します。EFAs は、ENA と同じ従来のすべての IP ネットワーキング機能に加えて、OS バイパス機能をサポートしています。OS バイパスにより、HPC と機械学習アプリケーションはオペレーティングシステムのカーネルをバイパスして EFA デバイスと直接通信できます。
サポートされたインターフェイスとライブラリ
EFA は、以下のインターフェイスとライブラリをサポートしています。
-
Open MPI 4.0.2
-
Intel MPI 2019 Update 6
-
NVIDIA Collective Communications Library (NCCL) 2.4.2 以降
サポートされるインスタンスタイプ
インスタンスタイプ c5n.18xlarge
, c5n.metal
, i3en.24xlarge
, m5dn.24xlarge
, m5n.24xlarge
, r5dn.24xlarge
, r5n.24xlarge
, and p3dn.24xlarge
は EFAs をサポートしています。
サポート対象の AMI
AMI Amazon Linux, Amazon Linux 2, RHEL 7.6, RHEL 7.7, CentOS 7, Ubuntu 16.04, and Ubuntu 18.04 は、EFAs をサポートしています。
EFA の制限事項
EFA には次の制約事項があります。
-
インスタンスごとにアタッチできる EFA は 1 つのみです。
-
EFA OS バイパストラフィックは、1 つのサブネットに制限されています。つまり、EFA トラフィックをサブネット間で送信することはできません。EFA の通常の IP トラフィックは、サブネット間で送信することができます。
-
EFA OS バイパストラフィックは、ルーティングできません。EFA の通常の IP トラフィックは、引き続きルーティングできます。
-
EFA は、セキュリティグループ自体との間のインバウンドおよびアウトバウンドのトラフィックをすべて許可するセキュリティグループのメンバーである必要があります。