Extending OP2 framework to support portable parallel programming of complex applications

CCF Transactions on High Performance Computing(2023)

引用 0|浏览2
暂无评分
摘要
Current HPC hardware presents the characteristics of heterogeneity and diversity. Portable parallel programming technologies are attractive for application developers. OP2 is a domain specific programming framework for unstructured applications. It supports unified programming and automatic code generation for multiple hardware platforms. However, current OP2 implementation is faced with some difficulties in programming application with complex data structures and function calls. To address this issue, we improve the implementation of OP2 framework in this paper. We modified the source-to-source translator and the runtime library of OP2, making it possible to automatically support applications with complex data structures and function calls during the generation of serial, OpenMP, CUDA, and MPI versions of codes. This avoids tedious manual code rewriting process for the OP2 application developers. HOUR2D, a high order and complex unstructured CFD application, is used as an example to verify the applicability of our extension to the OP2 framework. The results show that our extension enables OP2 to support portable programming for complex unstructured applications without changing its programming mode, ensures the correctness of the results, and achieves comparable or even better performance than manual parallelizations on Intel Xeon Gold CPU, HUAWEI Kunpeng CPU and NVIDIA V100 GPU.
更多
查看译文
关键词
Unstructured mesh applications,Portable parallel programming,OP2,Complex applications,Applicability,Performance
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要