[论文解读] Pilot-Streaming: A Stream Processing Framework for High-Performance Computing
Pilot-Streaming 是一个高性能计算框架,可实现 Kafka、Spark 和 Dask 等流处理框架的动态、按需部署及运行时资源管理。它通过统一的架构解耦消息传递、传输和处理,实现最高 390 MB/sec 的吞吐量(在 32 个节点上)——足以支持实时光源数据的分析,并在科学 HPC 环境中实现可扩展、自适应的流处理工作负载。
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 基础设施上缺乏动态、可扩展的流处理支持提供解决方案。
- 实现消息代理和处理引擎等流处理组件的运行时资源管理与动态扩展。
- 简化科学工作流中复杂流处理管道的开发与性能特征分析。
- 提供与框架无关的抽象层,用于在 HPC 系统上部署和管理多种流处理框架。
- 通过真实工作负载(包括光源图像重建和流式 KMeans)评估框架性能。
提出的方法
- Pilot-Streaming 使用统一的架构,将消息代理、通信与处理解耦,实现模块化且可组合的流处理。
- 基于 Pilot-Abstraction 模型构建,支持按应用组件动态配置和运行时调整计算资源。
- 框架提供高层、与框架无关的 API,用于部署和管理 Kafka、Spark Streaming、Dask 和 Flink 等流处理框架。
- 引入流式微型应用(Streaming Mini-Apps)作为基于插件的框架,用于模拟科学流应用的数据生成、处理及性能特征。
- 系统支持计算与 I/O 资源的动态扩展,包括对代理和数据源的并行度调优与带宽感知配置。
- 实验在 XSEDE Wrangler HPC 系统上进行,用于评估真实流工作负载下的吞吐量、可扩展性及性能瓶颈。
实验结果
研究问题
- RQ1如何在 HPC 基础设施上高效管理具有高度可变数据率和动态资源需求的流处理工作负载?
- RQ2需要哪些架构抽象,才能实现在科学 HPC 环境中对流处理框架进行动态、按需部署及运行时扩展?
- RQ3不同组合的消息代理、处理引擎与资源配置如何影响流处理管道的端到端吞吐量与性能?
- RQ4流式微型应用框架在多大程度上能准确模拟复杂科学流应用的特性,以支持性能评估?
- RQ5在高吞吐量流处理管道中,关键性能瓶颈是什么?如何通过智能资源管理加以缓解?
主要发现
- Pilot-Streaming 在 32 个节点、1536 个虚拟核心和 4 TB 内存的配置下,实现了峰值 390 MB/sec 的吞吐量,足以在高采样率下持续承载 LCLS-I 的数据流。
- 研究结果表明,仅当数据源或代理的 I/O 带宽以及读取并行度足够高时,增加计算资源才能提升性能。
- 资源管理至关重要:配置失衡(尤其是数据摄入与处理之间)会形成瓶颈,其中处理通常为性能限制因素。
- 动态启动 Kafka、Dask 和 Spark 集群的开销,远小于其在灵活性、资源隔离及组件独立扩展方面的优势。
- 流式微型应用有效模拟了多样化应用行为,包括自适应采样和不同处理算法,促进了性能分析与优化。
- 优化流处理管道的组合复杂性需要自动化工具,Pilot-Streaming 与微型应用共同为此提供了基础,支持未来性能建模与基于机器学习的预测。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。