Research - Introduction to parallel computing with Python and Julia
Objectives
- Learn the basis of parallel computing
- Learn how Python and Julia can benefit from HPC infrastructures using various capabilities of both languages.
Target audience
Any PhD students, post-docs, researchers of UNIL and CHUV who develop some codes for the clusters and want to learn the basis of parallel computing in order to improve performance of their codes.
Content
In a first presentation, the main principles of parallel computing are introduced. Thanks to few examples, different ways of parallelising a program are presented (data decomposition, functionnal decomposation, …).
Then a second presentation will focus on Python and the specificities of the language regarding parallel computing. In particular the following libraries will be presented: Numpy, Numba, CuPy, Dask.
Finally a third presentation will focus on Julia, especially on it's characteristics that make it suitable for high performance computing. This will cover mainly the native Julia libraries dedicated to various forms of parallelism.
At the end of the course, the participants are expected to:
- Understand the various forms of parallelism:
- vectorization
- multi-threading
- distributed computing
- GPU computing
- Be able to apply the above forms of parallelism with Python and Julia on simple examples
Length
1 day
Organization
On a quarterly basis
Location
To be defined
Prerequisites
- Basic knowledge of Python (Julia knowledge is not required syntax is pretty similar to Python)
- Basic knowledge of working with command line tools on Linux based operating systems. If you do not feel comfortable with Linux commands, please follow the first module of our introduction course dedicated to a Linux.
- Basic knowledge of bash is an asset
- Be comfortable with all the topics addressed in the introduction course DCSR, Introduction to using the clusters.
- Please bring your own laptop with WIFI eduroam activated. You will need a SSH client to connect to the clusters. Windows users can install e.g. Putty or MobaXterm or a Linux virtual machine or use the Windows Subsystem for Linux (WSL) if available (Windows 10).
IMPORTANT: Please register using your UNIL email address!