Parallelization is needed everywhere, from laptops and mobile phones to supercomputers. Among parallel programming models, task-based programming has demonstrated a powerful potential and is widely used in high-performance scientific computing. Not only does it allow for efficient parallelization across distributed heterogeneous computing nodes, but it also allows for elegant source code structuring by describing hardware-independent algorithms. In this paper, we present Specx, a task-based runtime system written in modern C++. Specx supports distributed heterogeneous computing by simultaneously exploiting CPUs and GPUs (CUDA/HIP) and incorporating communication into the task graph. We describe the specificities of Specx and demonstrate its potential by running parallel applications.
翻译:并行化无处不在,从笔记本电脑、移动电话到超级计算机均需其支撑。在众多并行编程模型中,任务型编程已展现出强大潜力,并广泛应用于高性能科学计算领域。该模型不仅支持跨分布式异构计算节点的高效并行化,还能通过描述硬件无关的算法实现优雅的源代码结构。本文提出Specx——一个基于现代C++编写的任务运行时系统。Specx通过同时利用CPU与GPU(CUDA/HIP)计算资源,并将通信过程纳入任务图,实现了对分布式异构计算的支持。我们将阐述Specx的系统特性,并通过运行并行应用程序展示其潜力。