Skip to main content
QUICK REVIEW

[论文解读] Portability: A Necessary Approach for Future Scientific Software

Meghna Bhattacharya, P. Calafiura|arXiv (Cornell University)|Mar 16, 2022
Distributed and Parallel Computing Systems被引用 7
一句话总结

本文提出可移植并行化策略(PPS),旨在使高能物理(HEP)科学软件能够在多种硬件(尤其是GPU和FPGA)上高效运行,而无需为每种平台重写代码。文章评估了Kokkos、SYCL、OpenMP和C++的std::execution等现有解决方案,得出结论:尽管目前尚无单一理想方案,但社区驱动的标准化和厂商支持对于未来可移植性及科学计算的可持续性至关重要。

ABSTRACT

Today's world of scientific software for High Energy Physics (HEP) is powered by x86 code, while the future will be much more reliant on accelerators like GPUs and FPGAs. The portable parallelization strategies (PPS) project of the High Energy Physics Center for Computational Excellence (HEP/CCE) is investigating solutions for portability techniques that will allow the coding of an algorithm once, and the ability to execute it on a variety of hardware products from many vendors, especially including accelerators. We think without these solutions, the scientific success of our experiments and endeavors is in danger, as software development could be expert driven and costly to be able to run on available hardware infrastructure. We think the best solution for the community would be an extension to the C++ standard with a very low entry bar for users, supporting all hardware forms and vendors. We are very far from that ideal though. We argue that in the future, as a community, we need to request and work on portability solutions and strive to reach this ideal.

研究动机与目标

  • 应对高能物理计算中日益严重的硬件异构性挑战,因GPU、FPGA和SoC的兴起,仅支持x86的代码已不再足够。
  • 克服为大规模HEP实验(代码量达数百万行)维护多个硬件特定代码库所带来的低效与高昂成本。
  • 评估并比较现有的可移植编程模型,以识别适用于HEP工作负载的可行且可扩展的解决方案。
  • 为HEP实验及更广泛的科学社区提供可操作的建议,推动采用可移植并行化技术。
  • 倡导未来C++标准扩展,以实现低门槛、可移植且以可移植性为先的科学计算,覆盖所有硬件厂商和架构。

提出的方法

  • 评估五种关键的可移植编程模型:Kokkos、SYCL、Alpaka、OpenMP/OpenACC,以及C++的std::execution::parallel。
  • 在每种可移植性抽象层上实现来自真实实验(如CMS、DUNE、ATLAS、ACTS)的代表性HEP工作负载,以评估实际可行性。
  • 使用一组标准化指标(聚焦于开发体验、性能、可移植性及生态系统成熟度)对各项技术进行比较。
  • 通过实际编码实现如像素重建、空间点形成和快速电磁量能器模拟等用例,覆盖不同后端。
  • 利用主要厂商(NVIDIA、AMD、Intel、LLVM、GNU)的现有编译器支持,测试真实性能与兼容性。
  • 评估基于指令的模型(如OpenMP)与基于语言的模型(如SYCL、Kokkos)的差异,包括对异步执行、内存管理及GPU卸载的支持。

实验结果

研究问题

  • RQ1现有的可移植编程模型(如OpenMP、SYCL、Kokkos)是否能够使HEP工作负载在包括GPU和FPGA在内的多种硬件平台上高效地编译与执行?
  • RQ2在不同可移植并行化解决方案之间,开发人员生产力、性能可移植性与生态系统成熟度之间的关键权衡是什么?
  • RQ3与基于语言的模型(如SYCL和Kokkos)相比,基于指令的模型(如OpenMP)在HEP特定工作负载中的易用性与性能表现如何?
  • RQ4当前的编译器和运行时系统在多大程度上支持生产级HEP工作负载所需的特性(如异步内核、内存空间、与厂商库的互操作)?
  • RQ5未来C++标准扩展在统一可移植HEP软件开发、减少厂商锁定方面可发挥何种作用?

主要发现

  • PPS项目发现,尽管目前尚无单一可移植解决方案能适用于所有HEP用例,但OpenMP、SYCL和Kokkos等技术在跨架构执行方面已展现出强劲的可行性。
  • OpenMP目标卸载在GPU加速方面表现出良好前景,主要HPC厂商正在积极开发支持其的编译器和运行时系统。
  • C++的std::execution::parallel(std::par)为开发者提供了低门槛接入,但目前编译器支持尚不成熟,且在GPU后端存在性能限制。
  • Kokkos和Alpaka提供了强大的异构执行抽象层,但相比基于指令的模型,其集成深度和所需专业知识更高。
  • SYCL和OpenMP由于其高层抽象和日益增长的产业支持(尤其是来自Intel、NVIDIA和AMD),展现出巨大潜力。
  • 尽管已有进展,但性能和可移植性在不同编译器和硬件之间仍不一致,缺乏统一、标准化且广泛采纳的解决方案仍是科学软件可持续性的主要障碍。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。