The orchestration of complex algorithms demands high levels of automation to use modern hardware efficiently. Task-based programming with OpenMP is a prominent candidate to accomplish this goal. We study OpenMP5's tasking in the context of a wave equation solver (ExaHyPE) using three different architectures and runtimes. We describe several task-scheduling flaws present in currently available runtimes, demonstrate how they impact performance and show how to work around them. Finally, we propose extensions to the OpenMP standard.
翻译:复杂算法的设计要求高度自动化,以便高效地使用现代硬件。与 OpenMP 一起的基于任务的程序是实现这一目标的突出候选方。我们研究OpenMP5在波等式解答器(ExaHyPE)中的任务使用三种不同的架构和运行时间。我们描述了当前运行时间中存在的若干任务排期缺陷,演示它们如何影响业绩并展示如何围绕它们开展工作。最后,我们提议扩展 OpenMP 标准 。