Samuel Omlin
Computational Scientist | Responsible for Julia computing
Swiss National Supercomputing Centre (CSCS), ETH Zurich
Sessions
We introduce FastIce.jl, a novel ice flow model for massively parallel architectures, written in Julia. Leveraging GPUs (Nvidia, AMD) and supporting distributed computing through MPI.jl, FastIce.jl includes a thermo-mechanically coupled Full-Stokes ice flow model. We present the performance testing of FastIce.jl in single-node and distributed scaling benchmarks on LUMI, the largest European supercomputer.
We present a new approach to transition seamlessly and with unprecedented effectiveness from a single-CPU-core Python prototype to a Julia application that is deployable on distributed GPUs. During porting of the Python prototype to Julia, the approach enables concurrent interactive stepwise execution of both codes and systematic verification almost line by line.
We present a successful approach for a sustainable development of stencil-based HPC applications in Julia. The approach includes automatic performance optimization for hardware-agnostic high-level kernels, data layout abstractions enabling memory layouts optimized per backend, and GPU-aware inter-process communication that is automatically hideable behind computation. We demonstrate on multiple examples near optimal performance and scaling on thousands of GPUs.