Positionnement dans le cursus
Semestre 5
Intersemestre
Semestre 6
 
 
 
Semestre 7
 
Intersemestre
Semestre 9
 
 
Intersemestre

Course group - TB2-CHP

TB2 - HIGH PERFORMANCE COMPUTING

Edit

ECTS credits

2.5

Course Director(s):

  • BRUCHON Julien
  • General Description:

    Context and objectifs

    An engineer is often involved in the development of computer programs that allow for large, complex but expensive calculations. However, these calculations often encounter physical limitations of computers (e. g., excessive computing time or memory resources) that may make it impossible to carry out the calculation. In addition, these programs are still most often developed sequentially, i.e. they work on a single processor or even a single core. Consequently, they do not take full advantage of the computing power of today's multiprocessor and/or multi-core architectures. Hence, high-performance computing can only be achieved through an fully parallel approach

    In the High Performance Computing (HPC) toolobx, students will learn the techniques of algorithm design and parallel programing as well as the tools to make these programs in three different ways: use of graphics processing units (GPUs), multi-core processors and multi-processor clusters.

    The pedagogical objectives are: :

    ·         Understanding the basic concepts and paradigms of high-performance computing,

    ·         Being familiar with API (Application Programming Interface) for programming parallel applications

    Links between course units:

    This toolbox consists of three UPs (teaching units). The first UP is made up of a set of 15 hours of courses and practical works corresponding, on the one hand to the "theoretical" part of the toolbox (introduction, parallel architecture and algorithms) and on the other hand to an application, multi-core programming with OpenMP. The two remaining UPs, each of 12 hours, alternate between courses and practical work, applying the principles of high-performance computing to the MPI library use and GPU programming.

    UP1: Introduction to parallel and distributed computing

    ·         Introduction: Flynn's classification - basic concepts

    ·         Parallel machine architectures

    ·         Parallel algorithmics: (PRAM model), paradigms, performances

    ·         Parallel programming by threads

    UP2: Parallel programming with MPI

    ·         Parallel programming by message sending/receiving, multi-core and multi-node programming

    UP3: Parallel programming on GPUs

    ·         Programming of graphics processing units (GPUs)

    Orientations / Associations with other courses:

    High-performance computing can solve numerically problems that can not be addressed by sequential computing because of prohibitive computing time and/or memory resources. These problems are for example problems of optimization in industrial engineering, image processing (medicine, materials sciences), solving partial differential equations in physics and mechanics (finite element methods, molecular dynamics),... The HPC toolbox can therefore be combined with any other scientific GP using numerical computation.

    Key words:

    Parallel computing Cluster OpenMP MPI GPU