Task-parallel technology for SPE

A good task-parallel programming platform will make it easier for you to do software performance engineering.

To learn more about comparing platforms

Please check out our special session on task-parallel technology (part of IEEE HPEC 2025).

Feature comparison table

The following table is based on A taxonomy of task-based parallel programming technologies for high-performance computing by Thoman et al. With the authors' permission, we present an updated version of their classification, slightly abridged to focus on shared memory architecture. Our table adds two platforms: OpenCilk and Taskflow. (OpenCilk replaces Cilk Plus in their classification, and Taskflow is new.)

API Features

Runtime

Platform

Communication Model

Distributed Memory

Heterogeneity

Graph Structure

Task Partitioning

Result Handling

Worker Management

Resilience Management

Work Mapping

Synchronization

Technological Readiness

Implementation Type

Data Distribution

Scheduling Methods (sm)

Performance Monitoring

C++ STL

sm

dag

a/m

auto

a/m

m

9

lib.

TBB

sm

tree

auto

auto

auto

auto

8

lib.

ws

off

OpenMP

sm

auto

dag

auto

m

auto

a/m

9

ext.

mult

off/on

OmpSs

sm

auto

dag

auto

auto

auto

a/m

5

ext.

auto

mult

off/on

OpenCilk

sm

dag

auto

auto

auto

a/m

8

lang.

ws

off

Taskflow

sm

auto

m

dag

auto

auto

auto

a/m

8

lib.

ws

off

HPX

gas

auto

m

dag

m

a/m

a/m

m

6

lib.

auto

mult

off/on

Legion

gas

auto

m

tree

m

auto

a/m

m

4

lib.

auto

ws

off/on

PaRSEC

msg

m

m

dag

m

auto

a/m

auto

4

lib.

m

mult

off

Charm++

gas

auto

m

dag

a/m

auto

a/m

m

6

ext.

auto

mult

off/on

AllScale

gas

auto

auto

dag

a/m

auto

auto

a/m

3

ext.

auto

ws

off/on

StarPU

msg

m

m

dag

auto

auto

a/m

m

5

ext.

m

mult

off/on

Chapel

gas

auto

auto

dag

auto

auto

a/m

m

5

lang.

auto

ws

off

X10

gas

auto

auto

dag

auto

auto

a/m

m

5

lang.

auto

ws

off

Table key:

  • Communication model:
    • sm = shared memory
    • gas = global address space
    • msg = message passing
  • auto = the platform does this automatically
  • m = you can manually do this with the platform
  • a/m = both automatic and manual
  • ctfg
  • ws = work stealing
  • mult = multiple (including work stealing)
  • off = offline use of monitoring data
  • on = online use of monitoring data

Technological readiness is measured according to this scale.