Integration of a Powerful Future Construct into the Taskflow System

Abstract Task-based parallel programming is a common approach to using modern multicore architectures efficiently. Hereby a programmer describes the computation as a set of possibly nested tasks and their dependencies. The dependencies can be dynamic, meaning that they can only be discovered at runtime. Dynamic dependencies can be expressed with the future construct, which comes in several variants. The C++ standard, for instance, defines (shared) futures that may be stored in data structures, accessed by multiple tasks, and filled through an associated promise that can be transferred between tasks. These futures cannot be instantiated with incomplete types, however. Recent algorithmic research suggested that both the features of C++ futures and support for incomplete types are necessary to enable nested futures for the synchronization of nested tasks. This paper describes the first implementation of such futures, called flex-futures, in the Taskflow programming system. It describes the corresponding extensions of the Taskflow programming model, user interface, and runtime system. The extended system is evaluated with a benchmark that mimics the LU decomposition of hierarchical matrices. We found that flex-futures come with a higher overhead than static dependencies, but still achieve comparable performance while offering greater flexibility.

Authors

Institutions

Publication Details

Journal
SN Computer Science
Published
2025-12-24
DOI
https://doi.org/10.1007/s42979-025-04577-y
Primary Topic
Parallel Computing and Optimization Techniques
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Integration of a Powerful Future Construct into the Taskflow System

Claudia Fohry, Rüdiger Nather
SN Computer Science
Parallel Computing and Optimization Techniques
article

Integration of a Powerful Future Construct into the Taskflow System

Claudia Fohry, Rüdiger Nather
article en

Abstract

Abstract Task-based parallel programming is a common approach to using modern multicore architectures efficiently. Hereby a programmer describes the computation as a set of possibly nested tasks and their dependencies. The dependencies can be dynamic, meaning that they can only be discovered at runtime. Dynamic dependencies can be expressed with the future construct, which comes in several variants. The C++ standard, for instance, defines (shared) futures that may be stored in data structures, accessed by multiple tasks, and filled through an associated promise that can be transferred between tasks. These futures cannot be instantiated with incomplete types, however. Recent algorithmic research suggested that both the features of C++ futures and support for incomplete types are necessary to enable nested futures for the synchronization of nested tasks. This paper describes the first implementation of such futures, called flex-futures, in the Taskflow programming system. It describes the corresponding extensions of the Taskflow programming model, user interface, and runtime system. The extended system is evaluated with a benchmark that mimics the LU decomposition of hierarchical matrices. We found that flex-futures come with a higher overhead than static dependencies, but still achieve comparable performance while offering greater flexibility.

SN Computer ScienceVol. 7(1)
University of Kassel (DE)
Openalex Percentile: Top 33%
Parallel Computing and Optimization Techniques
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.