[论文解读] Scientific Computing Meets Big Data Technology: An Astronomy Use Case
本文提出 Kira,一个基于 Spark 的天文学图像处理工具包,通过利用大数据平台加速多任务科学工作负载。通过利用数据局部性和 Spark 的容错能力,Kira SE 在 EC2 上处理 1TB 的斯隆数字巡天(Sloan Digital Sky Survey)数据集时,比 C 语言实现快 2.5 倍,性能可与 HPC 超级计算机媲美。
Scientific analyses commonly compose multiple single-process programs into a dataflow. An end-to-end dataflow of single-process programs is known as a many-task application. Typically, tools from the HPC software stack are used to parallelize these analyses. In this work, we investigate an alternate approach that uses Apache Spark -- a modern big data platform -- to parallelize many-task applications. We present Kira, a flexible and distributed astronomy image processing toolkit using Apache Spark. We then use the Kira toolkit to implement a Source Extractor application for astronomy images, called Kira SE. With Kira SE as the use case, we study the programming flexibility, dataflow richness, scheduling capacity and performance of Apache Spark running on the EC2 cloud. By exploiting data locality, Kira SE achieves a 2.5x speedup over an equivalent C program when analyzing a 1TB dataset using 512 cores on the Amazon EC2 cloud. Furthermore, we show that by leveraging software originally designed for big data infrastructure, Kira SE achieves competitive performance to the C implementation running on the NERSC Edison supercomputer. Our experience with Kira indicates that emerging Big Data platforms such as Apache Spark are a performant alternative for many-task scientific applications.
研究动机与目标
- 评估 Apache Spark 作为可扩展、灵活且容错的平台,在天文学中支持科学多任务应用的适用性。
- 解决使用传统 HPC 工具处理大规模天文数据集时的性能瓶颈。
- 证明大数据平台可与 HPC 性能相当甚至超越,适用于数据密集型科学工作负载。
- 实现在现代数据流执行环境中复用现有天文学库。
- 评估 Spark 的调度能力、数据流表达能力,以及对异构存储系统(如 GlusterFS 和 HDFS)的支持。
提出的方法
- 构建 Kira,一个基于 Apache Spark 的弹性分布式数据集(RDD)和基于 DAG 的任务调度的分布式天文学图像处理工具包。
- 使用 Spark 的丰富数据流模式(包括流水线、洗牌和广播操作)实现 Kira SE,即天文物体源提取器。
- 在 Amazon EC2 上使用 64 个 m2.4xlarge 实例的集群执行工作负载,处理 1TB 的 SDSS DR7 数据集,共 176,938 个任务。
- 与基于 C 语言的 HPC 工具实现进行性能对比,分别在 GlusterFS(共享文件系统)和 NERSC Edison 超级计算机上运行。
- 利用 Spark 的数据局部性优化,最小化 I/O 开销,提升在通用云基础设施上的性能。
- 将现有天文学库(如图像卷积和源检测)无缝集成到 Spark 数据流中,确保代码复用和互操作性。
实验结果
研究问题
- RQ1Apache Spark 是否能有效扩展以支持天文学中大规模、数据密集型科学工作负载(包含数百万个任务)?
- RQ2与基于共享文件系统的传统 HPC 工作流相比,Spark 的数据局部性和调度优化对性能有何影响?
- RQ3大数据平台(如 Spark)在科学图像处理任务中,性能在多大程度上可与 HPC 系统媲美?
- RQ4Spark 是否能原生集成现有天文学软件库,而无需进行大规模重构?
- RQ5在云基础设施上使用 Spark 与在 HPC 集群上运行科学数据流之间,性能权衡如何?
主要发现
- 在 Amazon EC2 云环境中使用 512 个核心处理 1TB 数据集时,Kira SE 相较于等效的 C 程序实现提速 2.5 倍,主要得益于更优的数据局部性。
- Spark 有效管理了超过 100,000 个任务(SDSS DR7 为 176,938 个),在集群规模和数据规模增加时表现出线性可扩展性。
- Kira SE 在 EC2 上的性能与 C 程序在 NERSC Edison 超级计算机上的表现相当,根据工作负载不同,最快可快 75.1%,最慢仅慢 18.5%。
- 将现有天文学库无缝集成到 Spark 中,实现了对经过充分测试代码的复用,无需修改。
- Spark 的容错机制和血缘追踪功能提供了对瞬时故障的弹性,这是基于 MPI 的 HPC 工作流所缺乏的特性。
- 通过内存计算和优化的数据洗牌机制,Spark 降低了 I/O 和通信开销,尤其在 GlusterFS 等共享文件系统上表现更明显。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。