Avec l'émergence de processeur multi-coeur (et maintenant manycore avec plusieurs dizaines d'unités d'exécution), l'expression du parallélisme est obligatoire pour permettre des hautes performances dans différents types d'applications (calcul scientifique, mégadonnées...). Dans ce contexte, ce cours détaille de multiples paradigmes de programmation parallèle pour permettre l'exploitation d'un grand nombre de coeurs sur différentes architectures cibles (CPU et GPU). Il comprend le modèle de mémoire distribuée (MPI), le modèle de mémoire partagée (OpenMP) et le modèle hétérogène (CUDA). Toutes ces approches permettraient de tirer parti des performances de différents ordinateurs (allant des petits serveurs jusqu'à de très larges superordinateurs du Top500).

 

Niveau requis : INF431 ou équivalent
Modalités d'évaluation : Projet
Langue du cours : Anglais