Research - Introduction to parallel computing with Python, Julia, and R
Objectives
- Learn the
basismain concepts of parallel computing - Learn how
Pythonto apply these main concepts of HPC programming with Python, Julia andJulia can benefit from HPC infrastructures using various capabilities of both languages.R.
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.codes.
Length
2 days
Organization
On a quarterly basis
Location
To be definedGEO-1628
Prerequisites
- Basic knowledge of
Pythoneither(JuliaPython,knowledgeJulia,isornotR,required,depending on thesyntaxmodulesisyouprettywillsimilar to Python)attend. - 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 introductioncourse dedicated toa Linux. Basic knowledge of bash is an assetLinux.- Be comfortable with all the topics addressed in the introduction course DCSR, Introduction to using the clusters
., which has been recorded and is available as videos: - Please bring your own laptop with WIFI eduroam activated. You will need a SSH client to connect to the
clusters.clusters (see How To Access 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). Please contact us at helpdesk@unil.ch (with DCSR in the title) if you have trouble to connect.
IMPORTANT: Please register using your UNIL email address!