Raja是C ++软件摘要的库,主要是在Lawrence Livermore国家实验室(LLNL)开发的,它使HPC应用程序的体系结构和编程模型可移植性。拉贾有两个主要目标:
拉贾(Raja)通过提供扩展一般认可的习语平行的构建块来提供便携式,并行的循环执行。 Raja依赖于标准C ++ 14个功能。
Raja的设计植根于数十年来从事生产网格的多物理应用程序的经验。基于此类应用程序中使用的算法和软件工程风格的多样性,Raja旨在使应用程序开发人员能够调整Raja概念,并专门针对不同的代码实现模式和C ++使用。
拉贾(Raja)分享了其他C ++可移植性抽象方法中发现的目标和概念,例如Kokkos和推力。但是,它包括其他模型中缺少的概念和功能,这些模型是我们合作的应用程序的基础。
重要的是要注意,尽管Raja被用于多种生产应用中,但这是一个正在进行的工作。 LLNL积极贡献它的研究人员和应用程序开发人员的社区正在增长。 GITHUB版本可用的版本大多包含经过良好使用和测试良好的功能。我们的核心接口相当稳定,同时正在完善基本实现。未来版本将出现其他功能。
Raja代码生活在GitHub存储库中。要克隆回购,请使用命令:
git clone --recursive https://github.com/llnl/raja.git
然后,只要您拥有支持C ++ 14标准的C ++编译器,就可以像任何其他CMAKE项目一样构建Raja。使用系统默认编译器构建代码的最简单方法是在顶级Raja目录中运行以下命令序列(不允许使用源构建!):
mkdir build
cd build
cmake ../
make
有关Raja配置选项的更多详细信息位于Raja用户指南(下面链接)中。
我们还维护了一个Raja模板项目,该项目显示了如何在CMAKE项目中使用Raja,无论是作为Git子模块还是已安装的库。
Raja用户指南是开始学习Raja以及如何使用它的最佳场所。
用户指南的最新版本(Raja开发分支):https://raja.readthedocs.io
要访问其他Raja发行版本的文档:https://readthedocs.org/projects/raja/
我们为Raja Portaility Suite教程材料保留一个存储库:https://github.com/llnl/raja-suite-tutorial
引用拉贾(Raja),请使用以下参考文献:
Raja性能可移植性层。 https://github.com/llnl/raja
Da Beckingsale,J。Burmark,R。Hornung,H。Jones,W。Killian,AJ Kunen,O。Pearce,P。Robinson,P。Robinson,BS Ryujin,TRW Scogland,“ Raja:大规模科学应用的便携式性能”,2019年,2019年IEEE/ACM国际HPC(P3HPC)性能,可移植性和生产力的国际研讨会。在这里下载
Raja Performance Suite包含在多个Raja和非Raja变体中实现的循环内核的集合。我们使用它来使用各种编译器在不同平台上监视和评估Raja性能。许多主要的编译器供应商使用套件来改善对Raja等抽象的支持。 Raja Performance Suite是Raja使用示例的绝佳来源,您可以在其中比较各种不同内核和Raja后端的Raja和非Raja变体。
Raja代理存储库包含几种重要的HPC代理应用程序的Raja版本。
Chai提供了一个托管阵列抽象,该抽象与Raja一起使用,以自动将Raja内核中使用的数据复制到适当的执行空间。它是作为对Raja的补充而开发的。
与核心Raja开发团队沟通的最有效方法是通过我们的邮件列表: [email protected]
欢迎您加入我们的Raja Google Group。
如果您有疑问,找到一个错误,或对扩展Raja的功能或适用性有想法,并有兴趣为其开发做出贡献,请随时与我们联系。我们对改善Raja和探索使用新方法非常感兴趣。
Raja团队遵循Gitflow开发模型。希望为Raja做出贡献的人们应将其作品包括在Raja develop
Branch创建的功能分支中。该分支机构包含Raja的最新作品。然后,将develop
分支作为目的地创建一个拉请请求。我们定期将开发分支合并main
分支,并标记新版本。
请参阅Raja贡献者页面,以查看该项目的贡献者的完整列表。
Raja已获得BSD 3条差许可证的许可。
Raja项目中的版权和专利由贡献者保留。不需要版权分配才能为Raja做出贡献。
无限开放源代码-BSD 3频分发LLNL-CODE-689114
OCEC-16-063
有关发布详细信息和限制,请参阅以下信息:
单个文件包含SPDX标签,而不是完整的许可文本。此启用机器处理许可证信息基于SPDX许可证标识符,此处可用:https://spdx.org/licenses/
被许可为BSD 3句的文件包含许可头中的以下文本:
SPDX-License-Identifier: (BSD-3-Clause)
Raja将其外部依赖性捆绑为GIT存储库中的子模型。这些软件包由各种允许许可证涵盖。摘要清单如下。有关完整的详细信息,请参见每个软件包中包含的许可证。
Packagename:BLT
PackageHomePage:https://github.com/llnl/blt
packagelicensedeclared:bsd-3-cause
Packagename:营地
PackageHomePage:https://github.com/llnl/camp
packagelicensedeclared:bsd-3-cause
Packagename:Cub
PackageHomePage:https://github.com/nvlabs/cub
packagelicensedeclared:bsd-3-cause
Packagename:Rocprim
PackageHomePage:https://github.com/rocmsoftwareplatform/rocprim.git
Packagelicensedeclared:MIT许可证