NODES supports the use of Coroutines provided that a compiler with C++20 support is used.
To compile with Coroutine support, the -fcoroutines flag must be passed, as shown in the example below:
clang++ -std=c++20 -fcoroutines -o test-coroutines.bin test-coroutines.cpp
For more detailed examples on the usage of Coroutines, check our correctness tests in the
tests/correctness/coroutine subdirectory, and the original published paper on coroutines:
Arnau Cinca, Aleix Roca, Kevin Sala, Raúl Peñacoba, David Álvarez, Vicenç Beltran. Enhancing OmpSs-2 Suspendable Tasks by Combining Operating System and User-Level Threads with C++ Coroutines, 2025 IEEE International Parallel and Distributed Processing Symposium (IPDPS), Milano, Italy, 2025, pp. 67-80. https://doi.org/10.1109/IPDPS64566.2025.00015.