[レポート] ENT360 – スケーリング HPC アプリケーション on EC2 with Elastic Fabric Adapter(EFA) #reinvent

re:Invent 2018レポート。Monday Night Live で発表された Elastic Fabric Adapter のセッションを紹介します!
2018.11.29

本記事は、AWS re:Invent 2018 のセッション 「ENT360 - Scaling HPC Applications on EC2 with Elastic Fabric Adapter」のレポートです。

Elastic Fabric Adapter は re:Invent 2018 の Monday Night Live で発表された新サービスです!

[速報] HPCのための新ネットワークインターフェース!Elastic Fabric Adapterが発表されました! #reinvent

Elastic Fabric Adapter (EFA) is a network interface for Amazon EC2 instances that enables customers to run HPC applications requiring high levels of inter-instance communications, like computational fluid dynamics, weather modeling, and reservoir simulation, at scale on AWS. It uses a custom-built operating system bypass technique to enhance the performance of inter-instance communications, which is critical to scaling HPC applications. With EFA, HPC applications using popular HPC technologies like Message Passing Interface (MPI) can scale to thousands of CPU cores. Get a deep dive on EFA and learn how to use EFA to enhance application performance for your HPC workloads.

  • スピーカー
    • Brian Barrett - Principal Engineer

レポート

アジェンダ

  • HPC アプリケーション
  • EFA って何?
  • EFA を使おう
  • EFA tech Deep dive

HPC アプリケーション

AWS は様々な HPC の分野で使用されている。

  • 気象シミュレーション
  • 構造シミュレーション
  • 製品設計とエンジニアリング
  • 流体力学(Ansys Fluent)
  • 航空宇宙
  • FPGA でのゲノミクス処理

EFA って何?

従来の EC2 環境

HPC ソフトウェア構造(EC2)は以下の通り、MPI は TCP/IP、ENA ドライバーといったカーネルの上で動作しています。

EFA を導入した環境。ENA とは別に EFA が構成されています。

HPC ソフトウェア構造をみると、MPI は libfabric を介して直接デバイスにアクセスできるような構図になっていることが判ります。その分、オーバヘッドが下がるということなのでしょう。

ベンチマーク結果を見ても、C5n の ENA(赤)に比べて、EFA(オレンジ) が2倍以上の性能がでていますね!

EFA を使おう

  • サポートされるプラットフォームは以下の3インスタンスのみ
    • C5n.18xlarge
    • C5n.9xlarge
    • P3dn.24xlarge
  • EFA カーネルモジュユール
    • https://github.com/amzn/amzn-drivers
  • libfabric ネットワーク構造
    • AWS カスタムバージョン(2019年上期頃)
  • MPI 実装 or NCCL(NCCL:NVIDIA Collective Communication Library)
    • Open MPI 3.1.3 以上 もしくは
    • NCCL 2.3.8 以上

EFA の制約

  • ローカルサブネット通信
  • 両方の セキュリティグループ でインバウンド、アウトバウンドをすべてのトラフィックで許可が必要
  • 1 EFA ENI/インスタンス
  • EFA ENI はインスタンスの起動時または停止したインスタンスに対してのみ追加できる

EFA クラスタの起動

InterfaceType=efa を指定して起動。Device efa0 として認識されています。

ドライバーの確認

MPI の確認

CloudFromation、EC2 AutoScaling Group、AWS Batch、スポット/スポット・フリート のいずれでも起動テンプレートのネットワークセクションに InterfaceType : efa を指定して使えます。

業界標準の libfabric APIをサポートしているため、サポートされているMPIライブラリを使用するアプリケーションは、ほとんど変更を加えずにAWSに移行できます

EFA ネイティブモードとユーティリティーモード

ユーティリティーエンドポイントタイプの RxR は EFA の一部として AWS が開発。

スケーラブル・リライブル・データグラム(SRD)

  • AWS のデータセンターネットワーク用に、新しくプロトコルデザインされている
  • 第3世代の Nitro チップの一部として実装
  • EFA は 信頼性のあるデータグラムインタフェースとして SRD を公開

FAQ

  • Q. いつごろ GA されますか?
    • 2019年上期
  • Q. どうやってプレビューに参加できますか?
  • Q. どのリージョンで EFA を起動できますか?
    • C5n 、P3dn をサポートしているリージョン
  • Q: MPI レイテンシは?
    • プレイスメントグループでは、15.5マイクロ秒未満(osu_latency benchmark)

さいごに

大規模な MPI 通信を伴う HPC アプリケーションではかなり期待できそうなサービスですね!今年の re:Invent でも AWS が開発したチップが発表されていましたが、HPC 分野でもますます AWS の活躍が期待できそうですね!

GA まで待てない!という方は、ぜひプレビューにお申し込みください!

以上!大阪オフィスの丸毛(@marumo1981)でした!