Skip to main content
QUICK REVIEW

[论文解读] A Comparative Study of Asynchronous Many-Tasking Runtimes: Cilk, Charm++, ParalleX and AM++

Abhishek Kulkarni, Andrew Lumsdaine|arXiv (Cornell University)|Apr 1, 2019
Parallel Computing and Optimization Techniques参考文献 19被引用 5
一句话总结

本文对四种异步大规模任务运行时——Cilk、Charm++、ParalleX 和 AM++——进行了全面的对比分析,评估其编程模型、执行模型及实现。研究识别出它们在表达能力、可扩展性以及对现代 HPC 挑战(如容错性和负载均衡)支持方面的关键差异,结论指出异步大规模任务编程对于百亿亿次计算的可移植性与性能至关重要。

ABSTRACT

We evaluate and compare four contemporary and emerging runtimes for high-performance computing(HPC) applications: Cilk, Charm++, ParalleX and AM++. We compare along three bases: programming model, execution model and the implementation on an underlying machine model. The comparison study includes a survey of each runtime system's programming models, their corresponding execution models, their stated features, and performance and productivity goals. We first qualitatively compare these runtimes with programmability in mind. The differences in expressivity and programmability arising from their syntax and semantics are clearly enunciated through examples common to all runtimes. Then, the execution model of each runtime, which acts as a bridge between the programming model and the underlying machine model, is compared and contrasted to that of the others. We also evaluate four mature implementations of these runtimes, namely: Intel Cilk++, Charm++ 6.5.1, AM++ and HPX, that embody the principles dictated by these models. With the emergence of the next generation of supercomputers, it is imperative for parallel programming models to evolve and address the integral challenges introduced by the increasing scale. Rather than picking a winner out of these four models under consideration, we end with a discussion on lessons learned, and how such a study is instructive in the evolution of parallel programming frameworks to address the said challenges.

研究动机与目标

  • 评估并对比四种领先的异步大规模任务运行时——Cilk、Charm++、ParalleX 和 AM++——在百亿亿次 HPC 背景下的表现。
  • 识别每种运行时在可编程性、性能以及对大规模、动态工作负载支持方面的优势与局限。
  • 分析执行模型如何将编程抽象映射到底层机器架构,特别是在并发度不断提高和异构性增强的背景下。
  • 在真实世界性能与生产力目标的背景下,评估成熟实现(Intel Cilk++、Charm++ 6.5.1、AM++、HPX-3)的表现。
  • 提炼未来并行编程框架设计的启示,以在大规模下实现生产力、性能与弹性之间的平衡。

提出的方法

  • 通过通用代码示例进行定性对比,突出语法、语义与表达能力的差异,分析编程模型。
  • 分析执行模型,重点关注任务表示、调度策略(如工作窃取、SDAG、工作共享)以及运行时行为,如负载均衡与容错性。
  • 在四个成熟系统(Intel Cilk++、Charm++ 6.5.1、AM++、HPX-3)的实现层面评估功能,包括对加速器、I/O 与全局地址空间的支持。
  • 使用结构化对比矩阵评估细粒度线程、消息驱动计算、分层执行与拓扑感知映射等特性。
  • 考察动态行为,包括自适应并行性、自动数据重分配与静默期检测在各系统中的实现。
  • 将研究发现整合为下一代运行时的设计原则,强调异步、延迟容忍与统一的数据与任务并行抽象。

实验结果

研究问题

  • RQ1Cilk、Charm++、ParalleX 和 AM++ 的编程模型在表达并行性的能力与使用便捷性方面有何差异?
  • RQ2它们在任务调度、同步机制以及对动态负载均衡支持方面的执行模型关键区别是什么?
  • RQ3成熟实现(Cilk++、Charm++ 6.5.1、AM++、HPX-3)在多大程度上支持现代 HPC 要求,如容错性、加速器集成与可扩展 I/O?
  • RQ4这些运行时如何应对内存局部性、并发粒度与大规模下的弹性等挑战?
  • RQ5可以提炼出哪些通用设计模式与经验教训,以指导未来面向百亿亿次系统的并行编程框架的演进?

主要发现

  • Cilk 和 AM++ 分别通过工作窃取与主动消息抽象,为任务级并行提供强大支持,但 Cilk 在动态负载均衡与容错性方面支持较弱。
  • Charm++ 与 ParalleX 在分布式、消息驱动执行方面表现出色,具备高级功能如 SDAG、静默期检测与自适应负载均衡。
  • AM++ 与 ParalleX 在分层执行与全局地址空间方面具备更强的原生支持,从而支持更可扩展、可组合的编程模型。
  • 所有四种运行时均支持异步执行,但仅 Charm++ 与 ParalleX 通过检查点与弹性任务调度提供了全面的容错机制。
  • HPX-3(AM++ 的实现)与 Charm++ 6.5.1 在加速器集成与细粒度并发支持方面优于 Cilk 与 ParalleX。
  • 本研究证实,异步大规模任务模型对百亿亿次系统至关重要,动态、自适应与延迟容忍的执行机制是实现性能与可扩展性的关键。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。