Abstract: The Julia programming language is being increasingly adopted in High Performance Computing (HPC) due to its unique way to combine performance with simplicity and interactivity, enabling unprecedented productivity in HPC development. In this workshop, we provide an overview of HPC with Julia and cover three types of parallel computations:
- Multi-threading: the ability to schedule tasks simultaneously on more than one thread or CPU core, sharing memory (the easiest way to parallelize on shared-memory systems);
- Multi-processing and distributed computing: the ability to run multiple Julia processes with separate memory spaces on the same or multiple computers;
- GPU programming: how to port a computational procedure to a graphical processing unit (GPU) via either high-level or low-level programming.
Notebooks:
- Introduction: Parallel computing
- Part I: Multi-threading
- Part II: Multi-processing and distributed computing
- Part III: GPU programming
- GPU Workshop material: JuliaCon 2021
- Advanced GPU Computing training: cscs2023
- An introduction to Julia for HPC: JuliaUCL24