{"id":19705817,"url":"https://github.com/llnl/raja","last_synced_at":"2025-05-15T01:08:33.978Z","repository":{"id":37256694,"uuid":"57340960","full_name":"LLNL/RAJA","owner":"LLNL","description":"RAJA Performance Portability Layer (C++)","archived":false,"fork":false,"pushed_at":"2025-05-15T00:17:10.000Z","size":41223,"stargazers_count":517,"open_issues_count":229,"forks_count":104,"subscribers_count":32,"default_branch":"develop","last_synced_at":"2025-05-15T00:31:04.064Z","etag":null,"topics":["blt","c-plus-plus","cpp","llnl","parallel-computing","portability","programming-model","radiuss","raja"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LLNL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-04-28T23:46:22.000Z","updated_at":"2025-05-14T10:33:53.000Z","dependencies_parsed_at":"2023-10-14T20:57:54.177Z","dependency_job_id":"4d838d1e-8b0e-4ca3-9deb-1b79caadf911","html_url":"https://github.com/LLNL/RAJA","commit_stats":{"total_commits":7326,"total_committers":124,"mean_commits":59.08064516129032,"dds":0.7794157794157794,"last_synced_commit":"7a20ea0f8f0f913603df7c8ceca80028adf1d4ba"},"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FRAJA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FRAJA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FRAJA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FRAJA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLNL","download_url":"https://codeload.github.com/LLNL/RAJA/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254254042,"owners_count":22039792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blt","c-plus-plus","cpp","llnl","parallel-computing","portability","programming-model","radiuss","raja"],"created_at":"2024-11-11T21:30:41.887Z","updated_at":"2025-05-15T01:08:28.967Z","avatar_url":"https://github.com/LLNL.png","language":"C++","readme":"\n[comment]: # (#################################################################)\n[comment]: # (Copyright 2016-25, Lawrence Livermore National Security, LLC)\n[comment]: # (and RAJA project contributors. See the RAJA/LICENSE file)\n[comment]: # (for details.)\n[comment]: # \n[comment]: # (# SPDX-License-Identifier: BSD-3-Clause)\n[comment]: # (#################################################################)\n\n# \u003cimg src=\"/share/raja/logo/RAJA_LOGO_Color.png?raw=true\" width=\"128\" valign=\"middle\" alt=\"RAJA\"/\u003e\n\n[![Azure Pipeline Build Status](https://dev.azure.com/LLNL-RAJA/RAJA/_apis/build/status/LLNL.RAJA?branchName=develop)](https://dev.azure.com/LLNL-RAJA/RAJA/_build/latest?definitionId=1\u0026branchName=develop)\n[![Documentation Status](https://readthedocs.org/projects/raja/badge/?version=develop)](https://raja.readthedocs.io/en/develop/?badge=develop)\n[![Coverage](https://img.shields.io/codecov/c/github/LLNL/RAJA/develop.svg)](https://codecov.io/gh/LLNL/RAJA)\n[![Join the chat at https://gitter.im/llnl/raja](https://badges.gitter.im/llnl/raja.svg)](https://gitter.im/llnl/raja?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nRAJA is a library of C++ software abstractions, primarily developed at\nLawrence Livermore National Laboratory (LLNL), that enables architecture\nand programming model portability for HPC applications. RAJA has two main goals:\n\n  * To enable application portability with manageable disruption to existing\n    algorithms and programming styles\n  * To achieve performance comparable to using common programming models,\n    such as OpenMP, CUDA, etc. directly.\n\nRAJA offers portable, parallel loop execution by providing building blocks \nthat extend the generally-accepted parallel for idiom. RAJA relies on standard \nC++14 features.\n\nRAJA's design is rooted in decades of experience working on \nproduction mesh-based multiphysics applications. Based on the diversity of\nalgorithms and software engineering styles used in such applications, RAJA \nis designed to enable application developers to adapt RAJA concepts and \nspecialize them for different code implementation patterns and C++ usage.\n\nRAJA shares goals and concepts found in\nother C++ portability abstraction approaches, such as\n[Kokkos](https://github.com/kokkos/kokkos)\nand [Thrust](https://developer.nvidia.com/thrust). \nHowever, it includes concepts and capabilities that are absent in other models \nthat are fundamental to applications we work with.\n\nIt is important to note that, although RAJA is used in a diversity of \nproduction applications, it is very much a work-in-progress. The community \nof researchers and application developers at LLNL that actively contribute to \nit is growing. Versions available as [GitHub releases](https://github.com/LLNL/RAJA/releases) contain mostly well-used and well-tested features. Our core \ninterfaces are fairly stable while underlying implementations are being \nrefined. Additional features will appear in future releases.\n\nQuick Start\n-----------\n\nThe RAJA code lives in a GitHub [repository](https://github.com/llnl/raja).\nTo clone the repo, use the command:\n\n    git clone --recursive https://github.com/llnl/raja.git\n\nThen, you can build RAJA like any other CMake project, provided you have a C++\ncompiler that supports the C++14 standard. The simplest way to build the code,\nusing your system default compiler, is to run the following sequence of \ncommands in the top-level RAJA directory (in-source builds are not allowed!):\n\n    mkdir build\n    cd build\n    cmake ../\n    make\n\nMore details about RAJA configuration options are located in the RAJA User Guide\n(linked below). \n\nWe also maintain a [**RAJA Template Project**](https://github.com/LLNL/RAJA-project-template) that shows how to use RAJA in a CMake project, either as a Git\nsubmodule or as an installed library.\n\nUser Documentation and Tutorials\n--------------------------------\n\nThe RAJA User Guide is the best place to start learning about RAJA and how to\nuse it.\n\nThe most recent version of the User Guide (RAJA develop branch): https://raja.readthedocs.io\n\nTo access docs for other RAJA released versions: https://readthedocs.org/projects/raja/\n\nWe maintain a repository for the RAJA portaility suite tutorial material: https://github.com/LLNL/raja-suite-tutorial\n\nTo cite RAJA, please use the following references:\n\n* RAJA Performance Portability Layer. https://github.com/LLNL/RAJA\n\n* D. A. Beckingsale, J. Burmark, R. Hornung, H. Jones, W. Killian, A. J. Kunen, O. Pearce, P. Robinson, B. S. Ryujin, T. R. W. Scogland, \"RAJA: Portable Performance for Large-Scale Scientific Applications\", 2019 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC). [Download here](https://conferences.computer.org/sc19w/2019/#!/toc/14)\n\nRelated Software\n--------------------\n\nThe [**RAJA Performance Suite**](https://github.com/LLNL/RAJAPerf) contains\na collection of loop kernels implemented in multiple RAJA and non-RAJA\nvariants. We use it to monitor and assess RAJA performance on different\nplatforms using a variety of compilers. Many major compiler vendors use the\nSuite to improve their support of abstractions like RAJA. **The RAJA\nPerformance Suite is an excellent source of examples of RAJA usage where you\ncan compare RAJA and non-RAJA variants of a variety of different kernels and\nRAJA back-ends.**\n\nThe [**RAJA Proxies**](https://github.com/LLNL/RAJAProxies) repository \ncontains RAJA versions of several important HPC proxy applications.\n\n[**CHAI**](https://github.com/LLNL/CHAI) provides a managed array abstraction\nthat works with RAJA to automatically copy data used in RAJA kernels to the\nappropriate space for execution. It was developed as a complement to RAJA.\n\nCommunicate with Us\n-------------------\n\nThe most effective way to communicate with the core RAJA development team\nis via our mailing list: **raja-dev@llnl.gov** \n\nYou are also welcome to join our [RAJA Google Group](https://groups.google.com/forum/#!forum/raja-users).\n\nIf you have questions, find a bug, or have ideas about expanding the\nfunctionality or applicability of RAJA and are interested in contributing\nto its development, please do not hesitate to contact us. We are very\ninterested in improving RAJA and exploring new ways to use it.\n\nContributions\n---------------\n\nThe RAJA team follows the [GitFlow](http://nvie.com/posts/a-successful-git-branching-model/) development model. Folks wishing to contribute to RAJA, should\ninclude their work in a feature branch created from the RAJA `develop` branch.\nThat branch contains the latest work in RAJA. Then, create a pull request \nwith the `develop` branch as the destination. Periodically, we merge the \ndevelop branch into the `main` branch and tag a new release.\n\nAuthors\n-----------\n\nPlease see the [RAJA Contributors Page](https://github.com/LLNL/RAJA/graphs/contributors), to see the full list of contributors to the project.\n\n\nLicense\n-----------\n\nRAJA is licensed under the [BSD 3-Clause license](https://opensource.org/licenses/BSD-3-Clause).\n\nCopyrights and patents in the RAJA project are retained by contributors.\nNo copyright assignment is required to contribute to RAJA.\n\nUnlimited Open Source - BSD 3-clause Distribution\n`LLNL-CODE-689114`  `OCEC-16-063`\n\nFor release details and restrictions, please see the information in the\nfollowing:\n- [RELEASE](./RELEASE)\n- [LICENSE](./LICENSE)\n- [NOTICE](./NOTICE)\n\n\nSPDX usage\n------------\n\nIndividual files contain SPDX tags instead of the full license text.\nThis enables machine processing of license information based on the SPDX\nLicense Identifiers that are available here: https://spdx.org/licenses/\n\nFiles that are licensed as BSD 3-Clause contain the following\ntext in the license header:\n\n    SPDX-License-Identifier: (BSD-3-Clause)\n\nExternal Packages\n-------------------\nRAJA bundles its external dependencies as submodules in the git repository.\nThese packages are covered by various permissive licenses.  A summary listing\nfollows. See the license included with each package for full details.\n\nPackageName: BLT  \nPackageHomePage: https://github.com/LLNL/blt  \nPackageLicenseDeclared: BSD-3-Clause\n\nPackageName: camp   \nPackageHomePage: https://github.com/LLNL/camp  \nPackageLicenseDeclared: BSD-3-Clause\n\nPackageName: CUB   \nPackageHomePage: https://github.com/NVlabs/cub  \nPackageLicenseDeclared: BSD-3-Clause\n\nPackageName: rocPRIM   \nPackageHomePage: https://github.com/ROCmSoftwarePlatform/rocPRIM.git  \nPackageLicenseDeclared: MIT License\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fraja","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllnl%2Fraja","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fraja/lists"}