Skip to main content
QUICK REVIEW

[論文レビュー] Pilot-Streaming: A Stream Processing Framework for High-Performance Computing

André Luckow, George Chantzialexiou|arXiv (Cornell University)|Jan 26, 2018
Cloud Computing and Resource Management参考文献 12被引用数 5
ひとこと要約

Pilot-Streaming は、Kafka や Spark、Dask などのストリーム処理フレームワークの動的でオンデマンドのデプロイメントおよびランタイムリソース管理を可能にする高性能コンピューティングフレームワークです。メッセージング、トランスポート、処理を統一されたアーキテクチャで分離することで、32ノードで最大 390 MB/sec のスループットを達成し、リアルタイムのライトソースデータ解析に十分な性能を発揮するとともに、科学的 HPC 環境におけるスケーラブルで適応可能なストリーミングワークロードをサポートします。

ABSTRACT

An increasing number of scientific applications rely on stream processing for generating timely insights from data feeds of scientific instruments, simulations, and Internet-of-Thing (IoT) sensors. The development of streaming applications is a complex task and requires the integration of heterogeneous, distributed infrastructure, frameworks, middleware and application components. Different application components are often written in different languages using different abstractions and frameworks. Often, additional components, such as a message broker (e.g. Kafka), are required to decouple data production and consumptions and avoiding issues, such as back-pressure. Streaming applications may be extremely dynamic due to factors, such as variable data rates caused by the data source, adaptive sampling techniques or network congestions, variable processing loads caused by usage of different machine learning algorithms. As a result application-level resource management that can respond to changes in one of these factors is critical. We propose Pilot-Streaming, a framework for supporting streaming frameworks, applications and their resource management needs on HPC infrastructure. Pilot-Streaming is based on the Pilot-Job concept and enables developers to manage distributed computing and data resources for complex streaming applications. It enables applications to dynamically respond to resource requirements by adding/removing resources at runtime. This capability is critical for balancing complex streaming pipelines. To address the complexity in developing and characterization of streaming applications, we present the Streaming Mini- App framework, which supports different plug-able algorithms for data generation and processing, e.g., for reconstructing light source images using different techniques. We utilize the Mini-App framework to conduct an evaluation of Pilot-Streaming.

研究の動機と目的

  • 高データレートを伴う科学的アプリケーション向けに、HPC インfraストラクチャ上での動的でスケーラブルなストリーミング処理のサポートが不足している問題に対処すること。
  • メッセージブローカーや処理エンジンなどのストリーミングコンポonent のランタイムリソース管理および動的スケーリングを可能にすること。
  • 科学的ワークフローにおける複雑なストリーミングパイプラインの開発およびパフォーマンス特徴付けを簡素化すること。
  • HPC システム上での多様なストリーミング処理フレームワークのデプロイおよび管理のためのフレームワークに依存しない抽象化レイヤーを提供すること。
  • 実世界のワークロードを用いてフレームワークのパフォーマンスを評価すること、具体的にはライトソース画像再構成およびストリーミング KMeans を含む。

提案手法

  • Pilot-Streaming は、メッセージブローカー、通信、処理を分離する統一されたアーキテクチャを採用しており、モジュラで合成可能なストリーミング処理を実現しています。
  • Pilot-Abstraction モデルに基づいて構築されており、アプリケーションコンポーネントごとに動的プロビジョニングおよびランタイムでの計算リソース調整が可能になっています。
  • Kafka や Spark Streaming や Dask、Flink などのストリーミングフレームワークをデプロイおよび管理するための高レベルでフレームワークに依存しない API を提供しています。
  • ストリーミングミニアプリ(Streaming Mini-Apps)は、科学的ストリーミングアプリケーションのデータ生成、処理、パフォーマンス特性をシミュレートするためのプラグインベースのフレームワークとして導入されています。
  • 計算リソースおよび I/O リソースの動的スケーリングをサポートしており、ブローカーやデータソースに対する並列処理チューニングや帯域幅に配慮した設定が可能になっています。
  • XSEDE Wrangler HPC システムを用いて、実世界のストリーミングワークロード下でのスループット、スケーラビリティ、ボトルネックを評価する実験が実施されました。

実験結果

リサーチクエスチョン

  • RQ1HPC インfraストラクチャ上での、変動が激しいデータレートと動的リソース要件を伴うストリーミングワークロードを効率的に管理する方法は何か?
  • RQ2科学的 HPC 環境におけるストリーミング処理フレームワークの動的でオンデマンドのデプロイメントおよびランタイムスケーリングを可能にするために必要なアーキテクチャ抽象化は何か?
  • RQ3メッセージブローカー、処理エンジン、リソース構成の異なる組み合わせが、ストリーミングパイプライン全体のエンドツーエンドスループットとパフォーマンスに与える影響は何か?
  • RQ4Streaming Mini-Apps フレームワークは、パフォーマンス評価のための複雑な科学的ストリーミングアプリケーションの特性をどれほど正確にエミュレートできるか?
  • RQ5高スループットのストリーミングパイプラインにおける主なパフォーマンスボトルネックは何か、そして知的リソース管理によってそれらをどのように緩和できるか?

主な発見

  • Pilot-Streaming は、1536 個の仮想コアと 4 TB のメモリを備えた 32 ノードで、ピークスループットが 390 MB/sec を達成し、高いサンプリングレートでの LCLS-I データストリームを維持するのに十分な性能を発揮しました。
  • I/O 帯域幅およびデータソースまたはブローカーへの読み取り並列処理が十分に高い場合にのみ、追加の計算リソースがパフォーマンス向上に寄与することが示されました。
  • リソース管理が極めて重要です。特にデータインジェストと処理の間でバランスが取れていない構成はボトルネックを引き起こし、処理がしばしば制限要因となります。
  • Kafka や Dask や Spark クラスタの動的起動のオーバーヘッドは、柔軟性、リソースの隔離、コンポーネントの独立したスケーリングの利点を上回っています。
  • Streaming Mini-Apps は、適応的サンプリングや異なる処理アルゴリズムを含む多様なアプリケーション動作の効果的なシミュレーションを可能にし、パフォーマンス分析と最適化を促進しました。
  • ストリーミングパイプラインの最適化には組み合わせの複雑さが伴うため、自動化ツールの導入が不可欠であり、Pilot-Streaming と Mini-Apps は、将来のパフォーマンスモデリングおよび機械学習ベースの予測の基盤を提供しています。

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

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

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

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