# 非対称NUMAインターコネクト ## 定義 非対称NUMAインターコネクトとは、NUMA(Non-Uniform Memory Access)システムを構成するノード間の相互接続リンクが、リンク幅(帯域幅)・方向性(単方向か双方向か)・共有関係(1本のリンクを何ノードが共有するか)のいずれかにおいて均一でない性質を指す。従来のNUMA最適化手法(スレッド・メモリの局所配置、ホップ数最小化のロードバランシング)は、任意のノード対間のリンクが同一の帯域幅・レイテンシを持つという「対称インターコネクト」を暗黙に仮定してきたが、現代の商用x86 NUMAシステムはこの仮定を満たさない。(Source: [[@2015__ATC__Thread and Memory Placement on NUMA Systems - Asymmetry Matters]]) ## 横断的知見 - **非対称性の影響はレイテンシよりも帯域幅に強く現れ、両者は独立に評価する必要がある**。[[@2007__PDCS__Impact of NUMA Effects on High-Speed Networking with Multi-Opteron Machines]](Moreaud & Goglin, 2007)は2ソケットOPTERON/HYPERTRANSPORTマシンで、近接/遠隔ノード間のレイテンシ差はホップあたり約40nsと小さい一方、帯域幅は最大40%低下すると報告した。[[@2015__ATC__Thread and Memory Placement on NUMA Systems - Asymmetry Matters]](Lepers+, 2015)は8ノードのより新しい世代のOPTERON(Bulldozer)マシンでこの知見を追認・拡張し、レイテンシ差とスレッド配置による性能差が強く相関する一方(Figure 3)、最良の配置を決めるのはホップ数ではなく総帯域幅であることを明示的に定式化した。2つの独立した研究世代・スケール(2ソケット対8ソケット)で、「NUMAの非対称性は帯域幅指標で捉えるべきであり、レイテンシやホップ数だけでは不十分」という結論が一致している。(Source: [[@2007__PDCS__Impact of NUMA Effects on High-Speed Networking with Multi-Opteron Machines]], [[@2015__ATC__Thread and Memory Placement on NUMA Systems - Asymmetry Matters]]) - **「最初の1ホップを超えた追加ホップは性能に影響しない」という2007年の知見は、より複雑な8ノード世代でも部分的に成立するが、非対称性の種類が増えたことで例外(2ホップが1ホップより速い)も生じている**。Moreaud & Goglin(2007)は8ソケットマシン(Hagrid)で、近接/遠隔の境界を越えた時点で性能が低下するが、それ以上ホップ数を増やしても追加の劣化は生じないと報告した。Lepers+(2015)のTable 1(streamcluster、machine A)は、この一般化が完全には成立しないことを示す——ノードペアの選び方次第で2ホップ構成が1ホップ構成より高速になるケースがあり(太字箇所)、その決定要因はやはり帯域幅である。世代が進みリンク幅・共有関係・単方向性の組み合わせが複雑化したことで、「ホップ数」という単純な距離指標の説明力がさらに低下したと解釈できる。(Source: [[@2007__PDCS__Impact of NUMA Effects on High-Speed Networking with Multi-Opteron Machines]], [[@2015__ATC__Thread and Memory Placement on NUMA Systems - Asymmetry Matters]]) - **非対称性への対応策は「自動配置ミドルウェア」という共通パターンを取るが、対象読者(ネットワーク通信 vs. インプロセススレッド)によって実装レイヤーが異なる**。Moreaud & Goglin(2007)はNEWMADELEINEミドルウェアにHyperTransportトポロジ情報を組み込み、ネットワーク通信タスクとバッファをNIC近接のNUMAノードへ自動配置する。Lepers+(2015)のAsymSchedはユーザレベルプロセスとしてLinuxスケジューラの外側で動作し、ハードウェアカウンタに基づきスレッドクラスタとメモリページを帯域幅最大化の観点で動的に再配置する。前者は静的トポロジ情報に基づく初期化時の一括配置、後者は実行時の継続的な再配置という点で対応の粒度が異なるが、いずれも「OSの既定スケジューリング/配置だけでは非対称性に対応できない」という共通の出発点を持つ。(Source: [[@2007__PDCS__Impact of NUMA Effects on High-Speed Networking with Multi-Opteron Machines]], [[@2015__ATC__Thread and Memory Placement on NUMA Systems - Asymmetry Matters]]) ## 未解決の問い - [[@2007__PDCS__Impact of NUMA Effects on High-Speed Networking with Multi-Opteron Machines]]が発見したRDMA/DMA書き込み時の送受信非対称効果(書き込み先バッファの配置のみが重要)は、Lepers+(2015)のCPU-to-CPU/CPU-to-メモリ通信でも同様の方向依存性を持つか。AsymSchedは読み書きを区別せず単一の通信量カウンタで測定しており、この論文単体では検証できない。 - AsymSchedのヒューリスティック(帯域幅の等価な配置のハッシュ化による重複排除)は、Moreaud & Goglinが示したような、より複雑な非対称性(単方向リンク、複数ノード共有リンク)を持つ将来のシステムでもどこまでスケールするか。 - 非対称インターコネクトを持つシステムでのIntel系プロセッサ(QuickPath/UPI)の挙動は、AMD HyperTransport系の知見(2論文とも)とどこまで共通するか。両論文とも評価はAMD Opteron系に限定されている。 - CXLメモリ([[NUMAメモリ配置]]で扱うCPUレスNUMAノード)が一般化した場合、非対称インターコネクトの概念はCXLスイッチ・ファブリックのトポロジにも同様に適用できるか。CXL特有の非対称性(スイッチ経由かダイレクト接続か)は未検証。 ## 関連 - [[NUMAメモリ配置]] — 局所/遠隔メモリ配置というNUMAの基礎概念。非対称インターコネクトはその上に「リンクごとの帯域幅差」という追加次元を持ち込む。 - [[NUMA対応CPUピニング]] — GPU推論基盤でのNUMA対応ピニング。本概念はスレッド・メモリの動的再配置という、より一般のCPU/メモリワークロード向けの対応策を扱う。 - [[@2015__ATC__Thread and Memory Placement on NUMA Systems - Asymmetry Matters]] — 非対称インターコネクトを定式化し帯域幅最大化アルゴリズムAsymSchedを提案した一次資料。 - [[@2007__PDCS__Impact of NUMA Effects on High-Speed Networking with Multi-Opteron Machines]] — HyperTransportの非対称効果をネットワーク通信の文脈で先行して定量化した一次資料。 ## 出典 - [[@2015__ATC__Thread and Memory Placement on NUMA Systems - Asymmetry Matters]](§2 The Impact of Interconnect Asymmetry on Performance、§3 Architectural trends、§4 Solution) - [[@2007__PDCS__Impact of NUMA Effects on High-Speed Networking with Multi-Opteron Machines]](§3〜4、HyperTransportホップあたりのレイテンシとDMA/RDMA書き込みの非対称帯域低下)