Multi-threaded parallelism has been part of the Julia programming language since version 1.3. However, currently the built-in implementation lacks some features, most notably parallel reduction, i.e. the ability to perform an operation (such as summation) on the results from individual threads. There are many workarounds for this, but you have to be aware of some potential pitfalls. Julia's module ThreadsX.jl fills this niche with an alternative implementation, providing not only the multi-threaded reduction, but parallel versions of many of the functions from Julia's Base library.
Multi-threaded programming is limited to shared memory, however, it is a fast and easy way to speed up your calculations on any multi-core processor from your laptop to a cluster node. In this webinar we will run all demos on a laptop, showing how you can fully utilize the CPU inside your machine; of course, all these examples can be run on an HPC cluster.
This webinar is aimed at absolute beginners in Julia, so no previous knowledge of either Julia or parallel programming is required.
Speaker: Alex Razoumov, WestGrid's Training and Visualization Coordinator.