Answers are grounded in this paper and cite their sources.
In this paper, we present the compiler transformation of OpenMP code to an ordered collection of tasks, and the compile time as well as runtime mapping of the resulting task graph to threads for data reuse. The ordering of tasks is relaxed where possible so that the code may be executed in a more loosely synchronous fashion. Our current implementation uses a runtime system that permits tasks to begin execution as soon as their predecessors have completed. A comparison of the performance of two example programs in their original OpenMP form and in the code form resulting from our translation is encouraging.
No takes yet. Share an insight, caveat, or question.
Weng et al. (2004) studied this question.
Synapse has enriched 10 related papers. Consider them for comparative context: