Site de Jean-Michel RICHER

Maître de Conférences en Informatique à l'Université d'Angers

Ce site est en cours de reconstruction certains liens peuvent ne pas fonctionner ou certaines images peuvent ne pas s'afficher.


stacks

Connaître, c'est comprendre toute chose au mieux de nos intérêts.

Friedrich Nietzsche (1844 - 1900)

Parallélisme sur Carte Graphique

La programmation sur GPU (Graphics Processing Unit) a été rendue possible grâce à l'ouverture des opérations du pipeline graphique au programmeur ainsi que par la modification de l'architecture des cartes graphiques. Le GPU peut alors être considéré comme un co-processeur capable de seconder le processeur lorsque des traitements sont hautement parallélisables.

CUDA (Compute Unified Device Architecture) de NVidia, qui permet notamment de programmer des calculs sur le GPU en langage C, est devenu un standard incontournable et une alternative très intéressante en terme de coût et d'efficacité pour le calcul parallèle par rapport aux clusters de machines.

Logo NVidia

En 2008, le supercalculateur Bull NovaScale était un cluster associant :

  • 1068 CPU (octo-core Intel) développant une puissance de 103 Téraflops
  • et 48 GPU (de 512 coeurs) apportant une puissance supplémentaire théorique de 192 Téraflops.

Cours

Le cours est organisé en cinq chapitres

Travaux pratiques

Evaluation

L'évaluation (entre 2h30 et 3h) consiste en la parallélisation d'un programme en utilisant OpenMP et MPI.

On part d'un programme séquentiel et on vous demande de le paralléliser.

On demande également l'écriture de programmes (shell) de test ainsi que le calcul des métriques comme l'accélération théorique de Amdhal et la métrique de Karp-Flatt.