Synergizing OpenMP Paradigms Through Free Agents and nOS-V
摘要
The recent OpenMP 6.0 standard introduces the free-agents feature, enabling a more dynamic execution model that improves application malleability and resource utilization. Free-agents allow idle threads within a parallel region to be reassigned to execute tasks from other regions. However, integrating this feature into complex runtimes—such as LLVM’s libomp—presents significant challenges due to its departure from traditional threading models. In previous work, we addressed the challenge of implementing free-agents by leveraging the nOS-V threading and tasking library. Our approach not only reduced the implementation complexity but also supported task-aware libraries and the co-execution of applications. Early evaluations demonstrated improved performance of libompv with free-agents compared to the original libomp implementation across a sample of benchmarks. In this paper, we expand our previous work with a more in-depth analysis using larger applications from the SPEC HPC 2021 benchmark suite and evaluate our initial hypothesis by co-executing applications with distinct parallelization paradigms. Furthermore, we extend instrumentation tools to analyze the core benefits of our free-agents implementation through nOS-V. Our results show that the free-agents implementation has negligible overhead across both tasking and fork-join modes, and that co-executing applications with distinct parallelism paradigms can produce performance benefits even when only one of the applications leverages the free-agents feature.