Efficient computing in Julia pilot

Netherlands eScience Center

February 11 - 12, 2025

9:30 - 17:00 CET

Instructors: Johan Hidding, Robin Richardson

Helpers: Ewan Cahen, Flavio Hafner

Some adblockers block the registration window. If you do not see the registration box below, please check your adblocker settings.

General Information

The eScience Center offers a range of workshops and training courses, aimed at PhD candidates and other researchers or research software engineers. We organize workshops covering digital skills needed to put reproducible research into practice. These include online collaboration, reproducible code and good programming practices. We also offer more advanced workshops such as GPU Programming, Parallel Programming, Image Processing and Deep Learning.

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 also is 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, focussing 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.

Who: 

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.

Where: Science Park 402, 1098 XH Amsterdam. Get directions with OpenStreetMap or Google Maps.

When: February 11 - 12, 2025, 9:30 - 17:00 CET.

Requirements: Participants must bring a laptop with a Mac, Linux, or Windows operating system (not a tablet, Chromebook, etc.) that they have administrative privileges on. They should have a few specific software packages installed (listed below).

Accessibility: We are committed to making this workshop accessible to everybody. The workshop organizers have checked that:

Materials will be provided in advance of the workshop and large-print handouts are available if needed by notifying the organizers in advance. If we can help making learning easier for you (e.g. sign-language interpreters, lactation facilities) please get in touch (using contact details below) and we will attempt to provide them.

Workshop files: You will find all slides, notebooks, archived collaborative documents, and other relevant files in the files folder of the workshop website repository after the workshop.

Contact: Please email or training@esciencecenter.nl for more information.


Code of Conduct

Participants are expected to follow these guidelines:

Syllabus

Schedule

This schedule is preliminary

Day 1

09:30 Welcome and icebreaker
09:45 Setup Check
10:00 Introduction to Julia
10:30 Coffee break
10:40 Dispatch and Types
11:30 Coffee break
11:40 Simulating the Solar System
12:30 Lunch
13:30 Package management
14:30 Tea break
14:40 Testing
15:30 Tea break
15:40 Documentation
16:30 Wrap-up and Feedback
17:00 END

Day 2

09:30 Welcome and icebreaker
09:45 Recap
10:00 Profiling
10:30 Coffee break
10:40 Iterators with Logistic maps
11:30 Coffee break
11:40 Programming Techniques
12:30 Lunch
13:30 Programming Techniques (cont'd)
14:30 Tea break
14:40 Multi-threading
15:30 Tea break
15:40 GPU Programming
16:30 Wrap-up and Feedback
17:00 END

All times in the schedule are in the CET timezone.


Setup

To participate in this workshop, you will need access to software as described below. In addition, you will need an up-to-date web browser.

We maintain a list of common issues that occur during installation as a reference for instructors that may be useful on the Configuration Problems and Solutions wiki page.

Software setup

mkdir EfficientJulia
cd EfficientJulia
julia

Press ] to enter package mode:

(@v1.11) pkg> activate .
(EfficientJulia) pkg> add GLMakie DataFrames BenchmarkTools GeometryBasics IterTools KernelAbstractions Revise Unitful

This may take a while (which is why you need to do it in advance).