Skip to main content
QUICK REVIEW

[論文レビュー] Balsam: Automated Scheduling and Execution of Dynamic, Data-Intensive HPC Workflows

Michael Salim, Thomas Uram|arXiv (Cornell University)|Sep 18, 2019
Scientific Computing and Data Management参考文献 10被引用数 22
ひとこと要約

Balsamは、パイロットランチャを介して異種のタスクを適応的でアンサンブルジョブにパッケージ化することにより、動的でデータ集約的なHPCワークロードのスケジューリングと実行を自動化するワークフロー管理システムです。コード変更なしに、障害耐性があり負荷分散されたシリアスおよび並列プログラムの実行を可能にし、大規模なキャンペーンにおけるリソース利用効率を高め、スクリプトのオーバーヘッドを低減します。ハイパーパramータチューニングおよび量子化学ワークフローでの実証が行われました。

ABSTRACT

We introduce the Balsam service to manage high-throughput task scheduling and execution on supercomputing systems. Balsam allows users to populate a task database with a variety of tasks ranging from simple independent tasks to dynamic multi-task workflows. With abstractions for the local resource scheduler and MPI environment, Balsam dynamically packages tasks into ensemble jobs and manages their scheduling lifecycle. The ensembles execute in a pilot "launcher" which (i) ensures concurrent, load-balanced execution of arbitrary serial and parallel programs with heterogeneous processor requirements, (ii) requires no modification of user applications, (iii) is tolerant of task-level faults and provides several options for error recovery, (iv) stores provenance data (e.g task history, error logs) in the database, (v) supports dynamic workflows, in which tasks are created or killed at runtime. Here, we present the design and Python implementation of the Balsam service and launcher. The efficacy of this system is illustrated using two case studies: hyperparameter optimization of deep neural networks, and high-throughput single-point quantum chemistry calculations. We find that the unique combination of flexible job-packing and automated scheduling with dynamic (pilot-managed) execution facilitates excellent resource utilization. The scripting overheads typically needed to manage resources and launch workflows on supercomputers are substantially reduced, accelerating workflow development and execution.

研究の動機と目的

  • リーダーシップクラスのシステムにおける動的でデータ集約的なHPCワークロードのための柔軟で使いやすいジョブスケジューリングおよび実行ツールの不足に対処すること。
  • スーパーコンputersで大規模なジョブキャンペーンを管理するために従来必要とされてきたスクリプトおよび構成のオーバーヘッドを低減すること。
  • 実行時におけるタスクの動的生成や終了を可能にし、複雑で変化し続ける計算キャンペーンをサポートする動的ワークフローを実現すること。
  • ローカルスケジューラのポリシーに適合するように、タスクを動的にサイズ調整されたアンサンブルジョブにパッケージングすることにより、リソース利用効率を向上させること。
  • アプリケーションコードの変更なしに、大規模でマルチユーザーのHPCキャンペーンにおける障害耐性およびプロヴァンス追跡を提供すること。

提案手法

  • ワークフローの状態とプロヴァンスを管理するため、PythonおよびDjango ORMを介して中央集権的なタスクデータベースを管理するサービス-データベース-ランチャアーキテクチャを採用。
  • 類似したリソース要件を持つタスクを自動的にグループ化し、スケジューラポリシーに適合する動的にサイズ調整されたアンサンブルジョブにすることで、スループットを向上。
  • 異種のシリアスおよびMPI並列タスクの並列実行を管理するパイロットランチャアプリケーションを採用。
  • タスクレベルの障害を隔離し、ユーザーアプリケーションを変更せずに構成可能な回復メカニズムを提供することで、障害耐性を実現。
  • SLURM、LSFなど、ローカルスケジューラとの統合を抽象化により実現し、シームレスなジョブ提出およびライフサイクル管理を可能に。
  • コマンドラインおよびPython APIを提供し、ワークフローの作成、監視、動的変更(リアルタイムでのタスク生成および終了含む)を可能に。

実験結果

リサーチクエスチョン

  • RQ1動的でデータ集約的なHPCワークロードを、最小限のユーザー設定と最大のリソース利用効率でどのようにスケジューリングおよび実行できるか?
  • RQ2自動的にアンサンブルジョブにジョブをパッケージングすることで、制限的なスケジューラポリシーが課されるリーダーシップクラスのHPC環境で、スループットをどの程度向上できるか?
  • RQ3アプリケーションコードの変更なしに、パイロットベースのランチャーアーキテクチャが、異種で混合並列性を持つタスクの効率的で障害耐性のある実行を達成できるか?
  • RQ4Balsamは、大規模でハイパフォーマンスな計算キャンペーンにおける開発および運用のオーバーヘッドをどの程度低減できるか?
  • RQ5Balsamの自動化レイヤーのパフォーマンスオーバーヘッドは、手動で最適化されたバッチジョブスクリプトと比較してどの程度か?

主な発見

  • Balsamはスクリプトのオーバーヘッドを顕著に低減し、1600ポイントの量子化学ポテンシャルエネルギー表面計算を60行未満のPythonコードで実行可能にした。
  • 128ノードに分散された1600の2ノードMPIタスクを負荷分散することで、優れたリソース利用効率を達成し、効果的なアンサンブルパッケージングとスケジューリングを実証した。
  • Theta上で通常の手書きのアンサンブルジョブスクリプトと比較してBalsamが優れた性能を示し、1秒間に1回しかaprunを起動できない状況でも、実行時のオーバーヘッドが低いことが示された。
  • 実行時にタスクを動的に生成または終了できる動的ワークフローをサポートし、変化するワークロードに応じた適応的実行を可能にした。
  • タスク履歴やエラーログを含むプロヴァンスデータがデータベースに自動的に保存され、完全なキャンペーンの再現性とデバッグが可能になった。
  • NWChemなどの既存バイナリがコード変更なしにワークフローに統合されたことから、システムの透明性およびアプリケーションの透明性が確認された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。