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許可證