Minisymposium Presentation
SYCLing Through the Portability Maze: Adventures in Scientific Application Migration with DPEcho and HemeLB
Description
In our presentation we explore the portability challenges and solutions encountered in adapting scientific applications to heterogeneous computing architectures using SYCL. To this end, we present two application porting efforts, HemeLB and DPEcho, spanning different scientific domains and requiring different porting strategies. DPEcho is a general relativistic magnetohydrodynamics (GR-MHD) code for compact, magnetized astrophysical objects, such as black hole accretion and stellar winds, or MHD waves. DPEcho is a SYCL + MPI rewriting of a legacy CPU-only Fortran application, written with the goals of source readability and cross-platform portability in mind. At the same time, we achieved a high performance on all tested hardware, and outperformed the original implementation on the same CPU architecture. HemeLB is a large-scale Lattice Boltzmann solver developed for simulating blood flow in sparse geometries such as the human vasculature system. It cleverly overlaps communication and computation to achieve good scaling on large-scale HPC systems. With a CUDA version already available, we pursued SYCL porting using the automatic Data Parallel C++ Compatibility (DPCT) tool, and then manually refactored sections of the code to account for differences between programming models. This resulted in a unified code tree which can execute on all major GPU architectures.