# An In-Depth Analysis of the Slingshot Interconnect
> [!abstract] 概要
> インターコネクトは大規模計算システムで最も重要な構成要素の一つであり、アプリケーション性能への影響はシステム規模とともに増大する。本論文では、大規模計算システム向けのインターコネクトネットワークである SLINGSHOT を説明する。SLINGSHOT は高基数スイッチに基づき、エクサスケールおよびハイパースケールのデータセンターネットワークを、スイッチ間ホップ高々 3 で構築できる。加えて SLINGSHOT は、効率的な適応ルーティングと輻輳制御アルゴリズム、および高度に調整可能なトラフィッククラスを提供する。SLINGSHOT は最適化した Ethernet プロトコルを用い、標準の Ethernet デバイスと相互運用できるうえで、HPC アプリケーションに高い性能を提供する。本論文は、SLINGSHOT がこれらの特徴をどこまで提供するかを、マイクロベンチマーク、データセンターおよび AI 分野の複数のアプリケーション、ならびに HPC アプリケーションで評価して分析する。その結果、SLINGSHOT 上で動くアプリケーションは、前世代のネットワークに比べて輻輳の影響を受けにくいことが分かった。
## 論文情報
- 題名: An In-Depth Analysis of the Slingshot Interconnect
- 著者: Daniele De Sensi・Salvatore Di Girolamo(ETH Zurich)/ Kim H. McMahon・Duncan Roweth(Hewlett Packard Enterprise)/ Torsten Hoefler(ETH Zurich)
- 会議: SC20(International Conference for High Performance Computing, Networking, Storage and Analysis)、2020 年 11 月、DOI 10.1109/SC41405.2020.00039。arXiv 版は無い。
- 原本: PDF 14 ページ(`.raw/papers/An-In-Depth-Analysis-of-the-Slingshot-Interconnect.pdf`)
## 概要
Cray(現 HPE)の Slingshot は、米国の 3 つのエクサスケールシステムを含む多数のスーパーコンピュータに採用されるインターコネクトである。本論文は、Slingshot のスイッチ・トポロジ・ルーティング・輻輳制御・QoS を解説したうえで、初めて広範な実機評価を示す。中心は、加害者(aggressor)が起こす輻輳が被害者(victim)アプリケーションに与える影響である。前世代の Aries に比べて輻輳耐性が桁違いに高いことを、HPC・データセンター・AI のアプリケーションと通信マイクロベンチマークで示す。
## 問題設定
- HPCG の性能は HPL の約 1/50 に留まり、その一因は通信集約度の高さにある。インターコネクトの影響はシステム規模とともに増す。
- データセンターと HPC と AI の収束が進み、外部とのデータ交換に標準 Ethernet との互換性が要る。データセンターの多くのワークロードは、平均ではなくテール遅延に敏感である。
- 他のアプリケーションと共有するネットワークが生む干渉(ネットワークノイズ)が、グローバル同期や小メッセージの多いアプリケーションのテール遅延を悪化させる。
- 既存の輻輳制御(ECN や QCN)は、大きく安定した象フロー向けであり、バースト的な HPC ワークロードには脆く調整も難しい。制御ループが長く、収束するまでに加害トラフィックが他を妨げる。
## 提案手法
Slingshot の構成を 6 つの層で述べる。
**Rosetta スイッチ** は 64 ポート × 200 Gb/s(各ポートは 56 Gb/s の SerDes を PAM-4 で 4 レーン。FEC のオーバーヘッドで実効 50 Gb/s/レーン)、TSMC 16nm、消費電力最大 250 W である。32 個のタイルが 4 行 × 8 列に並び、1 タイルが 2 ポートを扱う。同じ行のタイルは 16 本の行バスで、同じ列のタイルは列ごとのタイル内クロスバー(16 入力 8 出力)で結ばれ、パケットは高々 2 ホップで出力ポートに届く。64 ポート用の調停器を持たず、16 対 8 の調停だけで済む。
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig1-rosetta.png]]
図1(Figure 1): ROSETTA スイッチのタイル構造
クロスバーは機能別の物理クロスバーに分かれる。送信要求(request to transmit)、送信許可(grant)、データ(48B 幅)、要求キューのクレジット、エンドツーエンド Ack である。仮想出力キュー方式で経路を先に決め、出力側の許可を得てから転送するので、ヘッドオブラインブロッキングが起きない。大きなデータ転送が要求や許可を遅らせないことも、物理分離で保証する。要求と許可は QoS 管理の中心でもある。
**トポロジ** は既定でドラゴンフライである。1 スイッチが 16 エンドポイントを銅ケーブル(最長 2.6 m)で収容し、残り 48 ポートをスイッチ間に使う。グループ内は全結合(銅)、グループ間は全結合(光、最長 100 m)で、直径は 3 ホップである。最大構成ではグループあたり 32 スイッチ(512 ノード)、グループ内 31 ポート、グローバル 17 ポートで、545 グループ・279 040 エンドポイントとなる。アドレス方式の制約で実際は 511 グループ・261 632 ノードである。
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig3-topology.png]]
図3(Figure 3): SLINGSHOT のトポロジ(64 ポートスイッチで組める最大の 1 次元ドラゴンフライ)
**適応ルーティング** は、送信元スイッチが最大 4 本の最短・非最短経路の負荷を推定し、輻輳と経路長の両方で最良の経路を選ぶ。輻輳は出力ポートごとの要求キューの総深さで推定し、チップ内はリングで配り、隣接スイッチ間は Ack に相乗りさせる。オーバーヘッドは順方向のパケット 1 個あたり逆方向に平均 4 バイトである。非最短経路は平均ホップ数とリンク利用率を増やすので、最短経路を選びやすくなるバイアスを掛ける。
**輻輳制御** は、エンドポイント輻輳(最終ホップのスイッチで起きる)と中間輻輳(ネットワーク内に散る)を区別する。適応ルーティングは中間輻輳を迂回できるが、エンドポイント輻輳は全経路に同様に効くので避けられない。Slingshot は全エンドポイント対の飛行中パケットをハードウェアで追跡し、輻輳の被害側と加害側を区別して、加害側にだけ強く速い背圧を掛ける。同じジョブの中で輻輳に関与しないストリームや、他のジョブは絞られない。バッファが空くので、ネットワーク全体でヘッドオブラインブロッキングを避けられる。
**QoS** はトラフィッククラスとして実現する。優先度、順序保証の要否、最小・最大帯域、損失の有無、ルーティングのバイアスを管理者が調整できる。輻輳制御とは直交する概念である。バッファ量を食う高価な資源なので、1 クラスを複数のアプリケーションが共有し、クラス内では輻輳制御が要る。パケット単位で割り当てられ、MPI では環境変数で指定する。DSCP タグで判別し、スイッチが仮想キューに振り分ける。ライブラリがメッセージ単位で切り替えることもでき、例えば Barrier や Allreduce は高優先度・低帯域のクラスへ、バルクの 1 対 1 通信は高帯域・低優先度のクラスへ割り当てられる。
**Ethernet の拡張とソフトウェア** では、標準 Ethernet と互換を保つ。最小フレームを 64B から 32B に縮め、Ethernet ヘッダ無しの IP パケットを許し、パケット間ギャップを除く。FEC、リンク層信頼性(LLR)、レーン縮退、NIC のエンドツーエンド再送で耐障害性を得る。ポートごとに拡張機能を交渉し、パケット粒度で拡張と標準のトラフィックを混在させられる。HPC 通信は RoCEv2 に載り、パケットは最大 4 KiB のデータに 62 バイトのヘッダとトレーラが付く。Cray MPI は MPICH 由来で MPI-3.1 を実装し、libfabric 経由で他の MPI も動く。
## 新規性
- Slingshot の初めての広範な実機評価である。GPCNet 論文は Slingshot の予備結果を示したが、被害者の種類・メッセージサイズ・配置・比率を固定していた。本論文はそれらを網羅的に振り、実アプリケーションと通信マイクロベンチマークの両方で評価する。
- 加害・被害の分類と輻輳影響 C = Tc / Ti の定義は GPCNet に従い、Aries との同条件比較で、輻輳制御の効果を具体的な数値に落とす。
- 輻輳制御とトラフィッククラスが直交することを、実験で切り分けて示す。
## 実験設定
3 つのシステムを使う。CRYSTAL は Aries を使う 698 ノード(2 グループ)、MALBEC は 484 ノードの Slingshot(4 グループ、グループ間リンク 48 本)、SHANDY は 1 024 ノードの Slingshot(8 グループ、グループ間リンク 56 本、ノードあたり NIC 2 枚)である。いずれも専有で使い、他のユーザの干渉を除く。NIC は Mellanox ConnectX-5(100 Gb/s、RoCE)で、スイッチ単体の効果を切り出す。
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig7-allocation.png]]
図7(Figure 7): 被害者・加害者ノードの配置(線形・インターリーブ・ランダム)
加害者は GPCNet のコードで生成する。エンドポイント輻輳は多対一の incast(MPI_Put)、中間輻輳は all-to-all(MPI Sendrecv)で、どちらも 128 KiB メッセージである。被害者は HPC(MILC、HPCG、LAMMPS、FFT)、AI(resnet-proxy)、データセンター(Tailbench の Silo・Sphinx・Xapian・Img-dnn)の各アプリケーションと、MPI の各操作および ember(halo3d・sweep3d・incast)である。被害者と加害者の比率は約 90/10・50/50・10/90 で、配置は線形・インターリーブ・ランダムを試す。ベンチマークは 95% 信頼区間が中央値の 5% 以内になるまで、最低 200 回・4 秒実行する。
## 実験結果
**静穏時の性能** はスイッチ遅延が平均・中央値とも 350 ns(分布は 300〜400 ns)で、ノード間の距離による差は小さい。最悪でも 8B メッセージの遅延で 40%、16 KiB 以上では遅延差が 10% 未満、帯域差は全サイズで 15% 未満である。この結果は低直径のトポロジによる。1 024 ノードの二分割帯域は理論ピーク 6.4 Tb/s、MPI_Alltoall は理論 12.8 Tb/s の 90% 超に達し、パケット損失は無い。
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig2-latency.png]]
図2(Figure 2): RoCE トラフィックに対するスイッチ遅延の分布
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig4-distance.png]]
図4(Figure 4): 孤立したシステムでのノード間距離別の遅延と帯域
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig5-rtt.png]]
図5(Figure 5): メッセージサイズとソフトウェア層ごとの片道遅延(RTT/2)
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig6-bisection.png]]
図6(Figure 6): SHANDY 全 1 024 ノードでの二分割帯域と MPI_Alltoall 帯域
**Tailbench** は、Aries では incast 加害者(10/90、線形配置)の下で Silo・Xapian・Img-dnn が大きく劣化し、テール遅延も増す。Slingshot では顕著な影響が無い。Sphinx は通信対計算比が低いので劣化が小さい。
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig8-tailbench.png]]
図8(Figure 8): Tailbench アプリケーションの時間分布(エンドポイント輻輳の有無別)
**輻輳影響のヒートマップ** では、線形配置での最悪値が Aries で 93 倍、Slingshot で 1.3 倍である。加害者の比率が増えるほど、また小メッセージほど影響が大きい。アプリケーションでは、Aries で LAMMPS が incast(50/50)により 17 倍遅くなる。all-to-all による中間輻輳は、適応ルーティングが迂回するので、どちらのシステムでも顕著な影響を出さない。
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig9-heatmap.png]]
図9(Figure 9): 被害者と加害者の組合せごとの輻輳影響(ヒートマップ)
**分布の比較** では、512 ノード・1 PPN の Aries の輻輳影響が線形配置で最大 92、インターリーブ・ランダムで 144〜154 であり、Slingshot はほとんどの場合 2 未満(最大 2.3)である。加害者を 24 PPN に増やすと Aries のランダム配置が 424 まで悪化し、Slingshot の最大は 2.6 で、比は約 200 倍である。ノード数を 128 に減らすと Aries は最大 40、Slingshot は 1.5 になる。1 024 ノード全体でも、Slingshot の最悪値は LAMMPS が incast(75%)で受ける 3.55 倍に留まる。
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig10-violin.png]]
図10(Figure 10): 配置・ノード数・PPN ごとの輻輳影響の分布
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig11-shandy.png]]
図11(Figure 11): SHANDY 全 1 024 ノードでの輻輳影響
**バースト輻輳** では、128B の MPI_Alltoall を被害者、incast を加害者にして、バーストのサイズと間隔を振る。小メッセージは輻輳をほとんど生まず、大メッセージでは輻輳制御が確実に働く。中サイズでは輻輳制御が検知するまでの間に輻輳が溜まり、影響が最大 1.21 まで増える。バーストが大きく間隔が短いほど影響が強い。10⁶ メッセージのバーストは持続輻輳と差が無い。
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig12-burst.png]]
図12(Figure 12): 128B の MPI_Alltoall に対する incast 輻輳の影響(メッセージサイズ・バースト長・間隔別)
**トラフィッククラス** では、MALBEC で帯域を 25% に絞り、64 ノード・16 PPN のインターリーブ配置で、8B の MPI_Allreduce と 256 KiB の MPI_Alltoall を同居させる。同じクラスでは Allreduce の輻輳影響が 2.85 であり、別クラスでは 1.15 に下がる。2 つの二分割帯域テストで、TC1 に最小 80%、TC2 に最小 10% を設定すると、2 番目のジョブは 20% を得る。TC1 のジョブは 80% に落ち、未配分の 10% は帯域シェアの小さい TC2 に動的に配られる。
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig13-allreduce-tc.png]]
図13(Figure 13): トラフィッククラスの有無での 8B MPI_Allreduce の輻輳影響
![[_attachments/An-In-Depth-Analysis-of-the-Slingshot-Interconnect/fig14-bandwidth-tc.png]]
図14(Figure 14): 同一クラスと別クラスで動く 2 つの二分割帯域テストの性能
## 考察
- 適応ルーティングは中間輻輳を吸収し、輻輳制御はエンドポイント輻輳を吸収する。両者を併せて、割り当てポリシーの影響がほとんど消える。
- 「Aries が悪い」ことの主張ではなく、被害者アプリケーション・配置・比率を振った全体の分布が、輻輳制御の安定性の証拠である。
- 関連研究の整理では、InfiniBand(Mellanox)は輻輳制御が調整の難しさゆえ大規模の本番で使われにくく、Ethernet との相互運用にゲートウェイが要る。Aries は 81.6 Gb/s/ノード、TofuD は 300 Gb/s/ノードの 6D メッシュ/トーラスである。SlimFly・Megafly・HyperX・Jellyfish・Xpander などの低直径トポロジは、経路が乏しく ECMP が効かず、ルーティングの展開が難しいために普及していない。
- Slingshot は、エンドツーエンド輻輳制御、トラフィッククラスの柔軟性、Ethernet とのネイティブな相互運用、順序を守る RoCE トラフィックでも高いネットワーク利用率を出す適応ルーティングを、次世代システムの参照仕様として挙げる。
## 強み / 弱点・課題
- 強み: 加害・被害の組合せを網羅し、線形・インターリーブ・ランダムの各配置と、1 PPN と 24 PPN、512 ノードと 128 ノードと 1 024 ノードで傾向を確認している。統計的に厳密な測定手順を守っている。
- 強み: 輻輳制御と QoS を切り分けて評価している。
- 弱点: 比較相手が Aries だけで、システム規模・CPU が異なる。論文は MALBEC で規模を揃えた比較を補っている。
- 弱点: 200 Gb/s の NIC が無く、100 Gb/s の ConnectX-5 で測っているので、Slingshot 固有の Ethernet 拡張(最小フレーム縮小など)の効果は測れていない。
- 弱点: 全システムを専有して測っており、本番運用で他のジョブが混在する状況の実測ではない。MILC と HPCG は 2 のべき乗のノード数でしか動かず、25/75 の比率に欠損がある。
- 弱点: 中サイズのメッセージのバーストでは、輻輳制御が反応するまでの遅れがあり、影響が 1.21 まで出る。