Juliacon 2024

FastIce.jl: a massively parallel ice flow model running on GPUs
2024-07-10 , For Loop (3.2)

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.


Efficient modeling of ice sheets involves considering multiple coupled physical processes, including thermo-mechanical interactions. While using a Full-Stokes model to resolve ice flow in Greenland and Antarctica provides most accurate results, it can be cost-prohibitive on a large scale with existing software, necessitating the use of high-performance computing (HPC).

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 Stokes ice flow model. FastIce.jl is written to be easily extensible, and its core is fully differentiable, enabling data assimilation pipelines using adjoint sensitivities and automatic differentiation (AD).

In this talk, we present the modular architecture of FastIce.jl, consisting of core library of components, and monolithic solvers implementing ice flow models. The core library aims to simplify the development of the numerical algorithms on structured grids, and includes functions and data types for working with computational grids, fields, boundary conditions, and discrete differential operators. The solvers build upon the core library and include the computational kernels to integrate the equations of ice motion.

We describe our usage of task-based programming in Julia to simplify synchronisation between concurrently running GPU kernels, CPU functions, and MPI communication. We present the performance testing of FastIce.jl in single-node and distributed scaling benchmarks on LUMI, the largest European supercomputer.

Computational Scientist | Responsible for Julia computing
Swiss National Supercomputing Centre (CSCS), ETH Zurich

This speaker also appears in:

I am a glaciologist and Julia programmer. I work at ETH-Zurich and the Swiss Federal Institute for Forest, Snow and Landscape Research (WSL).

This speaker also appears in: