← 最新の論文
💻 computer science

Concurrent Scheduling of High-Level Parallel Programs on Multi-GPU Systems

本論文は、マルチGPUシステムにおけるSYCLプログラムのクリティカルパスから複雑なメモリおよび通信解析を排除するために、Celerityランタイム内での命令グラフスケジューリングを導入するものであり、これにより並行実行と最適化されたメモリ割り当てを可能にし、最大128基のGPUにわたる強力なスケーリングを実現する。

原著者: Peter Thoman, Fabian Knorr, Philip Salzmann

公開日 2026-09-14
📖 1 分で読めます☕ さくっと読める

原著者: Peter Thoman, Fabian Knorr, Philip Salzmann

原論文は CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

現代のスーパーコンピュータは、単に数十年前の機械を高速化したものではありません。それらは、数千もの特化したプロセッサが共に働く広大な集合体です。これらの巨大なシステムを最大限に活用するために、科学者たちは、計算のどの部分をどのプロセッサに割り当て、データをどのように移動させるかを自動的に決定できるソフトウェアに頼っています。これは困難な作業です。なぜなら、ソフトウェアは実際の作業を遅らせることなく、メモリと通信を管理しなければならないからです。もしシステムが、データの配置場所や一貫性を保つ方法を判断することに時間を費やしすぎれば、強力なプロセッサはアイドル状態(待機状態)になり、エネルギーと時間を無駄にしてしまいます。課題は、コンピュータが「考える」ために停止することのないよう、十分に素早くこれらの決定を下し、仕事の流れを川の流れのようにスムーズに保つことです。

インスブルック大学の研究者たちは、多くのグラフィックス・プロセッシング・ユニット(GPU)を備えたシステムにおける、このスケジューリング問題を処理するための新しい手法を開発しました。これらのチップは大量の並列作業を処理するように設計されていますが、数百ものチップを調整するには洗練されたマネージャーが必要です。研究チームは、「インストラクション・グラフ・スケジューリング(命令グラフスケジューリング)」と呼ばれる手法を導入しました。これは、コンピュータが行う必要のあるあらゆる操作の詳細な低レベルの地図として機能します。各ステップが必要になるたびにその場で決定を下す代わりに、このシステムは、メモリ割り当て、データ転送、および実際の計算を含む完全な計画を構築します。この計画は、コンピュータがすでに前のタスクに取り組んでいる間に生成されるため、現在の流れを中断することなく、次のステップを予測して準備することを実質的に可能にします。

このアプローチの核心は、ソフトウェアが仕事をどのように捉えるかという視点の転換にあります。以前は、システムは高レベルのタスクリストを生成し、メモリのコピーといった具体的な詳細は、実行するタイミングになって初めて決定していました。これは、計算の途中でシステムが依存関係を分析するために停止しなければならないため、しばしば遅延を引き起こしていました。新しい手法は、メモリの特定のブロックの割り当てや、隣接するプロセッサへの小さなデータの送信といった、各タスクを最小単位のコンポーネントへと分解します。これらの小さなステップを単一の相互接続されたグラフとして配置することで、システムはどのステップが同時に実行できるかを正確に把握できます。これにより、コンピュータは計算と通信をオーバーラップ(重複)させることができ、つまり、一方の完了を待ってからもう一方が始まるのではなく、チップが数値を計算している間にプロセッサ間でデータが移動することを可能にします。

このアイデアをテストするために、研究者たちは、GPUクラスター上で複雑なシミュレーションを実行するように設計された「Celerity」というソフトウェア・フレームワークに彼らのシステムを統合しました。彼らは、標準的なバージョンと比較して新しいスケジューラーがどの程度性能を発揮するかを確認するために、3つの異なる科学アプリケーションを実行しました。一つのアプリケーションは数十億の粒子の間の重力相互作用をシミュレートし、もう一つは音が部屋の中でどのように跳ね返るかをモデル化し、三つ目は波が媒体の中をどのように移動するかを追跡しました。それぞれのケースにおいて、彼らはプロセッサの数を増やしたときにプログラムがどれだけ速くなったか、すなわち「強いスケーリング(strong scaling)」を測定しました。結果は、新しいアプローチが、特にプロセッサの数が増えるにつれて、標準的なシステムを一貫して上回ったことを示しました。128個のGPUを備えたシステムでは、新しいスケジューラーによって、部屋のシミュレーション・アプリケーションは旧来の手法よりも2倍以上速く動作し、粒子シミュレーションにおいても大幅な速度向上が見られました。

この研究における主要な革新は、「スケジューラー・ルックアヘッド(スケジューラーによる先読み)」と呼ばれる技術であり、これはメモリ使用量に関連する特定の問題を解決します。多くのシミュレーションでは、プログラムが保存する必要のあるデータ量がステップごとに変化することがあります。これらの変化を予測する方法がないと、ソフトウェアは小さなメモリブロックを割り当てたものの、直後にそれが小さすぎると判明し、より大きな領域を割り当ててすべてのデータをコピーし直さなければならないという事態に陥ります。このリサイズ(再構成)プロセスは低速であり、貴重な時間を浪費させます。新しいシステムは、今後のタスクを先読みして、メモリ要件が増加しているかどうかを確認します。もしデータサイズが増大するというパターンを検知した場合、システムは最終的に必要なサイズが判明するまでメモリの割り当てを待ち、コストのかかるリサイズ工程を完全に回避します。これは、データが着実に増大していくアプリケーションにおいて特に効果的であり、システムが一度に正しい量のメモリを割り当てることを可能にします。

研究者たちはまた、計画を行う作業と実行を行う作業を分離したシステム・アーキテクチャも構築しました。彼らは、詳細なインストラクション・グラフを構築することのみを担当する専用のスレッド、つまり別の実行ラインを作成しました。一方で、他のスレッドはGPU上での命令の実際の実行を処理します。この分離により、次のステップを計画するプロセスが、現在のステップの実行を妨げることがなくなります。これら二つのプロセスは並行して動作し、プランナーからエグゼキューター(実行器)へと命令を渡す合理化されたキューを通じて通信します。この設計は、システムが待機に費やす時間を最小限に抑え、GPUが次に何をすべきかをソフトウェアが考えている間にアイドル状態になるのではなく、有用な作業で常に満たされている状態を保証します。

実験は、数千のプロセッサと高速な接続を備えたイタリアのレオナルド・スーパーコンピュータ上で実施されました。チームは、彼らの知見が実用的なシナリオにおいても有効であることを確認するために、現実世界の科学コードを使用しました。彼らは、新しい手法が、保存できるデータの基本限界や問題の大きさを変えるものではないものの、その作業の分配効率を大幅に改善したことを見出しました。改善は、データアクセス・パターンが複雑であったり変化したりするアプリケーションにおいて最も顕著であり、システムが通信やメモリ管理に費やす時間をより良く隠蔽(ヒド)できたためです。計算ステップが非常に短いアプリケーションに対しては、新しいスケジューラーはオーバーヘッドを軽減し、大量のプロセッサを使用してもシステムが効率的にスケーリングし続けられるようにしました。

この研究は、スーパーコンピュータの内部ロジスティクスを管理する方法が、ハードウェア自体の生のパワーと同じくらい重要であることを証明しています。スケジューリングという重い処理をクリティカルパスから外して並列プロセスへと移すことで、研究者たちは、これらの巨大なマシンをピーク効率で稼働させ続けることが可能であることを示しました。インストラクション・グラフのアプローチは、現代の並列プログラムに存在する複雑な依存関係のネットワークを可視化し管理する方法を提供し、かつてはボトルネックであったものを、スムーズなパイプラインへと変貌させました。スーパーコンピュータがその規模と複雑さを増し続ける中で、このような技術は、科学者が投資の成果を最大限に引き出し、以前は大きすぎたり遅すぎたりした問題を解決できるようにするために不可欠となるでしょう。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →