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的特性,并通过运行并行应用程序展示了其潜力。