Skip to main content
QUICK REVIEW

[论文解读] Task Bench: A Parameterized Benchmark for Evaluating Parallel Runtime Performance

Elliott Slaughter, Wei Wu|arXiv (Cornell University)|Aug 15, 2019
Parallel Computing and Optimization Techniques参考文献 35被引用 4
一句话总结

Task Bench 是一个参数化的基准测试框架,将基准测试规范与系统实现解耦,实现了对15种并行与分布式编程系统在多样化工作负载下的高效比较。该框架引入了最小有效任务粒度(METG)度量指标,揭示了在当前技术条件下,100µs 是大规模高效任务执行的实际下限,并暴露了系统开销存在超过五个数量级的差异。

ABSTRACT

We present Task Bench, a parameterized benchmark designed to explore the performance of parallel and distributed programming systems under a variety of application scenarios. Task Bench lowers the barrier to benchmarking multiple programming systems by making the implementation for a given system orthogonal to the benchmarks themselves: every benchmark constructed with Task Bench runs on every Task Bench implementation. Furthermore, Task Bench's parameterization enables a wide variety of benchmark scenarios that distill the key characteristics of larger applications. We conduct a comprehensive study with implementations of Task Bench in 15 programming systems on up to 256 Haswell nodes of the Cori supercomputer. We introduce a novel metric, minimum effective task granularity to study the baseline runtime overhead of each system. We show that when running at scale, 100 μs is the smallest granularity that even the most efficient systems can reliably support with current technologies. We also study each system's scalability, ability to hide communication and mitigate load imbalance.

研究动机与目标

  • 解决并行与分布式编程系统之间缺乏全面、公平且可扩展的性能比较的问题。
  • 通过将基准测试逻辑与特定系统实现解耦,降低对多个系统进行基准测试的工程开销。
  • 量化运行时系统开销对应用程序性能的影响,尤其是在细粒度任务级别上的影响。
  • 引入一种新度量指标——最小有效任务粒度(METG),以隔离并测量任务运行时系统的真正成本。
  • 实现对跨多种系统在可扩展性、通信隐藏和负载不平衡缓解方面的系统性研究。

提出的方法

  • Task Bench 将应用程序建模为具有可配置计算、通信和依赖关系的有向任务图,支持多样化的工作负载模式。
  • 通过核心 API 抽象系统特定的实现,使任何实现该接口的系统都能以最小的移植工作量运行所有基准测试。
  • 该框架支持异构任务图、并发执行和可变负载大小,以模拟真实世界应用程序的特性。
  • 定义了一项新度量指标 METG(50%),即实现至少 50% 峰值性能的最小任务粒度,从而实现对系统开销的公平比较。
  • 该基准在 256 节点的 Cori 超级计算机上对 15 种不同系统(包括 MPI、Spark、Dask 和基于任务的运行时系统)进行了评估。
  • 系统实现采用标准化接口构建,确保评估的正交性、可组合性和可复现性。

实验结果

研究问题

  • RQ1并行编程系统在何种最小任务粒度下可实现至少 50% 的峰值性能?该粒度在不同系统间如何变化?
  • RQ2在不同工作负载下(包括通信密集型、计算密集型和负载不平衡场景),不同编程模型和运行时系统的表现如何?
  • RQ3系统级开销在多大程度上主导了应用程序性能?这些开销如何被隔离和测量?
  • RQ4异步执行以及静态与动态任务调度等特性如何影响可扩展性和效率?
  • RQ5在大规模节点数量(例如 256 个节点)下,系统选择对性能有何影响?

主要发现

  • 当前分布式编程系统的最小有效任务粒度(METG)存在超过五个数量级的差异,凸显了运行时开销的巨大差异。
  • 在大规模场景(256 个节点)下,100µs 是高效任务执行的实际下限,没有任何系统在该阈值以下能实现高效性能。
  • 支持异步执行的系统在负载不平衡和均衡工作负载下表现出性能优势,但其较高的基线开销可能抵消这些优势。
  • 依赖动态并行性发现的基于任务的系统存在串行瓶颈,即使采用动态剪枝技术,其可扩展性仍受限制。
  • 静态的、编译时的任务分析可完全消除串行瓶颈,实现优于动态方法的可扩展性。
  • 大规模数据处理系统(如 Spark)需要任务持续数十秒才能在小节点数量以上实现可扩展性,表明此类工作负载中粗粒度任务是标准做法。

更好的研究,从现在开始

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

无需绑定信用卡

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