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.
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.
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.
Participants are expected to follow these guidelines:
Unitful
quantities, Dataframes
and plotting with Makie
Pkg
BestieTemplate
Test
, documentation with Documenter
BenchmarkTools
and ProfileView
(flame graphs)Threads
and GPU programming (with Julia fractals)This schedule is preliminary
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 |
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.
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.
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).