Research - Introduction to parallel computing with Python, Julia, and R
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, functional decomposition, …).
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.
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.
Finally, the last presentation will focus on R and it's simple mechanisms and external libraries to benefit from multi-core architectures.
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 write simple high performance computing codes with Python, Julia, and R.
Length
2 days
Organization
On a quarterly basis
Location
To be defined
Prerequisites
- Basic knowledge of Python (Julia knowledge is not required, the 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!