SHARDLP:分散GPUで1.185×10^9変数の線形計画を約10分で解く試み
この論文は、単一ノードのメモリに収まらない極めて大きな線形計画(LP)問題を、複数のGPUを使って分散的に解くシステム「SHARDLP」を紹介します。研究者たちは行列データと解の内部状態(プライマル・双対状態)を計算開始から出力まで分散保持することで、どの段階でも1台のノードに完全なコピーを置かない設計を採りました。その結果、公開ベンチマーク上で高い性能を示しました。
研究チームが使った基礎的な反復法はPDHG(primal–dual hybrid gradient、プライマル・双対ハイブリッド勾配法)です。PDHGは疎(まばら)な行列に対する行列–ベクトル積やベクトル演算が支配的で、これらはGPUに向いています。SHARDLPはMessage Passing Interface(MPI)でGPUごとにプロセスを割り当てて、行と列で二次元にデータを分割します。重要な設計点は「永続的シャーディング(persistent ownership)」で、単に行列積だけを分散するのではなく、その後のスケーリング、再起動、復元、出力まで同じ分割を維持する点です。入力データからのシャード作成はオフラインで行い、その作成時間は計測から除外しています。
評価はGoogleのPDLPベンチマーク(11件)を主に使いました。SHARDLPはこの基準を11件中9件で満たしました(従来のCPUベースのPDLP研究は8件)。最大インスタンスは1.185×10^9(1.185 billion)変数、6.338×10^9非ゼロ係数を持つ問題で、8台のH200 GPUが最適化処理を約9.9分で終えました(論文中のテーブルではソルバー時間592.6秒、エンドツーエンドで933.4秒と報告)。同じ問題に対する公開済みのCPU実験は別のハードウェア上で21.06時間でしたが、論文はハードウェアが異なる点を明記しています。さらに別の検証では、最大で13.604×10^9変数と40.807×10^9非ゼロを持つ問題を、最大76 GPU(29ノード)で解く例も示しています。
分散化で大きな障害になるのが通信コストです。SHARDLPは列ごとにデータを分割する場合に「サポート認識通信(support-aware communication)」を導入しました。これはある行に対して係数を持たないGPUへの通信を省く方法です。Design Matchという2.76×10^9非ゼロの問題では、モデル上の通信量を92.97%削減し、ソルバー時間を約1.27倍〜1.52倍速くする効果が報告されています。ただし、通信の効果は問題の疎性(どの程度ゼロが多いか)と分割の仕方に左右されます。
なぜこの仕事が重要かというと、大きなLP問題は交通網の最適化や大規模配分計画など多分野で現れ、従来は単一ノードのメモリやCPUの限界で扱えないことが多かったためです。PDHGのような一次法に着目してGPU向けに設計を最適化すると、行列因子分解に依存する方法よりも分散や並列化がしやすくなります。SHARDLPは「行列と解の状態を常に分散して保持する」ことで、単一ノードのメモリ上限に縛られずに大規模問題に取り組める点を示しました。
重要な注意点もあります。一般的な事前処理(presolve)は無効にしており、入力モデルからのシャード作成はオフライン処理で時間計測から外されています。また、公開CPUとの比較は異なるハードウェアでの結果を含むため、単純な速度比較は慎重に行う必要があります。さらに、すべてのベンチマークで目標基準を満たしたわけではなく、通信がスピードアップを打ち消す場面もあるため、実運用ではクラスタの構成や問題の構造に応じた設定が重要になります。