English

Specx: a C++ task-based runtime system for heterogeneous distributed architectures

Distributed, Parallel, and Cluster Computing 2024-11-18 v2 Software Engineering

Abstract

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.

Keywords

Cite

@article{arxiv.2308.15964,
  title  = {Specx: a C++ task-based runtime system for heterogeneous distributed architectures},
  author = {Paul Cardosi and Bérenger Bramas},
  journal= {arXiv preprint arXiv:2308.15964},
  year   = {2024}
}

Comments

Research report. https://gitlab.inria.fr/bramas/specx