さまざまなユーザーがさまざまなシナリオで Elastic Remote Direct Memory Access (eRDMA) を簡単に使用できるようにするために、eRDMA とアプリケーションを相互に適応させます。このトピックでは、カーネルモードの適応ソリューションである Shared Memory Communications over RDMA (SMC-R) と、ユーザーモードの適応ソリューションである Network Accelerator (NetACC) について説明します。前述のソリューションを使用して、eRDMA とアプリケーションを簡単に適応させることができます。
シナリオ
eRDMA は、Redis、Spark、ハイパフォーマンスコンピューティング (HPC)、または Kafka を含むシナリオで使用でき、それぞれに固有の適応ソリューションが用意されています。透過的な RDMA サポートとは、コードを変更せずにソリューションを使用して eRDMA とアプリケーションを相互に適応させることができることを意味します。eRDMA をサポートするには、アプリケーションを再コンパイルするだけで済みます。逆に、非透過的な RDMA サポートでは、コードを変更して eRDMA とアプリケーションを適応させる必要があります。
Redis アプリケーション
SMC-R を使用して透過的な適応を実行することをお勧めします。詳細については、「eRDMA に基づいて SMC-R と Redis をデプロイする」をご参照ください。
HPC アプリケーション
eRDMA テクノロジーを使用することにより、気候気象学、産業シミュレーション、分子動力学などの E-HPC NEXT クラスタ内のマルチノード並列ジョブは、オンプレミスクラスタに匹敵する高速ネットワークパフォーマンスを実現できます。詳細については、「eRDMA に基づく E-HPC クラスタデプロイメント」をご参照ください。
Spark アプリケーション
jVerbs を使用して Spark アプリケーションの通信コードを変更できます。詳細については、「eRDMA 拡張インスタンスに Spark クラスタをデプロイする」をご参照ください。
Kafka クラスタ
eRDMA 対応 ECS インスタンスに Kafka クラスタをデプロイし、Kafka クラスタ内のノード間のデータ転送を高速化できます。詳細については、「eRDMA 拡張インスタンスに高ネットワークパフォーマンス Kafka クラスタをデプロイする」をご参照ください。
その他のベストプラクティスについては、「eRDMA を使用してネットワークパフォーマンスを向上させる」をご参照ください。
適応ソリューション
カーネルモードの適応ソリューション: SMC-R
IBM は 2017 年に Linux 4.11 用の SMC-R をオープンソース化し、現在も SMC-R を保守しています。SMC-R の詳細については、RFC 7609 を参照してください。Alibaba Cloud Linux 3 は、Alibaba Cloud eRDMA を活用して、クラウドで SMC-R を使用できるようにします。SMC-R は、機能を失うことなくアプリケーションの TCP を透過的に置き換え、すべてのユーザーがアクセスできる高パフォーマンスのハードウェアオフロードネットワークを提供できます。
SMC-R の詳細については、「SMC を有効化および構成する」をご参照ください。
ユーザーモードの適応ソリューション: NetACC
NetACC は、ユーザーモードのネットワークアクセラレーションライブラリです。アプリケーションコードを変更することなく、LD_PRELOAD 環境変数を構成することで、NetACC をロードして使用できます。NetACC は、低レイテンシ、高スループット、カーネルバイパス、プロトコルスタックオフロードなどの eRDMA の利点を活用し、互換性のあるソケットインターフェイスを使用して、既存の TCP アプリケーションの接続確立プロセスを高速化します。
詳細については、「NetACC を使用する」をご参照ください。