Ensimag Rubrique Formation 2022

GPU computing - 5MMCGPU

  • Number of hours

    • Lectures 18.0


    ECTS 1.75


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 Graphic Processing Unit. In the final project, the students will have the possibility to parallelize one of their own numerical application developed in a previous course.

Contact Christophe PICARD



  1. Introduction to parallelism
    Introduction to general context of parallelism
  2. Models of parallel programming
    Description of various model of parallelism
  3. Paradigm of parallelism
  4. Tempplates of parallelism
  5. Parallel architectures
  6. Programming tools: Cuda


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



N1= P
N2 = (P+E)/2

QCM = Question choix multiple
P = Evaluation du projet
E = Examen écrit de rattrapage (écrit)

Additional Information

Curriculum->Math. Modelling, Image & Simulation->Semester 5


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
CUDA by Example: An Introduction to General-Purpose GPU Programming - Jason Sanders, Edward Kandrot
Heterogeneous Computing with OpenCL de Benedict Gaster