SC4.6

Solving differential equations in parallel with Julia

Why to wait hours for computations to complete, when it could take only a few seconds? Tired of prototyping code in an interactive, high-level language like MATLAB, R or Python and rewriting it in a lower-level language such as C, C++ or Fortran to get high-performance code? Or simply curious about how GPUs and supercomputing are game changers in geosciences?

This short course covers trendy areas in modern geocomputing with broad geoscientific applications. The physical processes governing natural systems' evolution are often mathematically described as systems of differential equations. A performant numerical implementation of the solving algorithm leveraging modern hardware is key and permits to tackle problems that were technically not possible a decade ago.

The goal of this short course is to offer an interactive and tutorial-like hands-on to solve systems of differential equations in parallel on GPUs using the Julia language. Julia combines high-level language simplicity and low-level language performance. The resulting codes and applications are fast, short and readable. We will design and implement a numerical algorithm that predicts ice flow dynamics over mountainous topography using a high-performance computing approach.

The course format is online. You will work on (remote) notebooks to enable best participant experience. The course consists of 2 parts:
1. You will learn about the Julia language, parallel and distributed computing and iterative solvers.
2. You will implement a PDE solver to predict ice flow dynamics on real topography.

By the end of this short course, you will:
- Have a GPU PDE solver that predicts ice-flow;
- Have a Julia code that achieves similar performance than legacy codes (C, CUDA, MPI);
- Know how the Julia language solves the "two-language problem";
- Be able to leverage the computing power of modern GPU accelerated servers and supercomputers;
- Know about the rapidly growing and exciting Julia ecosystem and community.

We look forward to having you on board and will make sure to foster exchange of ideas and knowledge to provide an as inclusive as possible event.

Public information:
# Check out the course git repository
> https://github.com/luraess/julia-parallel-course-EGU21
to access:
- Course content (check out the latest changes !!)
- Organisation information
- Getting started direction

# Get prepared
We warmly recommend you to check out the course git repository prior to the course, especially if you wish to actively participate (as this would require to set-up your local Julia environment).

# Follow-up
We plan to host a follow-up discussion to extend the official short course duration (60 min) and allow for further interaction. We will communicate the follow-up Zoom link during the webinar. Stay tuned !
Co-organized by GD10
Convener: Ludovic RässECSECS | Co-convener: Mauro Werder
Thu, 29 Apr, 16:00–17:00 (CEST)
Public information:
# Check out the course git repository
> https://github.com/luraess/julia-parallel-course-EGU21
to access:
- Course content (check out the latest changes !!)
- Organisation information
- Getting started direction

# Get prepared
We warmly recommend you to check out the course git repository prior to the course, especially if you wish to actively participate (as this would require to set-up your local Julia environment).

# Follow-up
We plan to host a follow-up discussion to extend the official short course duration (60 min) and allow for further interaction. We will communicate the follow-up Zoom link during the webinar. Stay tuned !

Session assets

Session materials

Speakers

  • Ludovic Räss, ETH Zurich, Switzerland
  • Mauro Werder, ETH Zurich, Switzerland