Parallel Julia

Julia is a high-level programming language well suited for scientific computing and data science. Just-in-time compilation, among other things, makes Julia really fast yet interactive. For heavy computations, Julia supports multi-threaded and multi-process parallelism, both natively and via a number of external packages. It also supports memory arrays distributed across multiple processes either on the same or different nodes. In this hands-on workshop, we will start with Julia’s multi-threading features and then focus on Distributed multi-processing standard library and its large array of tools. We will demo parallelization using two problems: a slowly converging series and a Julia set. We will do all hands-on work on our training cluster for which we will provide guest accounts.

Date:
Wednesday, June 21, 2023

Time:
9am–5pm (with a two-hour break from noon to 2pm)

Instructor:
Alex Razoumov (Simon Fraser University)

Prerequisites:  Basic working knowledge of HPC (how to submit Slurm jobs and view their output). Some scientific programming experience (in any language) would be ideal, but we will start slowly explaining basic principles along the way. No previous parallel programming experience needed.

Software:
We will provide access to one of our Linux systems. To make use of it, attendees will need a remote secure shell (SSH) client installed on their computer. On Windows we recommend the free Home Edition of MobaXterm. On Mac and Linux computers, SSH is usually pre-installed (try typing ssh in a terminal to make sure it is there). You don’t need to install Julia on your computer, unless you want to.


Course notes can be found here.