published May 19, 2025
When

Feb 11, 2025 09:30 AM to Feb 12, 2025 05:00 PM
(Europe/Berlin / UTC100)

Where

Amsterdam

Add event to calendar

iCal

This workshop teaches how to write efficient code in Julia, single-threaded, multi-threaded and on the GPU.

Please note that this is a pilot workshop, which means that we are teaching new and exciting lesson material. The additional purpose of pilot workshops is to collect information and feedback that can be used to polish content and make the lesson more reusable by other instructors.

The workshop will take place at Science Park 402, 1098 XH Amsterdam. Please note that lunch and drinks at the end of the workshop are included.

The Julia programming language is getting more and more popular as a language for data analysis, modelling, and optimization problems. It promises the ease of Python or R with a run-time efficiency closer to C or Fortran. Julia is also a more modern language with a packaging ecosystem that makes packages easier to install and maintain. A programmer that is familiar with Python, R or Matlab should have little problem getting up to speed with the basics of Julia. However, to really obtain the promised near native run-time efficiency is a different skill altogether.

This workshop aims to get research software engineers (experienced in another programming language) from their first steps in Julia to become aware of all the major techniques and pitfalls when it comes to writing performant Julia.

We will work hands-on with real-world examples to explore concepts in the Julia language, focusing on differences with other languages. After the first day, you will be familiar with the basic constructs of the language, some popular libraries, and its package manager, including unit testing and documentation.

The second day we will dive deeper in making Julia code fast to run. We’ll see how to benchmark and profile code and find out what is fast and slow. This means getting to grips with Julia’s type system and its compilation strategy. We will close the day with parallel programming and using the GPU to make our code even faster.

The workshop is based on the teaching style of the Carpentries, and learners will follow along while the instructors write the code on screen. More information can be found on the workshop website (will be activated once registration is live).

Cancellation

If you won’t be able to attend, please cancel your registration (by following the instructions here) so that we can offer your seat to someone on the waiting list.

Audience

The workshop is aimed at PhD candidates, postdocs, (assistant-)professors and other researchers and also open for research support staff and research software engineers. We offer tickets for researchers who are affiliated with Dutch research institutions. We do not accept registrations by Master students.

Prerequisites

This workshop is aimed at scientists (PhD, Post-doc and beyond) and Research Software Engineers that are experienced in another programming language like Python, R or Matlab.

Syllabus

Basics of Julia: build a model of our solar system

  • Operations, control flow, functions
  • Unitful quantities, Dataframes and plotting with Makie
  • Types and dispatch
  • Arrays and broadcasting

Package development: solving Cubic equations

  • Working with the REPL, and Pkg
  • Best practices with BestieTemplate
  • Testing with Test, documentation with Documenter

Faster code: a logistic population model

  • BenchmarkTools and ProfileView (flame graphs)
  • Optimisation techniques
  • The type system in more depth
  • Type stability
  • Parallel programming: Threads and GPU programming (with Julia fractals)