Detrimental task execution patterns in mainstream OpenMP runtimes
Adam S. Tuft, Tobias Weinzierl, Michael Klemm

TL;DR
This paper identifies performance issues caused by inconsistent implementation of OpenMP task annotations and proposes prescriptive clauses to improve runtime behavior, demonstrated through astrophysical simulation code analysis.
Contribution
It introduces prescriptive clauses for OpenMP task annotations to mitigate performance flaws caused by quasi-standard behaviors in mainstream runtimes.
Findings
Quasi-standard behaviors can cause performance flaws in OpenMP tasks.
Proposed clauses can constrain implementations to improve performance.
Incremental changes in runtimes can realize these clauses.
Abstract
The OpenMP API offers both task-based and data-parallel concepts to scientific computing. While it provides descriptive and prescriptive annotations, it is in many places deliberately unspecific how to implement its annotations. As the predominant OpenMP implementations share design rationales, they introduce "quasi-standards how certain annotations behave. By means of a task-based astrophysical simulation code, we highlight situations where this "quasi-standard" reference behaviour introduces performance flaws. Therefore, we propose prescriptive clauses to constrain the OpenMP implementations. Simulated task traces uncover the clauses' potential, while a discussion of their realization highlights that they would manifest in rather incremental changes to any OpenMP runtime supporting task priorities.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsDistributed and Parallel Computing Systems · Parallel Computing and Optimization Techniques · Cloud Computing and Resource Management
