Loading Events

« All Events

  • This event has passed.

Julia for High-Performance Scientific Computing

10 Oct 2023 @ 09:00 13 Oct 2023 @ 12:00 CEST


Julia is a modern high-level programming language that is fast (on par with traditional HPC languages like Fortran and C) and relatively easy to write like Python or Matlab. It thus solves the “two-language problem”, i.e. when prototype code in a high-level language needs to be combined with or rewritten in a lower-level language to improve performance.

Although Julia is a general-purpose language, many of its features are particularly useful for numerical scientific computation, and a wide range of both domain-specific and general libraries are available for numerical modelling and simulation.

The language supports parallelization for both shared-memory and distributed HPC architectures, and native Julia libraries are available for running on GPUs from different vendors.

This online workshop will start by briefly covering the basics of Julia’s syntax and features, and then introduce methods and libraries which are useful for writing high-performance code for modern HPC systems. After attending the workshop you will: 

  • Be comfortable with Julia’s syntax, in-built package manager, and development tools.
  • Understand core language features like its type system, multiple dispatch, and composability.
  • Be able to write your own Julia packages from scratch.
  • Have an overview of Julia’s parallelization and GPU-porting strategies and the know-how to get started using them.
  • Be familiar with crucial Julia libraries for scientific modelling, visualization, and machine learning.

Prerequisites

The workshop is intended for researchers who are familiar with one or more other languages like Python, R, Matlab, C/C++ or Fortran but would like to learn an exciting modern high-performance language.

Basic experience with working in a terminal is also beneficial. Participants are expected to install Julia, VSCode and Zoom before the workshop starts.

Preliminary Agenda

Day 1 

Time (CEST)Time (EEST)Section
9:30-10:3010:30-11:30Welcome and Motivation
10:30-11:0011:30-12:00Julia syntax
11:00-11:3012:00-12:30Special Julia features
11:30-12:3012:30-13:30Break
12:30-13:0013:30-14:00Special Julia features
13:00-14:0014:00-15:00Developing in Julia
14:00-14:1015:00-15:10Package ecosystem
14:10-14:3015:10-15:30Buffer time, Q&A

Day 2

Time (CEST)Time (EEST)Section
9:30-10:0010:30-11:00Welcome and Motivation
10:00-11:3011:00-12:30Writing performant Julia code
11:30-12:3012:30-13:30Break
12:30-13:3013:30-14:30Multithreading
13:30-14:3014:30-15:30Distributed

Day 3

Time (CEST)Time (EEST)Section
9:30-10:3010:30-11:30Dagger
10:30-11:3011:30-12:30Running on HPC
11:30-12:3012:30-13:30Break
12:30-13:3013:30-14:30MPI
13:30-14:3014:30-15:30Buffer time

Day 4

Time (CEST)Time (EEST)Section
9:30-11:0010:30-12:30GPU computing
11:30-12:3012:30-13:30Break
12:30-13:3013:30-14:30Interfacing to C, Fortran and Python
13:30-14:1514:30-15:15Advanced exercises
14:15-14:3015:15-15:30Conclusions and outlook

Registration

Please register by following the link https://events.prace-ri.eu/event/1512/registrations/1104/.

Disclaimer

This training is intended for users established in the European Union or a country associated with Horizon 2020. You can read more about the countries associated with Horizon2020 here https://ec.europa.eu/info/research-and-innovation/statistics/framework-programme-facts-and-figures/horizon-2020-country-profiles_e