C++ CMake Shell Python
Latest commit 490b3fa Nov 16, 2017 @ajkunen ajkunen Merge pull request #365 from LLNL/feature/kunen1/cuda_collapse
Initial implementation of the nested::Collapse for CUDA policies.
Failed to load latest commit information.
blt @ 949f45a Update to latest BLT master Sep 22, 2017
cmake Use TBB_LIBRARIES variable Oct 10, 2017
docs bump version number Oct 11, 2017
examples Merge branch 'develop' into feature/omp_target_reduce_update Oct 24, 2017
host-configs Merge pull request #336 from LLNL/bugfix/rhornung67/clang-warnings Sep 28, 2017
include Merge branch 'develop' into feature/kunen1/cuda_collapse Nov 16, 2017
scripts Merge remote-tracking branch 'upstream' into feature/trws/foralln-rei… Oct 10, 2017
share/raja Intial pass at adding BLT Jul 27, 2017
src Update IndexSetBuilders to use Index_type* for LULESH Oct 5, 2017
test Merge branch 'develop' into feature/kunen1/cuda_collapse Nov 16, 2017
.clang-format updated pull request by merging in latest develop changes and fixing Jul 18, 2016
.gitignore IT BUILDS! Aug 17, 2017
.gitmodules Intial pass at adding BLT Jul 27, 2017
.travis.yml Merge branch 'bugfix/tbb-build' of github.com:LLNL/RAJA into bugfix/t… Oct 10, 2017
CMakeLists.txt bump version number Oct 11, 2017
CODE_OF_CONDUCT.md Fix email address Jun 30, 2017
CONTRIBUTING.md Fix typo Jul 6, 2017
Dockerfile Intial pass at adding BLT Jul 27, 2017
LICENSE Broke LICENSE file into three files: RELEASE, LICENSE, NOTICE. Sep 25, 2017
NOTICE Broke LICENSE file into three files: RELEASE, LICENSE, NOTICE. Sep 25, 2017
README.md bump version number Oct 11, 2017
RELEASE bump version number Oct 11, 2017
appveyor.yml Adding clang-cuda support Jul 31, 2017
codecov.yml Updated codecov configuration Aug 10, 2017


RAJA v0.4.1

Build Status Join the chat at https://gitter.im/llnl/raja Coverage

RAJA is a collection of C++ software abstractions, being developed at Lawrence Livermore National Laboratory (LLNL), that enable architecture portability for HPC applications. The overarching goals of RAJA are to:

  • Make existing (production) applications portable with minimal disruption
  • Provide a model for new applications so that they are portable from inception.

RAJA uses standard C++11 -- C++ is the predominant programming language in which many LLNL codes are written. RAJA is rooted in a perspective based on substantial experience working on production mesh-based multiphysics applications at LLNL. Another goal of RAJA is to enable application developers to adapt RAJA concepts and specialize them for different code implementation patterns and C++ usage, since data structures and algorithms vary widely across applications.

RAJA shares goals and concepts found in other C++ portability abstraction approaches, such as Kokkos and Thrust. However, it includes concepts that are absent in other models and which are fundamental to LLNL codes.

It is important to note that RAJA is very much a work-in-progress. The community of researchers and application developers at LLNL that are actively contributing to it and developing new capabilities is growing. The publicly-released version contains only core pieces of RAJA as they exist today. While the basic interfaces are fairly stable, the implementation of the underlying concepts is being refined. Additional features will appear in future releases.

Quick Start

The RAJA code lives in a GitHub repository. To clone the repo, use the command:

git clone --recursive https://github.com/llnl/raja.git

Then, you can build RAJA like any other CMake project, provided you have a C++ compiler that supports the C++11 standard. The simplest way to build the code is to do the following in the top-level RAJA directory (in-source builds are not allowed!):

mkdir build
cd build
cmake ../

More details about RAJA configuration options are located in the User Documentation.

Example Applications

The RAJA-examples repository contains three proxy applications that use the RAJA programming model. These applications can be built along with the rest of the RAJA framework by setting -DENABLE_APPLICATIONS=On when running CMake.

When this option is passed to CMake, the RAJA-examples repository is cloned using git to the directory extra/llnl-raja-proxies in the project root. The example applications will be built using the same configuration that the RAJA library uses.

User Documentation

The Documentation is the best place to start learning about RAJA.

Other references that may be of interest include:

To cite RAJA, please use the following reference:

Mailing List

Interested in keep up with RAJA or communicating with its developers and users? Please join our mailing list over at Google Groups:

If you have questions, find a bug, or have ideas about expanding the functionality or applicability of RAJA and are interested in contributing to its development, please do not hesitate to contact us. We are very interested in improving RAJA and exploring new ways to use it.


The RAJA team follows the GitFlow development model. Folks wishing to contribute to RAJA, should include their work in a feature branch created from the RAJA develop branch. Then, create a pull request with the develop branch as the destination. That branch contains the latest work in RAJA. Periodically, we will merge the develop branch into the master branch and tag a new release.


The original developers of RAJA are:

Please see the {RAJA Contributors Page](https://github.com/LLNL/RAJA/graphs/contributors), to see the full list of contributors to the project.


Copyright (c) 2016-2017, Lawrence Livermore National Security, LLC.

Produced at the Lawrence Livermore National Laboratory.

All rights reserved.

LLNL-CODE-689114 OCEC-16-063

Unlimited Open Source - BSD Distribution

For release details and restrictions, please read the RELEASE, LICENSE, and NOTICE files, also linked here: