{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,24]],"date-time":"2025-12-24T07:37:59Z","timestamp":1766561879514,"version":"3.48.0"},"reference-count":22,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2025,12,24]],"date-time":"2025-12-24T00:00:00Z","timestamp":1766534400000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2025,12,24]],"date-time":"2025-12-24T00:00:00Z","timestamp":1766534400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100012687","name":"Universit\u00e4t Kassel","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100012687","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["SN COMPUT. SCI."],"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>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.<\/jats:p>","DOI":"10.1007\/s42979-025-04577-y","type":"journal-article","created":{"date-parts":[[2025,12,24]],"date-time":"2025-12-24T06:22:08Z","timestamp":1766557328000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Integration of a Powerful Future Construct into the Taskflow System"],"prefix":"10.1007","volume":"7","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-1038-4242","authenticated-orcid":false,"given":"R\u00fcdiger","family":"Nather","sequence":"first","affiliation":[]},{"given":"Claudia","family":"Fohry","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2025,12,24]]},"reference":[{"key":"4577_CR1","unstructured":"OpenMP Architecture Review Board: OpenMP. http:\/\/www.openmp.org\/"},{"key":"4577_CR2","doi-asserted-by":"publisher","unstructured":"Kaiser H, Heller T, Adelstein-Lelbach B, Serio A, Fey D. HPX: a task based programming model in a global address space. In: Proceedings of the 8th international conference on partitioned global address space programming models. 2014. https:\/\/doi.org\/10.1145\/2676870.2676883","DOI":"10.1145\/2676870.2676883"},{"key":"4577_CR3","unstructured":"Aiken A, Bauer M. Programming with Legion. https:\/\/legion.stanford.edu\/pdfs\/legion-manual.pdf (visited on 02\/04\/2025) 2023."},{"issue":"8","key":"4577_CR4","doi-asserted-by":"publisher","first-page":"207","DOI":"10.1145\/209937.209958","volume":"30","author":"RD Blumofe","year":"1995","unstructured":"Blumofe RD, Joerg CF, Kuszmaul BC, Leiserson CE, Randall KH, Zhou Y. Cilk: An efficient multithreaded runtime system. ACM SigPlan Notices. 1995;30(8):207\u201316.","journal-title":"ACM SigPlan Notices"},{"key":"4577_CR5","doi-asserted-by":"publisher","unstructured":"Singer K, Xu Y, Lee I-TA. Proactive work stealing for futures. In: Proceedings of the 24th symposium on principles and practice of parallel programming. 2019. https:\/\/doi.org\/10.1145\/3293883.3295735","DOI":"10.1145\/3293883.3295735"},{"issue":"6","key":"4577_CR6","doi-asserted-by":"publisher","first-page":"1303","DOI":"10.1109\/TPDS.2021.3104255","volume":"33","author":"T-W Huang","year":"2021","unstructured":"Huang T-W, Lin D-L, Lin C-X, Lin Y. Taskflow: a lightweight parallel and heterogeneous task graph computing system. IEEE Trans Parallel Distrib Syst. 2021;33(6):1303\u201320.","journal-title":"IEEE Trans Parallel Distrib Syst"},{"key":"4577_CR7","volume-title":"Engineering a compiler","author":"KD Cooper","year":"2022","unstructured":"Cooper KD, Torczon L. Engineering a compiler. 3rd ed. Oxford: Morgan Kaufmann; 2022.","edition":"3"},{"key":"4577_CR8","volume-title":"Advanced compiler design & implementation","author":"SS Muchnick","year":"1997","unstructured":"Muchnick SS. Advanced compiler design & implementation. Oxford: Morgan Kaufmann; 1997."},{"key":"4577_CR9","unstructured":"OpenMP architecture review board: openmp application programming interface version 5.0. https:\/\/www.openmp.org\/wp-content\/uploads\/OpenMP-API-Specification-5.0.pdf (visited on 05\/09\/2025) (2018)"},{"key":"4577_CR10","doi-asserted-by":"publisher","first-page":"55","DOI":"10.1145\/872736.806932","volume":"64","author":"HC Baker","year":"1977","unstructured":"Baker HC, Hewitt C. The incremental garbage collection of processes. ACM SIGART Bull. 1977;64:55\u20139. https:\/\/doi.org\/10.1145\/872736.806932.","journal-title":"ACM SIGART Bull"},{"key":"4577_CR11","doi-asserted-by":"publisher","unstructured":"Blelloch GE, Reid-Miller M. Pipelining with Futures. In: Proceedings of the ACM symposium on parallel algorithms and architectures - SPAA. 1997. https:\/\/doi.org\/10.1145\/258492.258517","DOI":"10.1145\/258492.258517"},{"issue":"4","key":"4577_CR12","doi-asserted-by":"publisher","first-page":"501","DOI":"10.1145\/4472.4478","volume":"7","author":"RH Halstead","year":"1985","unstructured":"Halstead RH. MULTILISP: a language for concurrent symbolic computation. ACM Trans Program Lang Syst. 1985;7(4):501\u201338. https:\/\/doi.org\/10.1145\/4472.4478.","journal-title":"ACM Trans Program Lang Syst"},{"key":"4577_CR13","doi-asserted-by":"publisher","unstructured":"Shiina S, Taura K. Distributed continuation stealing is more scalable than you might think. In: IEEE Int. Conf. on Cluster Computing (CLUSTER). 2022:129\u2013141. https:\/\/doi.org\/10.1109\/CLUSTER51413.2022.00027","DOI":"10.1109\/CLUSTER51413.2022.00027"},{"key":"4577_CR14","doi-asserted-by":"crossref","unstructured":"Nather R, Fohry C. Futures for dynamic dependencies\u2013parallelizing the $$\\cal{H} $$-LU Factorization. In: Workshop on asynchronous many-task systems and applications. 2024:9\u201321. Springer","DOI":"10.1007\/978-3-031-61763-8_2"},{"key":"4577_CR15","doi-asserted-by":"crossref","unstructured":"Perez JM, Beltran V, Labarta J, Ayguad\u00e9 E. Improving the integration of task nesting and dependencies in openmp. In: IEEE Int. Parallel and Distributed Processing Symp. 2017:809\u2013818","DOI":"10.1109\/IPDPS.2017.69"},{"key":"4577_CR16","unstructured":"Center BS. Specification of OmpSs-2 2025.06. https:\/\/pm.bsc.es\/ftp\/ompss-2\/doc\/spec (visited on 08\/29\/2025) 2025."},{"key":"4577_CR17","doi-asserted-by":"publisher","unstructured":"Aliaga JI, Carratal\u00e1-S\u00e1ez R, Kriemann R, Quintana-Ort\u00ed ES. Task-Parallel LU factorization of hierarchical matrices using OmpSs. In: IEEE international parallel and distributed processing symposium workshops (IPDPSW). 2017:1148\u20131157. https:\/\/doi.org\/10.1109\/IPDPSW.2017.124","DOI":"10.1109\/IPDPSW.2017.124"},{"issue":"8","key":"4577_CR18","doi-asserted-by":"publisher","first-page":"1687","DOI":"10.1109\/TCAD.2020.3025075","volume":"40","author":"T-W Huang","year":"2020","unstructured":"Huang T-W, Lin Y, Lin C-X, Guo G, Wong MD. Cpp-taskflow: a general-purpose parallel task programming system at scale. IEEE Trans Comput Aided Des Integr Circuits Syst. 2020;40(8):1687\u2013700.","journal-title":"IEEE Trans Comput Aided Des Integr Circuits Syst"},{"key":"4577_CR19","doi-asserted-by":"publisher","unstructured":"Carratal\u00e1-S\u00e1ez R, Faverge M, Pichon G, Sylvand G, Quintana-Ort\u00ed ES. Tiled algorithms for efficient task-parallel H-matrix solvers. In: IEEE international parallel and distributed processing symposium workshops (IPDPSW). 2020:757\u2013766. https:\/\/doi.org\/10.1109\/IPDPSW50202.2020.00131","DOI":"10.1109\/IPDPSW50202.2020.00131"},{"issue":"2","key":"4577_CR20","doi-asserted-by":"publisher","first-page":"89","DOI":"10.1007\/s006070050015","volume":"62","author":"W Hackbusch","year":"1999","unstructured":"Hackbusch W. A sparse matrix arithmetic based on $$\\cal{H} $$-matrices. Part I: introduction to $$\\cal{H} $$-matrices. Computing. 1999;62(2):89\u2013108.","journal-title":"Computing"},{"key":"4577_CR21","unstructured":"The GNU compiler collection: The GNU C++ Library, GCC Version 15.2.0. https:\/\/gcc.gnu.org\/onlinedocs\/gcc-15.2.0\/libstdc++\/ (visited on 05\/09\/2025)"},{"key":"4577_CR22","doi-asserted-by":"publisher","DOI":"10.1016\/J.JPDC.2025.105157","volume":"205","author":"N Furmento","year":"2025","unstructured":"Furmento N, Guermouche A, Lucas G, Thibault S, Wacrenier P-A. Optimizing parallel heterogeneous system efficiency: dynamic task graph adaptation with recursive tasks. J Parallel Distrib Comput. 2025;205:105157. https:\/\/doi.org\/10.1016\/J.JPDC.2025.105157.","journal-title":"J Parallel Distrib Comput"}],"container-title":["SN Computer Science"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s42979-025-04577-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s42979-025-04577-y","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s42979-025-04577-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,12,24]],"date-time":"2025-12-24T06:22:09Z","timestamp":1766557329000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s42979-025-04577-y"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,12,24]]},"references-count":22,"journal-issue":{"issue":"1","published-online":{"date-parts":[[2026,1]]}},"alternative-id":["4577"],"URL":"https:\/\/doi.org\/10.1007\/s42979-025-04577-y","relation":{},"ISSN":["2661-8907"],"issn-type":[{"value":"2661-8907","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,12,24]]},"assertion":[{"value":"17 June 2025","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"25 November 2025","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"24 December 2025","order":3,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors declare that they have no Conflict of interest.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflict of interest"}},{"value":"Informed consent was obtained from all individual participants included in this research.","order":3,"name":"Ethics","group":{"name":"EthicsHeading","label":"Ethical Approval and Consent to Participate"}}],"article-number":"31"}}