中文

OpenCL Actor——使用CAF为基于Actor的编程添加数据并行性

分布式、并行与集群计算 2018-10-16 v1

摘要

Actor计算模型专为无缝支持并发与分布式而设计。然而,它对数据并行程序流仍缺乏具体规定,而现代众核硬件(如图形处理单元GPU或协处理器)可用的处理能力日益增强了数据并行性在通用计算中的重要性。本工作将支持OpenCL的Actor引入C++ Actor框架(CAF)。这提供了一个高级接口,可在不脱离Actor范式的情况下访问任何OpenCL设备。这种新型Actor被集成到CAF的运行时环境中,并实现了异构硬件分布式系统中透明的消息传递。遵循CAF中的Actor逻辑,OpenCL内核可在封装于C++ Actor中的同时进行组合,从而以多阶段方式对驻留在GPU上的数据进行操作。开发者因此能够在不脱离Actor范式也不牺牲性能的情况下,从原语构建复杂的数据并行程序。我们在商用GPU、Nvidia TESLA和Intel PHI上的评估显示,当卸载较大工作负载时,呈现出预期的线性扩展行为。对于亚秒级任务,不同设备间的卸载效率差异很大。此外,我们的发现表明,与使用原生OpenCL API编程相比,其开销可忽略不计。

关键词

引用

@article{arxiv.1709.07781,
  title  = {OpenCL Actors - Adding Data Parallelism to Actor-based Programming with CAF},
  author = {Raphael Hiesgen and Dominik Charousset and Thomas C. Schmidt},
  journal= {arXiv preprint arXiv:1709.07781},
  year   = {2018}
}

备注

28 pages