UE Parallel algorithms and programming

Degrees incorporating this pedagocial element :

Description

The use of multiprocessor machines has become mandatory and most applications are now running on machines with parallel processing units, from tablets to supercomputers. These applications concern both public and private scientific research, as well as industrial and commercial enterprises.

This lecture and lab work presents the parallel computing domain in different aspects: architectural, algorithmic, parallel programming languages, performance measurements, etc. Examples of parallel algorithms in different domains are also studied.

The course allows you to understand how to design and program a parallel application and run it on a multicore processor or a classical parallel cluster machine. The lab work on machines allows to implement the concepts studied during the lectures, and this with the language extensions ​​OpenMP and MPI.

----------------------

The use of multiprocessor machines has become a must and most applications run today on machines with several processing units running in parallel, from tablets to supercomputers. These applications concern both scientific research (physics, chemistry, biology, etc.) as well as industrial and commercial companies. This domain is called High Performance Computing (HPC).

This Teaching Unit of computer science presents the domain of HPC in different aspects: architectural, algorithmic, languages ​​of parallel programming, performance evaluation, ... Several examples of parallel algorithms, from different scientific fields, are dissected and studied.

The content of this course provides an understanding of how to design, program, and execute a parallel application across a broad spectrum of platforms ranging from a single multicore processor to a 200-core multiprocessor machine, to a cluster of multiprocessor servers. The practical work on parallel machines represents an important part of this Teaching Unit and will implement the concepts studied in the course, especially using the extensions of OpenMP and MPI languages.