Detrimental task execution patterns in mainstream OpenMP runtimes
<|reference_start|>Detrimental task execution patterns in mainstream OpenMP runtimes: 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.<|reference_end|>
@article{tuft2024detrimental,
    title={Detrimental task execution patterns in mainstream OpenMP runtimes},
    author={Adam S. Tuft and Tobias Weinzierl and Michael Klemm},
    journal={arXiv preprint arXiv:2406.03077},
    year={2024},
    doi={10.1007/978-3-031-72567-8_14},
    archivePrefix={arXiv},
    eprint={2406.03077},
    primaryClass={cs.PL cs.DC}
}