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

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 efficient parallelization across...

Full description

Saved in:
Bibliographic Details
Main Authors: Paul Cardosi, Bérenger Bramas
Format: Article
Language:English
Published: PeerJ Inc. 2025-07-01
Series:PeerJ Computer Science
Subjects:
Online Access:https://peerj.com/articles/cs-2966.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1839630631113326592
author Paul Cardosi
Bérenger Bramas
author_facet Paul Cardosi
Bérenger Bramas
author_sort Paul Cardosi
collection DOAJ
description 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 efficient parallelization across distributed heterogeneous computing nodes, but it also allows for elegant source code structuring by describing hardware-independent algorithms. In this article, we present Specx, a task-based runtime system written in modern C++. Specx supports distributed heterogeneous computing by simultaneously exploiting central processing units (CPUs) and graphics processing units (GPUs) (CUDA/HIP) and incorporating communication into the task graph. We describe the specificities of Specx and demonstrate its potential by running parallel applications.
format Article
id doaj-art-22730085d0ec4a898ab9d51c20fcf3a4
institution Matheson Library
issn 2376-5992
language English
publishDate 2025-07-01
publisher PeerJ Inc.
record_format Article
series PeerJ Computer Science
spelling doaj-art-22730085d0ec4a898ab9d51c20fcf3a42025-07-13T15:05:11ZengPeerJ Inc.PeerJ Computer Science2376-59922025-07-0111e296610.7717/peerj-cs.2966Specx: a C++ task-based runtime system for heterogeneous distributed architecturesPaul Cardosi0Bérenger Bramas1ICPS Team, ICube, Illkirch, FranceICPS Team, ICube, Illkirch, FranceParallelization 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 efficient parallelization across distributed heterogeneous computing nodes, but it also allows for elegant source code structuring by describing hardware-independent algorithms. In this article, we present Specx, a task-based runtime system written in modern C++. Specx supports distributed heterogeneous computing by simultaneously exploiting central processing units (CPUs) and graphics processing units (GPUs) (CUDA/HIP) and incorporating communication into the task graph. We describe the specificities of Specx and demonstrate its potential by running parallel applications.https://peerj.com/articles/cs-2966.pdfRuntime systemCUDAHipSchedulingTask-basedC++
spellingShingle Paul Cardosi
Bérenger Bramas
Specx: a C++ task-based runtime system for heterogeneous distributed architectures
PeerJ Computer Science
Runtime system
CUDA
Hip
Scheduling
Task-based
C++
title Specx: a C++ task-based runtime system for heterogeneous distributed architectures
title_full Specx: a C++ task-based runtime system for heterogeneous distributed architectures
title_fullStr Specx: a C++ task-based runtime system for heterogeneous distributed architectures
title_full_unstemmed Specx: a C++ task-based runtime system for heterogeneous distributed architectures
title_short Specx: a C++ task-based runtime system for heterogeneous distributed architectures
title_sort specx a c task based runtime system for heterogeneous distributed architectures
topic Runtime system
CUDA
Hip
Scheduling
Task-based
C++
url https://peerj.com/articles/cs-2966.pdf
work_keys_str_mv AT paulcardosi specxactaskbasedruntimesystemforheterogeneousdistributedarchitectures
AT berengerbramas specxactaskbasedruntimesystemforheterogeneousdistributedarchitectures