Tuesday, March 5 • 11:20am - 11:40am
Software Technology & Applications: An Overview of RAJA

Sign up or log in to save this to your schedule, view media, leave feedback and see who's attending!

With the rapid change of computing architectures, and variety of programming models, the
ability to develop performance portable applications has become of great importance. This is
particularly true in large production codes where developing and maintaining hardware specific
versions is untenable. In this talk, we provide an overview of RAJA, a C++ library that enables
application developers to write single-source code that can target multiple hardware and
programming model back-ends. RAJA has demonstrated its ability to simplify the development
of performance portable code through its adoption across a diverse set of production applications
at Lawrence Livermore National Laboratory. RAJA decouples loop bodies and execution via
programming model-specific implementations using standard C++11 features. This approach
enables developers to tune loop patterns, rather than individual loops, and enables applications to
be tailored at compile time to specific compute architectures. Furthermore, RAJA provides
abstractions for a wide range of loop structures found in numerical algorithms, reductions, data
layouts and views, iteration spaces, atomic operations, scans, etc. In addition to discussing
features, we discuss experiences integrating RAJA into production codes, performance, and
development as driven by the needs of applications. This work was performed under the auspices
of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract
DE-AC52-07NA27344. LLNL-ABS-765138.



Arturo Vargas

Lawrence Livermore National Lab

Tuesday March 5, 2019 11:20am - 11:40am CST
Room 280