中文

面向 PGAS 运行时可扩展的基于 Actor 的编程系统

分布式、并行与集群计算 2022-06-22 v3

摘要

PGAS 模型因其对短单向消息的高效支持,非常适合于在基于集群的系统上执行不规则应用。然而,当前 PGAS 应用面临两个主要局限。其一是可扩展性:尽管存在支持特殊情形下非阻塞操作的 API,许多对远程位置的 PGAS 操作默认是同步的,这可能导致长延迟停顿以及较差的可扩展性。其二是生产力:虽然开发者以应用自然、细粒度的粒度表达所有通信更为简单,但实验表明,这种自然表达导致的性能比需要手动消息聚合与终止检测、更高效但生产力更低代码慢 20 倍。本文提出一种新的 PGAS 应用编程系统,其中点到点远程操作可表达为细粒度异步 actor 消息。在该方法中,程序员无需担心与消息聚合和终止检测相关的编程复杂性。我们的方法也可视为在阶段或超步内以细粒度异步通信扩展经典块同步并行模型。我们认为,相对于以往方法,我们的方法在 PGAS 应用的生产力-性能空间中提供了一个理想的点,具有更可扩展的性能和更高的生产力。具体而言,对于在 NERSC Cori 系统中使用 2048 个核心执行的 Bale 基准测试套件的七个不规则迷你应用,我们的方法相对于标准 PGAS 版本(UPC 和 OpenSHMEM)展现出几何平均性能提升 ≥20 倍,同时保持与这些版本相当的生产力。

关键词

引用

@article{arxiv.2107.05516,
  title  = {A Scalable Actor-based Programming System for PGAS Runtimes},
  author = {Sri Raj Paul and Akihiro Hayashi and Kun Chen and Vivek Sarkar},
  journal= {arXiv preprint arXiv:2107.05516},
  year   = {2022}
}