在hpxMP中支持OpenMP 5.0任务--在基于任务的并行计算系统中实现OpenMP的研究
Supporting OpenMP 5.0 Tasks in hpxMP -- A study of an OpenMP implementation within Task Based Runtime Systems
摘要:
十多年来,OpenMP一直是单节点并行性的事实标准。近年来,异步多任务运行时(AMT)系统作为一种新的高性能计算应用程序的编程范例越来越受欢迎。这种新模式的主要挑战之一是OpenMP线程模型和其他AMT的不兼容性。高度优化的基于OpenMP的库在与AMT结合使用时性能不佳,因为两个库的线程将竞争资源。本文是关于hpxMP基本实现的后续论文,hpxMP是OpenMP标准的实现,它利用C++并行和并发(HPX)标准库来调度和管理任务。在本文中,我们提出的任务功能,如任务组,任务依赖,任务_减少,的OpenMP 5.0标准和优化的#pragma omp并行pragma的实现。我们使用daxpy基准测试、Barcelona OpenMP Tasks Suite、并行研究内核和OpenBLAS基准测试来比较不同的OpenMp实现:hpxMP、llvm-OpenMP和GOMP。
英文摘要:
OpenMP has been the de facto standard for single node parallelism for more than a decade. Recently, asynchronous many-task runtime (AMT) systems have increased in popularity as a new programming paradigm for high performance computing applications. One of the major challenges of this new paradigm is the incompatibility of the OpenMP thread model and other AMTs. Highly optimized OpenMP-based libraries do not perform well when coupled with AMTs because the threading of both libraries will compete for resources. This paper is a follow-up paper on the fundamental implementation of hpxMP, an implementation of the OpenMP standard which utilizes the C++ standard library for Parallelism and Concurrency (HPX) to schedule and manage tasks. In this paper, we present the implementation of task features, e.g. taskgroup, task depend, and task_reduction, of the OpenMP 5.0 standard and optimization of the #pragma omp parallel for pragma. We use the daxpy benchmark, the Barcelona OpenMP Tasks Suite, Parallel research kernels, and OpenBLAS benchmarks to compare the different OpenMp implementations: hpxMP, llvm-OpenMP, and GOMP.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。