Indico event page - https://indico.desy.de/event/36933/
This is built on top of the Julia for HPC Course at HLRS by Carsten Bauer - https://github.com/carstenbauer/JuliaHLRS22
Julia is a language created specifically for use in scientific computing, it aims to offer the performance of low-level compiled language while retaining the simplicity and ease of use of high-level interpreted languages like Python.
This workshop covers the foundations of the language, showing its unique features and use cases, and gives an overview of the key concepts required to achieve high performance in Julia.
The course is roughly structured as follows:
Familiarity with a programming language and Jupyter notebooks is required, but no experience with Julia is needed.
This workshop is an internal trial run for the EuXFEL Data Department to test the viability of providing such a workshop to users and the photon science community at large, so expect some lack of polish and growing pains.
The schedule is still not determined. As shown in the image above each area (basics, serial, and parallel) has one main session which is two hours long, and two shorter (optional) sessions which are one hour long each and include some exercises. Given this there are two options for running the workshop:
You can participate from any linux-based computer, the only requirements are Julia and Jupyter (Lab).
Easiest option is to use Max-JHub, as Julia is already available on the cluster. There's no need to allocate a dedicated node, shared nodes are fine for the contents in these notebooks.
You can start a JHub session via https://max-jhub.desy.de/hub/spawn
Julia is provided with the module system, in a terminal run module load maxwell julia
to load Julia
If you are using your own computer then you will need to install Julia either via your package manager or (recommended) using JuliaUp:
curl -fsSL https://install.julialang.org | sh
juliaup add 1.8 # this has been written and tested using 1.8.4, any version ~1.8 should work
If you do not have JupyterLab installed, then you can install it in Python via in your preferred way (pipx
, pip
, conda
, etc...).
Clone this repository under your user directory, a branch has been set up for this event:
git clone https://github.com/RobertRosca/julia-hpc-workshop.git
cd julia-hpc-workshop
# module load maxwell julia # If you are on Maxwell
make setup # will install required Julia dependencies
A static version of the notebooks is available here: https://robertrosca.github.io/julia-hpc-workshop/main/README.html
Binder sessions for this can be started here (note that you will lose any changes unless you export the notebook files and download them): https://mybinder.org/v2/gh/robertrosca/julia-hpc-workshop/HEAD