Composante
ENSEIRB-MATMECA
Code interne
EI8IT224
Description
Comment tirer partie de la puissance de calcul des ordinateurs contemporains ? Ce cours est une initiation aux techniques algorithmiques, logicielles et matérielles permettant de programmer des machines disposant de plusieurs coeurs et/ou d'accélérateurs tels que les cartes graphiques (GPU). Autrement dit, il s'agira de comprendre comment exploiter les capacités de traitement en paralléle offertes par le matériel.
Plan
intérêts et notions de base du parallélisme, granularité des calculs, d'équilibrage de charge
architecture générale des ordinateurs multicoeur et des cartes graphiques
techniques algorithmiques générales de parallélisation
langages et bibliothèques incontournables de la programmation des architectures multicoeur
impacts de l'architecture et de la compilation sur la programmation : vers la portabilité des performances
programmation des machines hétérogènes équipées de processeurs specialisés (e.g. GPU)
Pré-requis obligatoires
Programmation en langage C
Syllabus
Les points abordés dans ce cours sont :
- intérêts et notions de base du parallélisme, granularité des calculs, d'équilibrage de charge
- architecture générale des ordinateurs multicoeur et des cartes graphiques
- techniques algorithmiques générales de parallélisation
- langages et bibliothèques incontournables de la programmation des architectures multicoeur
- impacts de l'architecture et de la compilation sur la programmation : vers la portabilité des performances
- programmation des machines hétérogènes équipées de processeurs specialisés (e.g. GPU).
Modalités de contrôle des connaissances
Évaluation initiale / Session principale - Épreuves
Type d'évaluation | Nature de l'épreuve | Durée (en minutes) | Nombre d'épreuves | Coefficient de l'épreuve | Note éliminatoire de l'épreuve | Remarques |
---|---|---|---|---|---|---|
Projet | Rapport | 1 |