RAJA is a software library of C++ abstractions targeting portable, parallel loop execution. These abstractions insulate the application from the back-end programming model details. Developers port their RAJA application to new back-ends by implementing template parameter execution policies, which are typically stored in header files. These execution policies include statements that express how loops should be executed and how indexes should map to the back-end indexes. This allows the kernel body to remain unchanged while porting to a new back-end. To ensure that the abstraction layer does not introduce overhead, the RAJA Performance Suite is used to assess the performance of loop-based HPC kernels implemented in both RAJA and the underlying back-end programming model.
Previous releases of SW4 were OpenMP implementations for multi-threaded CPU execution. Recent releases utilize RAJA with implemented execution policies using OpenMP and CUDA statements for targeting CPUs and NVIDIA GPUs respectively. The RAJA SYCL and OpenMP-Target backends will be available for execution on Aurora. The existing execution policies will be implemented for these back-ends.
The porting effort was initiated with the SW4lite proxy application, which provided a development vehicle for driving preparation while also allowing the developers to quickly identify issues for rapid resolution. The RAJA-SYCL back-end execution policies have been implemented in the SW4lite proxy application for early testing and experimentation.
Enabling the RAJA on Intel devices has been accomplished by utilizing oneAPI and several extensions in the DPC++ compiler. Intel's Unnamed kernel lambdas are critical for portability libraries to support general kernel execution. The Unified Shared Memory extension allows abstraction libraries to decouple loop execution from memory management. Intel's Extended Atomics and Global ID access have enabled support for the RAJA reduction object.
The developers have also made important use of many features of the SYCL programming model. Principal among these is the use SYCL nd_ranges to support fine-grained control over loop execution. The nd_ranges provide the flexibility required by a library to handle complex and simple loop executions. Through nd_ranges the RAJA-SYCL backend can launch simple one-dimensional SYCL kernels or complex three dimensional kernels with explicit work group sizes.
Preparing an earthquake risk assessment application for exascale ...
A bit too much: reducing the bit width of Ising models for quantum annealing ...
The world's first integrated quantum communication network ...
Northern Data acquires data centre site in Northern Sweden fully powered by green energy ...
Environmental researchers benefit from powerful supercomputer at Plymouth Marine Laboratory ...
XSEDE welcomes new service providers ...
IBM appoints Gary D. Cohn as Vice Chairman ...
Light-based processors boost machine-learning processing ...
Existing Northern Data bitcoin mining customer expands contract volume by more than 200 MW ...
Power XL Pro launched as new professional server based on AMD EPYC technology ...
Swinburne-led research team demonstrates world's fastest optical neuromorphic processor ...
Supercomputer models describe chloride's role in corrosion ...
HPC-AI Advisory Council to host HPC AI AC Conference in Japan on January, 26 ...
Insights through atomic simulation ...
Advanced materials in a snap ...
New data-driven global climate model provides projections for urban environments ...
Frequency data for stable power supply ...
Physicists observe competition between magnetic orders ...
UTSA Artificial Intelligence Consortium receives over $1 million in research funding ...
Entangling electrons with heat ...
NIO partners with NVIDIA to develop a new generation of automated driving electric vehicles ...
Navantia leverages Ansys' digital transformation solutions to design next-gen naval vessels ...
Engineering graduate student places second in international research competition ...
Covid-19 genome sequencing project gets major upgrade ...
UJET CCaaS Cloud contact centre now available on Oracle Cloud Marketplace ...