Coronavirus : informations sur l'organisation au sein des formations du FIL

Comme vous le savez, l’université est fermée au public jusqu'à nouvel ordre. Néanmoins ce n’est pas pour cela que les enseignements s’arrêtent. Les enseignants mettent tout en place pour assurer un maximum de ces enseignements à distance avec les moyens dont ils disposent.

La première règle est de rester connecté·e : consultez vos messages (sur votre boîte université) très régulièrement.

Enseignements à distance

  • votre emploi du temps sera, autant que possible, conservé
  • consultez vos messages quelques minutes avant chaque créneau de Cours/TD/TP afin de savoir si votre enseignant assure son cours à distance ou non. Dans le cas où il l’assure, il indiquera les modalités
  • la mise en place de cours à distance pourra induire du travail préparatif avant les différents cours (lecture, vidéos)
  • l’adaptation des modalités de rendu et de travail seront données par chaque enseignant
Plus...
Vous êtes ici : FIL > Portail > Master Info > M1S2 > PPD

PPD : Programmation Parallèle et Distribuée


Un produit matriciel écrit naïvement (par exemple en C) exploite moins de 1% de la puissance de calcul d'une station de travail standard.
Cette option vise notamment à apprendre :
  • à optimiser un tel calcul pour exploiter plus de 99% de la puissance disponible ;
  • à répartir des calculs sur plusieurs noeuds (stations de travail), ainsi qu'à déployer des calculs sur GPU, afin d'atteindre des performances encore plus importantes.

Responsable : Pierre Fortin

Volume horaire

Cette option est organisée en une séance de cours (1h30) et une séance de TP (2h) chaque semaine, pendant 12 semaines.

Crédits

5 ECTS
Pierre Fortin
dernière modification : 29/11/2019 à 16:45:12

Objectifs

L'option PPD vise à présenter les aspects essentiels du calcul parallèle haute performance afin de pouvoir concevoir, implémenter et optimiser des programmes parallèles sur des architectures haute performance (CPU multi-cœurs et GPU, sur un ou plusieurs nœuds). A l'issue de cet enseignement, l'expérience acquise en calcul haute performance (HPC) sur des exemples clés doit permettre à l'étudiant d'être capable d'accélerer ses propres applications.

Contenu

Les points suivants seront abordés :
  • architecture des machines parallèles,
  • algorithmique parallèle,
  • parallélisme de données et de tâches,
  • décomposition et équilibrage de charge,
  • paradigmes standards de programmation parallèle sur machines à mémoire distribuée ou partagée (standards MPI et OpenMP),
  • programmation mixte multi-thread / multi-processus,
  • optimisation de code séquentiel pour le calcul haute performance,
  • programmation vectorielle (SIMD),
  • programmation GPU et optimisation de codes GPU.

Mise en pratique sur une application réelle (projet).

NATURE JOUR DEBUT FIN SALLE ENSEIGNANT EMAIL
Cours Mardi 08:15 09:45 M1-Hadamard (niveau -1) Pierre Fortin Pierre.Fortin@univ-lille.fr
TD10:0012:00M5-A13
Pierre Fortin
dernière modification : 13/01/2020 à 09:47:47

Le semainier est indicatif.

Séance Cours TP
1 14/01/2020 Programmation multi-processus (MPI) Prise en main de MPI
2 21/01/2020 Introduction au parallélisme (1/2) Première application MPI (1/3)
Fichiers : mandel.c, rasterfile.h
3 28/01/2020 Introduction au parallélisme (2/2) Première application MPI (2/3)
4 04/02/2020 Modèles Première application MPI (3/3)
5 11/02/2020 Programmation multi-thread (OpenMP) Deuxième application MPI (1/2)
Fichiers : convol.c, rasterfile.h, femme10.ras
Sukhothai_4080x6132.ras, Sukhothai_4096x6156.ras
6 18/02/2020 Programmation multi-cœur avancée Deuxième application MPI (2/2)
7 03/03/2020 Programmation SIMD Programmation multi-thread en OpenMP
Fichiers : calcul_pi.c, matmul.c, rasterfile.h, mandel.c, convol.c
8 10/03/2020 Introduction au calcul haute performance (1/2) Programmation par tâches en OpenMP
Fichiers : Codes_seq.tgz
9 17/03/2020 Introduction au calcul haute performance (2/2) Séance consacrée au projet
10 24/03/2020 Programmation GPU (1/3) TP GPU (1/3)
Sujet : TDTP8_GPU_Intro-etu.pdf
11 31/03/2020 Programmation GPU (2/3) Partie GPU du projet (1/2)
Sujet : TDTP9_GPU_Projet-etu.pdf
Fichiers : nemo.tar.gz, SqueletteMultiFichiers.tar.gz.
12 07/04/2020 Programmation GPU (3/3) Partie GPU du projet (2/2)
Pierre Fortin
dernière modification : 28/03/2020 à 16:09:19

L'évaluation est basée sur du contrôle continu et sur un examen en fin de semestre (EXAM).
Le contrôle continu est constitué des notes suivantes :

  • TP : une note sur de brefs compte-rendus des TP effectués ;
  • Projet : une note sur un projet à effectuer sur une application réelle au cours du semestre.

La note de contrôle continu (CC) sera calculée ainsi :

CC = (TP + 3*Projet)/4


La note finale sur 20 (N) sera calculée ainsi :

N = (EXAM + CC)/2


Pour la seconde session d'examen, la note de CC est conservée.

Pierre Fortin
dernière modification : 29/11/2019 à 11:36:08

Supports pédagogiques

Les polycopiés de cours (copie des transparents) sont distribués au début de chaque nouveau cours.
Les sujets des TP sont distribués au début de chaque nouveau TP.

Références bibliographiques

  • Parallel Programming in C with MPI and OpenMP, de M.J. Quinn
  • Using OpenMP, de B. Chapman, G. Jost, R. van der Pas, MIT Press

Pointeurs