Minisymposium Presentation
Shamrock: Scaling SPH to Exascale for Astrophysics Using SYCL
Description
Shamrock is a native SYCL-based framework designed for numerical astrophysics on exascale architectures. Developed in C++17, Shamrock addresses the growing need for efficient and scalable solutions in hydrodynamical simulations for astrophysics. The core of the framework utilizes a ray-tracing-inspired parallel tree structure nested within an abstracted domain decomposition. This design enables the efficient implementation of the Smoothed Particle Hydrodynamics (SPH) algorithm, providing significant speedups for large-scale simulations and scalability across thousands of GPUs. We chose SYCL for its portability across CPU and GPU vendors, as well as its performance portability, allowing us to maintain the same code paths throughout the codebase. This presentation will introduce Shamrock, its use of SYCL, its performance across multiple vendors and backends, and the reasons behind our initial decision to develop the framework with the buffer/accessor model. We will also discuss our migration to the Unified Shared Memory (USM) model to achieve finer memory control and reduced latencies.