Logo ESI
Bannière
ESI talents

Bienvenue



Retour - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Syllabus HPC
Télécharger



Crédits : 4

HPC
Calcul Intensif
High performance computing

Coef : 4
VH Cours : 22.50
VH TD : 30.00
Pré-requis :
Architectures Evoluées des Ordinateurs - Programmation Orientée Objet - Système d’exploitation I - Système d’exploitation II.

Ingénierie des Compétences

Familles de Compétences
  • CF7 : Concevoir, mettre en œuvre et administrer des infrastructures complexes et réparties
Type de compétence: TEC : Technique, MET : Méthodologique, MOD : Modélisation, OPE : Opérationnel,
Niveau de compétence:
Base Intermédiaire Avancé


Famille de Compétence Compétence Elément de Compétence Type
CF7 C7.8: Exploiter des architectures parallèles et avancées pour accélérer l'exécution des programmes C78.3: Développer des programmes performants sur des architectures parallèles et avancées TEC
C78.4: Analyser les types d'architectures parallèles et identifier les différents niveaux de parallélisme dans les architectures MET
C78.5: Exploiter diverses API pour mettre en oeuvre des programmes parallèles TEC

Description du programme de la matière

Objectifs:

- Identifier les différentes architectures du HPC (MultiCoeurs, Cluster, Grilles et GPU).
- Lister les différentes applications du HPC
- Optimiser les programmes pour tirer avantage des caractéristiques de l’architecture des processeurs.
- Concevoir, Implémenter et analyser des programmes parallèles avec mémoire partagée en utilisant OpenMP.
- Concevoir, Implémenter et analyser des programmes parallèles avec mémoire distribuée en utilisant MPI.
- Implémenter des programmes parallèles sur les GPUs en utilisant CUDA.

Contenu:

1) Introduction au Calcul Haute Performance (High Performance Computing (HPC)) (~6h)

a) Motivation et Introduction aux architectures parallèles (MultiCoeurs, Cluster, Grilles et GPU).
b) Les différentes applications du HPC (Simulation scientifique, Economie, Ingénierie, Recherche Opérationnelle).
c) Modèles de machines parallèles, classifications de Flynn et Raina.
d) Modèle de programmation parallèle et distribuée (parallélisme de tâches, parallélisme de données, niveau du parallélisme, communication par messages).
e) Problèmes fondamentaux de la programmation parallèle distribuée (partitionnement de tâches/données, régulation de charge, ordonnancement, tolérance aux pannes, mesure de performance, présentation des lois d'Amdahl et de Gustafson).
TD (~4h) : Techniques de parallélisation et Parallélisme.

2) Programmation Parallèles pour architecture à Mémoires Partagées. (~6h)

a) Programmation parallèle avec les POSIX Threads du langage C (PThreads)
TP (~3h) : Introduction au PThreads.
b) Programmation parallèle avec les threads JAVA.
TP (~3h) : Introduction au Threads JAVA.
c) Programmation parallèle avec OpenMP.
TP (~3h) : Introduction à OpenMP.
3) Programmation Parallèles pour architecture à Mémoire Distribuée (~4h)

a) Programmation parallèle avec PVM (Parallel Virtual Machine).
TP (~3h) : Introduction à PVM.
b) Programmation parallèle avec MPI (Message Passing Interface).
TP (~3h) : Introduction à MPI.
4) Programmation Parallèle pour architectures GPU (Graphical Processor Unit) (~8h)

a) Introduction, historique et architecture des GPU.
b) Modèles de mémoires (Globale, Locale, partagées).
TD (~2h) : Etude de l’architecture GPU.
c) Programmation des GPU avec OpenCL.
TP (~3h) : Introduction à OpenCL.
d) Programmation des GPU avec CUDA.
TP (~3h) : Introduction à CUDA.

Travail Personnel:

- Projet Programmation Parallèle ~ 30 heures

Bibliographie:

1. P. Pacheco, “An Introduction to Parallel Programming”, Morgan Kauffman, 2011
2. G. Hager and G. Wellein, “Introduction to High Performance Computing for Scientists and Engineers”, Chapman & Hall
3. A. Grama, G. Karypis, V. Kumar, and A. Gupta, “Introduction to Parallel Computing”, Addison-Wesley, 2003
4. C. Lin, L. Snyder, “Principles of Parallel Programming”, Addison-Wesley, 2008
5. G. S. Almasi et A. Gottlieb. Benjamin Cummings Highly Parallel Computing - Second edition,.
6. K. Hwang. McGraw-Hill.Advanced Computer Architecture : Parallelism, Scalability, Programmability,
7. I. Foster. Designing and Building Parallel Programs, Addison-Wesley, http://www.mcs.anl.gov/dbpp/.
8. H. S. Morse.Practical Parallel Computing, AP Professional.
9. M. Cosnard et D. Trystram. Algorithmes et Architectures Parallèles, InterÉditions.
10. CPU Info Center, http ://infopad.eecs.berkeley.edu/CIC/.
11. Journal of Parallel and Distributed Computing

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -