arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1903.03023cs.DC
收藏

hpxMP简介:利用HPX(一种异步多任务系统)的现代OpenMP实现

An Introduction to hpxMP: A Modern OpenMP Implementation Leveraging HPX, An Asynchronous Many-Task System

Tianyi Zhang, Shahrzad Shirzad, Patrick Diehl, R. Tohid, Weile Wei, Hartmut Kaiser

摘要:

异步多任务(AMT)运行时系统由于细粒度任务运行时系统提供的性能改进而在HPC社区中获得越来越多的接受。与此同时,C++标准化工作的重点是创建更高级别的接口,以取代现代C++代码中的OpenMP或OpenACC。这些更高级别的函数已经在符合标准的运行时系统(如HPX)中采用,使用户能够在自己的代码中简单地利用fork-join并行性。尽管在运行时系统和标准化工作方面有创新,但用户在移植遗留应用程序时仍面临巨大挑战。用户不仅必须移植自己的代码,而且通常依赖于高度优化的库,如BLAS和LAPACK,它们使用OpenMP进行并行化。当前创建平滑迁移路径的努力一直在努力应对这些挑战,特别是AMT库的线程系统经常与OpenMP的线程系统竞争。为了克服这些问题,我们的团队开发了hpxMP,这是一种OpenMP标准的实现,它利用底层AMT系统来调度和管理任务。这种方法利用了HPX公开的C++接口,并允许用户在AMT系统上执行他们的应用程序,而无需更改他们的代码。在这项工作中,我们比较hpxMP与Clang的OpenMP库与Blaze C++库的四个线性代数基准。虽然hpxMP往往无法达到相同的性能,我们证明了可行性,为应用程序提供一个顺利的迁移,但必须扩展到受益于更一般的基于任务的编程模型。

英文摘要:

Asynchronous Many-task (AMT) runtime systems have gained increasing acceptance in the HPC community due to the performance improvements offered by fine-grained tasking runtime systems. At the same time, C++ standardization efforts are focused on creating higher-level interfaces able to replace OpenMP or OpenACC in modern C++ codes. These higher level functions have been adopted in standards conforming runtime systems such as HPX, giving users the ability to simply utilize fork-join parallelism in their own codes. Despite innovations in runtime systems and standardization efforts users face enormous challenges porting legacy applications. Not only must users port their own codes, but often users rely on highly optimized libraries such as BLAS and LAPACK which use OpenMP for parallization. Current efforts to create smooth migration paths have struggled with these challenges, especially as the threading systems of AMT libraries often compete with the treading system of OpenMP. To overcome these issues, our team has developed hpxMP, an implementation of the OpenMP standard, which utilizes the underlying AMT system to schedule and manage tasks. This approach leverages the C++ interfaces exposed by HPX and allows users to execute their applications on an AMT system without changing their code. In this work, we compare hpxMP with Clang's OpenMP library with four linear algebra benchmarks of the Blaze C++ library. While hpxMP is often not able to reach the same performance, we demonstrate viability for providing a smooth migration for applications but have to be extended to benefit from a more general task based programming model.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑