Julia for High-Performance Computing

This 4-day course introduces the Julia programming language as a modern approach to high-performance numerical computing. Starting from the foundations and characteristic language features (e.g. multiple dispatch, type inference) the course will discuss and demonstrate how Julia manages to deliver high performance while also being high-level and dynamic. It will teach participants the necessary language concepts to achieve high performance in Julia and avoid common pitfalls. The course will cover "serial" and parallel computing (multithreading, distributed computing, MPI) and will provide insights into how to readily offload computations to NVIDIA GPUs.

Hands-on sessions on each day will allow the participants to interactively explore the language and immediately test and apply the discussed concepts.

This course is particularly suitable for students and researchers who are interested in numerical computing and want to learn how to write high-performance code using the Julia programming language.


HLRS, University of Stuttgart
Nobelstraße 19
70569 Stuttgart, Germany
Room 0.439 / Rühle Saal
Location and nearby accommodations

Start date

Sep 10, 2024

End date

Sep 13, 2024



Entry level


Course subject areas

Parallel Programming

Programming Languages for Scientific Computing

Back to list

Prerequisites and content levels

  • Basic programming / numerical computing experience in any language (e.g. Julia, Python, Fortran, C++) is required.
  • Basic knowledge of Julia is advantageous.
  • Familiarity with Juptyer notebooks and UNIX/Linux (esp. basic terminal usage) is highly recommended.
  • Elementary understanding of computer architecture is a plus.
Content levels
  • Basic: 7 hours
  • Intermediate: 11 hours
  • Advanced: 5 hours

Learn more about course curricula and content levels.


Dr. Carsten Bauer (Paderborn Center for Parallel Computing)

Learning outcomes

After this course, participants will:

  • have a basic understanding of Julia’s fundamental design and its compilation pipeline
  • know how to write efficient, serial Julia and avoid typical pitfalls
  • know how to profile and benchmark code performance
  • be able to parallelize Julia using multithreading, distributed computing and GPU acceleration
  • be familiar with common (remote) development workflows


Local registration starts on first course day at 8:30.

The course runs from Tuesday to Friday. Days start at 9 AM and end at 5 PM (earlier end on Friday).
On the first evening there will be a social event (Stuttgart city tour + dinner). A detailed schedule will
Among others, the following topics will be covered in the course:

Julia fundamentals

  • Julia’s type system and multiple dispatch paradigm
  • Code specialization and compilation
  • Development workflow (for HPC clusters)

Performance programming

  • Type (in-)stability
  • Memory usage optimization
  • Instruction-level parallelism
  • Profiling


  • Task-based multithreading
  • Basic GPU acceleration
  • Distributed computing (Distributed.jl and MPI.jl)

Although it won’t be identical, you may check out the content and schedule of last year's course
at https://github.com/carstenbauer/JuliaHLRS23 for further information.

Course material

Slides and Jupyter notebooks will be available for all participants on GitHub in time before the course.

Registration information

Register via the button at the top of this page.
We encourage you to register to the waiting list if the course is full. Places might become available.

Registration closes on August 11, 2024.


  • Students without master’s degree or equivalent: 35 Euro
  • PhD students or employees at a German university or public research institute: 75 Euro
  • PhD students or employees at a university or public research institute in an EU, EU-associated or PRACE country other than Germany: 150 Euro
  • PhD students or employees at a university or public research institute outside of EU, EU-associated or PRACE countries: 300 Euro
  • Other participants, e.g., from industry, other public service providers, or government: 780 Euro

Link to the EU and EU-associated (Horizon Europe), and PRACE countries.

Our course fees include coffee breaks (in classroom courses only).

HLRS concept for on-site courses

Besides the content of the training itself, another important aspect of this event is the scientific exchange among the participants. We try to facilitate such communication by

  • a social event on the evening of the first course day,
  • offering common coffee and lunch breaks and
  • working together in groups of two during the exercises.


Lucienne Dettki, phone 0711 685 63894, dettki(at)hlrs.de

HLRS Training Collaborations in HPC

HLRS is part of the Gauss Centre for Supercomputing (GCS), together with JSC in Jülich and LRZ in Garching near Munich. EuroCC@GCS is the German National Competence Centre (NCC) for High-Performance Computing. HLRS is also a member of the Baden-Württemberg initiative bwHPC.

This course is provided within the framework of the bwHPC training program.

Further courses

See the training overview and the Supercomputing Academy pages.