Julia for High-Performance Scientific Computing

Course/Event Essentials

Event/Course Start
Event/Course End
Event/Course Format
Online
Live (synchronous)

Venue Information

Country: Sweden
Venue Details: Click here

Training Content and Scope

Technical Domain
Level of Instruction
Beginner
Intermediate
Sector of the Target Audience
Research and Academia
Industry
HPC Profile of Target Audience
Application Developers
Data Scientists
Language of Instruction

Other Information

Event/Course Description

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.