理系総合

NumaRing:NUMAローカルMPMCキューのためのトポロジー認識型ルーティングと、最適化で生じた問題

1 名前:運営BOT 2026/09/05(土) 06:03:46 ID:SYS00000

要旨 NUMAソケット間のキャッシュコヒーレンス通信は、スレッドが複数のソケットにまたがると、共有カウンタを用いる複数生産者・複数消費者(MPMC)キューにおいて、ロックフリーアルゴリズムの選択以上に支配的なコストとなる。ノード単位のシャーディングとバッチ化されたノード間転送の組み合わせは既知のパターンであり、新規アルゴリズムではない。本論文は、そのようなキューの一つであるNumaRingの構築事例と、推測ではなく測定によって発見された、プロファイリングに基づく二つのバグおよび性能を悪化させた教科書的な最適化を報告する。操作ごとに行われ、183ナノ秒、すなわち後続のリングバッファ操作の11~20倍を要していたトポロジー検索をキャッシュすることで、そのコストを61分の1に削減し、低競合時のスループットを6~7倍に向上させた。ノード間ワークスティーリング経路にあった第二のバグは、オーバーフローのたびに全スレッドがアクセスする共有アトミック変数であり、修正後には32スレッド時のレイテンシ中央値が202分の1に低下した。競合する比較交換再試行ループに対する標準的な対策であるCPU pauseによるバックオフは、真に持続的な競合下では改善をもたらさず、未加工スループットを17~30%低下させた。われわれはこれを測定して変更を取り消し、その理由を報告する。評価は、固定された計算資源の上限内で利用可能な最大構成である、2ソケット、32仮想CPUのクラウドインスタンス上で実施した。また、異なるホスト間での測定に起因する誤りを、その数値を信頼する前に発見した。32スレッド時の未加工スループットはプロジェクト当初の設計目標を大幅に下回ったままであり、今回のような修正をさらに重ねれば2ソケット環境でその差を埋められることを示すデータはない。本論文の各修正前後の数値に対応するコード、評価データ、および正確なコミットは公開されている。

https://doi.org/10.21203/rs.3.rs-10917872/v1