MPIチェックポイントの新しい時代
MPIにおけるチェックポイントの新しいアプローチが効率を向上させ、使いやすさを高める。
― 1 分で読む
目次
MPI(メッセージパッシングインターフェースの略)は、クラスターコンピュータでの並列計算で広く使われてるんだ。MPIを使う上で重要な側面の一つがチェックポイント。チェックポイントは、コンピュータプログラムの状態を保存して、後で再開できるようにする方法で、特に時間とリソースがかかる長いタスクに役立つんだ。
この記事では、MPIでのチェックポイントをもっと効率的で使いやすくする新しいアプローチに焦点を当ててる。目標は、さまざまなネットワークシステムでうまく機能して、パフォーマンスに与える影響を最小限に抑える方法を作ること。
以前のチェックポイント法の課題
これまで、MPIの透明なチェックポイントを実装するのには大きな課題があった。初期の技術には主に二つの問題があった:
特定のネットワーク技術への依存:多くのチェックポイント法が特定のネットワークタイプに大きく依存してたから、新しいネットワークが開発されたときに柔軟性が欠けてた。
高い実行時オーバーヘッド:既存の多くの方法が実行中にかなりの遅延を引き起こしてた。つまり、チェックポイントを適用してる間、アプリケーションの全体的なパフォーマンスが大きく影響を受けてた。
2019年に大きな進展があり、最初の問題をスプリットプロセスという技術で解決したけど、実行時オーバーヘッドの二番目の問題は最近の開発まで障害のままだった。
新しいチェックポイントアプローチ
新しいチェックポイントアルゴリズムは、MPIでの同期のための安全なポイントを決定するためにトポロジカルソートという方法を使ってる。この方法は、MPIでのブロッキングおよびノンブロッキングの集団通信の両方に対応できるように設計されてる。
新しいアプローチの主な特徴
効率性:新しい方法では、通常0%から5%の低い実行時オーバーヘッドを維持してる。これは以前の方法に比べてかなりの改善。
実用性:チェックポイントが透明なので、開発者はアプリケーションに変更を加える必要がない。これで多くのMPIユーザーにとって魅力的。
スケーラビリティ:このアプローチは様々なアプリケーションやシナリオでテストされてて、効果的にスケールする能力を示してる。
実世界のアプリケーションとテスト
新しいチェックポイント法は、計算材料科学で広く使われているVASPを含む5つの実世界のアプリケーションでテストされた。VASPはその複雑さと集団操作の多用のため、以前はチェックポイントを行うのが難しいとされてた。
パフォーマンス評価
チェックポイントシステムのパフォーマンスはさまざまなベンチマークを通じて評価された。結果は、新しい方法が良好に機能しただけでなく、古い方法に比べて実行時オーバーヘッドを大幅に削減したことを示してる。
パールマターのスパコンでのテスト中、VASPの実行時オーバーヘッドは約5.2%だけだった。これは、しばしば10%を超えていた以前の方法に比べてかなりの減少を示している。これは新しいアルゴリズムが高需要のアプリケーションに対してかなり効果的であることを示している。
MPIの背景
新しいチェックポイント法の重要性を理解するには、MPIがどのように機能するかを知ることが必要。MPIは、メッセージを送受信するプロセスで構成されてる。各プロセスにはユニークなランクがあって、ポイント・トゥ・ポイントの通信や集団操作ができる。
MPI操作の種類
ポイント・トゥ・ポイント操作:2つのプロセス間での直接通信を含む。メッセージの送受信がその例。
集団操作:複数のプロセスが同時にタスクに取り組むことを含む。メッセージのブロードキャストや、さまざまなプロセスからデータを集めることがその例。
集団操作は、科学計算での複雑な計算にしばしば使われるから、特に重要。
効率的なチェックポイントの重要性
MPIアプリケーションでの効率的なチェックポイントは、いくつかの理由で重要:
長時間実行される計算:計算タスクが長くなるにつれて、信頼性の高い効率的なチェックポイントの必要性が増す。これにより、最初からやり直すことなく作業を再開できる。
リソース管理:多くのスパコンは限られた時間のためにリソースを割り当てる。チェックポイントを使うことで、タスクがリソースの割り当てを連鎖させて、ハードウェアの効率的な使用を促進する。
ソフトウェア耐障害性:障害や中断が発生した場合、信頼できるチェックポイント方式を持つことで、計算タスクの整合性を守る手助けになる。
新しいチェックポイントアルゴリズムの仕組み
新しいアルゴリズムは、必要なプロセスがチェックポイントを取る前にすべてのタスクを完了することを確保しつつ、高い実行時オーバーヘッドを避けることで、以前の方法を改善してる。
コレクティブクロック(CC)アルゴリズム
新しいアプローチのコアは、コレクティブクロック(CC)アルゴリズムと呼ばれる。これは、どれだけの集団操作が行われたかを追跡するためにシーケンス番号を使う。この追跡は、追加の通信を必要とせずに行われ、オーバーヘッドを最小限に抑えている。
仕組みはこう:
初期化:各MPIプロセスは集団操作のためにシーケンス番号を維持。集団操作が呼び出されると、この番号は増える。
チェックポイント要求:チェックポイントが要求されると、各プロセスは現在のシーケンス番号を特定し、すべての操作を未完のタスクを残さずに完了できる安全な状態に達するまで実行を続ける。
安全状態の定義:安全状態は、現在進行中の集団操作がなく、通信グループの全メンバーが集団タスクを完了していることを確認することで定義される。
CCアルゴリズムの主な利点
低い通信コスト:CCアルゴリズムは、通常の操作と同期チェックポイントを交互に行う必要がないため、以前の方法が発生させた通信コストを回避できる。
ノンブロッキング操作のサポート:新しい方法は、以前の技術では管理が難しかったノンブロッキングの集団操作に対応している。
実世界の分析:VASP
VASPは、新しいアルゴリズムの有効性を示すのに素晴らしいケーススタディを提供してる。複雑な運用ニーズと効率的な通信への依存性から、CCアルゴリズムの能力を示した。
VASPテストの結果
VASPでのテストでは、確認されたオーバーヘッドが5.2%であり、新しいチェックポイントシステムの堅牢性を確認した。最小限のオーバーヘッドで毎秒2,489回以上の集団通信を行う能力は、MPIのチェックポイント機能の大きな進展を示してる。
以前の方法との比較
以前の方法、特に二相コミット(2PC)アルゴリズムでは、実行時オーバーヘッドがしばしば受け入れ難いレベルに達してた。これにより、重要な操作中にパフォーマンスの劣化が起こった。
対照的に、CCアルゴリズムはオーバーヘッドを低く保ち、集団操作に大いに依存するアプリケーションの使いやすさを大幅に改善してる。
結論
MPIアプリケーションのための改善された透明なチェックポイント法は、高性能計算において顕著な進展を示してる。実行時オーバーヘッドを減らし、特定のネットワーク技術への依存を避けることで、CCアルゴリズムは、さまざまな科学的および計算的分野でのMPIのもっと効率的で実用的な使用を可能にしてる。
MPIが並列計算の基礎を形成し続ける中、こういった進展は、計算の需要が急速に進化する中でパフォーマンスと信頼性を向上させるために不可欠。こういった革新的なアプローチは、科学コミュニティ全体に大きな価値を提供できるかもしれない。
タイトル: Enabling Practical Transparent Checkpointing for MPI: A Topological Sort Approach
概要: MPI is the de facto standard for parallel computing on a cluster of computers. Checkpointing is an important component in any strategy for software resilience and for long-running jobs that must be executed by chaining together time-bounded resource allocations. This work solves an old problem: a practical and general algorithm for transparent checkpointing of MPI that is both efficient and compatible with most of the latest network software. Transparent checkpointing is attractive due to its generality and ease of use for most MPI application developers. Earlier efforts at transparent checkpointing for MPI, one decade ago, had two difficult problems: (i) by relying on a specific MPI implementation tied to a specific network technology; and (ii) by failing to demonstrate sufficiently low runtime overhead. Problem (i) (network dependence) was already solved in 2019 by MANA's introduction of split processes. Problem (ii) (efficient runtime overhead) is solved in this work. This paper introduces an approach that avoids these limitations, employing a novel topological sort to algorithmically determine a safe future synchronization point. The algorithm is valid for both blocking and non-blocking collective communication in MPI. We demonstrate the efficacy and scalability of our approach through both micro-benchmarks and a set of five real-world MPI applications, notably including the widely used VASP (Vienna Ab Initio Simulation Package), which is responsible for 11% of the workload on the Perlmutter supercomputer at Lawrence Berkley National Laboratory. VASP was previously cited as a special challenge for checkpointing, in part due to its multi-algorithm codes.
著者: Yao Xu, Gene Cooperman
最終更新: 2024-08-04 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2408.02218
ソースPDF: https://arxiv.org/pdf/2408.02218
ライセンス: https://creativecommons.org/licenses/by-sa/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。