siennaxu’s blog

ここで通信分野と関連する記事を紹介していきます! よろしくお願いいたします。

高性能コンピューティングにおけるRoCE技術:洞察と応用

HPCネットワークの進化とRoCEの出現

高性能コンピューティング(HPC)システムの初期時代には、Myrinet、Quadrics、InfiniBandなどの専用のネットワーキングソリューションが一般的にEthernetよりも選ばれていました。これらのカスタムネットワークは、Ethernetソリューションの制約に効果的に対処し、高い帯域幅、低遅延、改善された混雑制御、独自の機能を提供しました。2010年、IBTA(InfiniBand Trade Association)はRoCE(RDMA over Converged Ethernetプロトコル技術の標準を導入し、2014年にはRoCEv2プロトコル技術の標準がリリースされ、帯域幅が大幅に向上しました。Ethernetの性能の顕著な向上により、従来のEthernetと互換性のある高性能ネットワークソリューションへの関心が高まっています。このシフトにより、HPCクラスターのトップ500におけるEthernetの使用率の減少傾向が逆転し、Ethernetはランキングで優れた位置を維持することが可能になりました。

MyrinetとQuadricsはシーンから姿を消しましたが、InfiniBandは高性能ネットワークにおいて重要な役割を果たし続けています。さらに、Cray、Tianhe、Tofulseriesネットワークによる独自のネットワーク シリーズも重要な役割を果たしています。

RoCE

RoCEプロトコルの紹介

RoCEプロトコルは、イーサネット上でのリモート・ダイレクト・メモリ・アクセス(RDMA)を容易にするクラスターネットワーク通信プロトコルとして機能します。このプロトコルは、パケットの送受信タスクをネットワークカードに転送するため、TCP/IPプロトコルカーネルモードへのシステムの入る必要がなくなります。その結果、コピー、カプセル化、デカプセル化に関連するオーバーヘッドが削減され、イーサネット通信の遅延が大幅に低減されます。さらに、通信中のCPUリソースの利用を最小限に抑え、ネットワークの混雑を緩和し、帯域幅の効率的な利用を向上させます。

RoCEプロトコルには、RoCE v1とRoCE v2の2つのバージョンがあります。RoCE v1はリンク層プロトコルとして動作し、通信する双方のパーティが同じレイヤー2ネットワーク内にあることが必要です。一方、RoCE v2はネットワーク層プロトコルとして機能し、RoCE v2プロトコルパケットをレイヤー3でルーティングすることができ、優れたスケーラビリティを提供します。

RoCE V1プロトコル

RoCEプロトコルは、InfiniBand(IB)のインタフェース、トランスポート層ネットワーク層を保持しながら、IBのリンク層と物理層Ethernetのリンク層とネットワーク層で置き換えます。RoCEデータパケットのリンク層データフレームでは、IEEEによって0x8915と指定されたEthertypeフィールドの値が使用され、これによりRoCEデータパケットであることが明確に識別されます。ただし、RoCEプロトコルEthernetネットワーク層を採用していないため、RoCEデータパケットにはIPフィールドが存在しません。その結果、ネットワーク層でのルーティングはRoCEデータパケットには不可行であり、レイヤー2ネットワーク内でのルーティングに制限されています。

RoCE

RoCE V2プロトコル

RoCE v2プロトコルは、RoCEプロトコルの基盤を活かしつつ、大幅な機能強化を導入しています。RoCE v2は、イーサネットネットワーク層UDPプロトコルを使用したトランスポート層を組み込むことで、RoCEプロトコルが利用するInfiniBand(IB)ネットワーク層を変換します。RoCE v2は、イーサネットネットワーク層のIPデータグラム内のDSCP(Differentiated Services Code Point)およびECN(Explicit Congestion Notification)フィールドを活用して、輻輳制御を実装します。これにより、RoCE v2プロトコルパケットはルーティングを経ることができ、優れたスケーラビリティが確保されます。RoCE v2は元のRoCEプロトコルを完全に置き換えるため、通常、RoCEプロトコルという言及はRoCE v2プロトコルを指し、RoCEの第一世代と明示的に指定されていない限り、RoCE v2を意味します。

ロスレスネットワークとRoCE輻輳制御メカニズム

RoCEプロトコルベースのネットワークでは、RoCEトラフィックのシームレスな送信を確保することが重要です。RDMA通信中には、データパケットが損失なく正しい順序で宛先に到達することが不可欠です。パケットの損失や順序の乱れが発生した場合、ゴーバックNの再送信が必要となり、予想される後続のデータパケットはキャッシュに格納されてはなりません。

RoCEプロトコルでは、2つの段階からなる輻輳制御メカニズムを実装しています。まず、DCQCN(Datacenter Quantized Congestion Notification)を活用した初期段階での徐々の遅延制御が行われます。その後、PFC(Priority Flow Control)を利用した送信一時停止段階が続きます。これらは厳密には輻輳制御戦略とトラフィック制御戦略として分類されますが、一般的には輻輳制御の2つの段階と見なされています。

ネットワーク内での複数対1の通信の場合、輻輳が発生しやすく、スイッチのポート上の保留送信バッファメッセージの総サイズが急速に増加することがよく見られます。制御されていない状況では、バッファの飽和が起こり、パケットの損失が発生する可能性があります。したがって、初期段階では、スイッチがポートの保留送信バッファメッセージの合計サイズが特定の閾値に達したことを検出すると、RoCEデータパケットのIPレイヤーのECNフィールドをマークします。受信者はこのパケットを受け取ると、スイッチによってマークされたECNフィールドを観察し、送信元に対して輻輳通知パケット(CNP)を送信し、送信速度の低下を促します。

重要なことは、ECNフィールドの閾値に到達した場合、すべてのパケットがマークされるわけではないということです。このプロセスでは、KminとKmaxという2つのパラメータが役割を果たします。輻輳キューの長さがKmin未満の場合、マーキングは行われません。キューの長さがKminからKmaxの範囲にある場合、キューの長さが長くなるにつれてマーキングの確率が増加します。キューの長さがKmaxを超えると、すべてのパケットがマークされます。受信者は、受信したECNマーキングのあるパケットごとにCNP(Congestion Notification Packet)パケットを送信するのではなく、一定の時間間隔でCNPパケットを送信します。このアプローチにより、送信者は受信したCNPパケットの数に基づいて送信速度を調整することができます。CNPパケットの送信率を監視することで、送信者はネットワークの輻輳状態を把握し、送信速度を適切に調整することができます。

RoCE

ネットワークの輻輳が悪化し、スイッチが特定のポートの保留送信キューのキュー長がより高い閾値に達した場合、スイッチはメッセージの上流送信元に対してPause Flow Control(PFC)フレームを送信します。この動作により、スイッチ内の輻輳が緩和されるまでデータの送信が一時停止します。輻輳が解消されると、スイッチはPFC制御フレームを上流に送信して送信の再開を示します。PFCフロー制御は、異なるトラフィックチャネルでの一時停止をサポートし、各チャネルの帯域幅比率を全体の帯域幅に対して調整することができます。この設定により、一つのチャネルでのトラフィック送信を一時停止することができ、他のチャネルでのデータ送信には影響を与えません。

ROCE & Soft-RoCE

高性能イーサネットカードの領域では、RoCEプロトコルを採用している製品が多数存在しますが、一部のカードではサポートが提供されていない場合もあります。このギャップに対応するために、IBIV、Mellanoxなどの協力者による共同の取り組みにより、オープンソースのSoft-RoCEプロジェクトが生まれました。このイニシアチブは、RoCEプロトコルがサポートされていないノードに対応し、RoCE対応のカードを備えたノードとの通信にSoft-RoCEを活用することを可能にします(図で示されています)。これにより、前者の性能は向上しないかもしれませんが、後者は自身の性能能力を十分に活用することができます。特にデータセンターなどのシナリオでは、RoCE対応のイーサネットカードを搭載した高I/Oストレージサーバーに戦略的なアップグレードを行うことで、全体的な性能と拡張性を大幅に向上させることができます。さらに、RoCEとSoft-RoCEの組み合わせは、段階的なクラスターのアップグレードの要求にも適応し、同時の全面的なアップグレードの必要性を排除します。

RoCE

HPC環境でのRoCEの実装における課題

HPCネットワークの基本要件

FSによって示された通り、HPCネットワークは2つの基本的な前提条件に依存しています:①低レイテンシと②急速に進化するトラフィックパターンにおける低レイテンシを維持する能力です。

①低レイテンシに関しては、RoCEはこの問題に対処するために特別に設計されています。先の議論でも述べたように、RoCEはネットワーク操作を効率的にネットワークカードにオフロードすることで、低レイテンシとCPU利用率の削減を実現します。

②急速に変化するトラフィックパターンにおいて低レイテンシを維持するためには、主な焦点は輻輳制御に移ります。高度にダイナミックなHPCトラフィックパターンの複雑さは、RoCEにとって課題となり、この点で最適なパフォーマンスが得られないことがあります。