Research - Introduction to parallel computing with Python, Julia, and R
Objectives
- Learn the key concepts and reasoning of parallel computing.
- Transform sequential code into efficient parallel implementations in Python, Julia, and R.
Target audience
Any PhD students, post-docs, researchers of UNIL and CHUV who are involved in code development for their research and want to learn the basics of parallel computing in order to improve performance of their codes.
Content
The introduction gives a language-agnostic overview of high-performance computing, with concrete examples of parallel programming. It covers basic hardware concepts, key cluster and SLURM concepts for running embarrassingly parallel jobs, and clarifies common HPC terminology that is often used ambiguously.
The concepts introduced in the first module are further explored in three half-day, language-specific sessions dedicated to Python, Julia, and R. Through hands-on examples, participants are guided through the process of turning a sequential code into a parallel one. Emphasis is placed on reasoning about data, algorithms, and hardware constraints in order to select an appropriate parallelization paradigm.
At the end of the course, the participants can expect to:
- Understand the various forms of parallelism:
- Vectorization
- Multi-threading
- Distributed computing
- Accelerators (GPU, FPGA, ...)
- Be able to write simple high performance computing codes.
Length
2 days
Location
Prerequisites
- Basic knowledge of either Python, Julia, or R, depending on the modules you wish to attend
- Basic knowledge in working with command line tools on Linux based operating systems. If you do not feel comfortable with Linux commands, please follow the course dedicated to Linux.
- Be comfortable with the topics addressed in the introduction course DCSR, Introduction to using the clusters, which has been recorded and is available in the following video:
- Please bring your own laptop with a working WIFI connection to the eduroam UNIL network. You will need an SSH client to connect to the 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 questions or if you fail to connect.
IMPORTANT: Please register using your UNIL email address!