UE High performance computing for mathematical models

Degrees incorporating this pedagocial element :


Important : This mandatory course should not be taken if you have chosen "GPU Computing".

In this course, we will introduce parallel programming paradigms to the students in the context of applied mathematics. The students will learn to identify the parallel pattern in numerical algorithm. The key components that the course will focus on are : efficiency, scalability, parallel pattern, comparison of parallel algorithms, operational intensity and emerging programming paradigm. Trough different lab assignments, the students will apply the concepts of efficient parallel programming using distributed and shared memory programming language (OpenMP, MPI). In the final project, the students will have the possibility to parallelize one of their own numerical application developed in a previous course.

Contents :

  • Introduction to parallelism
  • Introduction to general context of parallelism
  • Models of parallel programming
  • Description of various model of parallelism
  • Paradigm of parallelism
  • Templates of parallelism
  • Parallel architectures
  • Programming tools: OpenMP, OpenMPI


Evaluation :

Development of a parallel program : project (P)

The final mark for the 1st session is P

The final mark for the 2nd session is obtained as follows: (P+E2)/2

where E2 is the mark of the 2nd session written exam.


C or C++, Compiling, Data structures, Architecture, Concurrency

Targeted skills

At the end of the course, the student will be able to multiply two matrices using python.


Parallel Computing: Principles and Practice - T. J. Fountain

Patterns for Parallel Programming - Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill

Introduction to Parallel Computing - Ananth Grama, George Karypis, Vipin Kumar, Anshul Gupta