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.