Julia for High-Performance Scientific Computing (ENCCS)
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.
Full course description and registration can be found here:
Time
10.10.2023 - 13.10.2023
09:00 - 17:00