Passer au contenu principal

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 and Julia 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

IMPORTANT: Please register using your UNIL email address!


Course dates and registration