Number of hours
- Lectures 18.0
ECTS
ECTS 1.75
Goal(s)
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 PICARDContent(s)
Syllabus
- Introduction to parallelism
Introduction to general context of parallelism - Models of parallel programming
Description of various model of parallelism - Paradigm of parallelism
- Tempplates of parallelism
- Parallel architectures
- Programming tools: Cuda
Prerequisites
C or C++, Compiling, Data structures, Architecture, Concurrency
Project
N1= P
N2 = (P+E)/2
QCM = Question choix multiple
P = Evaluation du projet
E = Examen écrit de rattrapage (écrit)
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