header

Évènements satellites > Tutoriel "calculer en parallèle"

Calculer en parallèle

 

Description

Les "manycore" et les GPU sont les processeurs du futur. Mais en observant la progression du nombre de coeurs sur un processeur, on constate que les "manycore" ont du mal à passer à l'échelle. L'objectif du tutoriel "Calculer en parallèle" est de montrer d'une part que la façon de calculer en parallèle aujourd'hui n'est ni suffisamment sûre ni "scalable" et d'autre part qu'on peut résoudre ces deux problèmes en utilisant un matériel capable de paralléliser automatiquement. 

 

Programme

Le tutoriel commence par un tour d'horizon du calcul parallèle aujourd'hui : processeur KNL (XeonPhi2), threads, interfaces de programmation (pthread, MPI, OpenMP, Cilk). Ensuite, on étudie les fondements du calcul parallèle : les threads, le déterminisme, les dépendances, la causalité, le principe de localité, le rôle de la mémoire. Dans un troisième temps, le tutoriel présente un matériel adapté au calcul parallèle : un coeur parallélisant, un processeur à beaucoup de coeurs, la mémoire, les échanges avec le monde extérieur, le contrôle des sérialisations. Le matériel présenté est évalué : peut-on remplir un processeur à 4000 coeurs ? mesurer sa performance avec un simulateur et tester la faisabilité avec un prototype VHDL.

Durée 3h, se décomposant ainsi :

2h :  présentation

1h : démonstrations/exercices sur un simulateur du processeur parallélisant (voir lien ci-dessous ; nécessite Ubuntu 16.04)

Les personnes désirant mettre en oeuvre les exercices sur leur propre machine (Ubuntu 16.04) devront disposer d'un environnement de cross-compilation Arm (pour ubuntu, paquet gcc-arm-linux-gnueabi). Un fichier README fourni avec le lien ci-dessous explique comment tout installer.

 Lien vers toutes les ressources nécessaires pour la démo + les diapos + les sources des diapos :

 

https://depots.univ-perp.fr/get?k=Dzd8W1vI9NCh4E5Gf6u

(le lien est actif jusqu'au mercredi 28 juini)

Pré-requis

Aucun véritablement mais des connaissances en matériel (processeur out-of-order, cohérence de caches, assembleur), en parallélisme (pthreads, MPI, openMP, Cilk) et en système (appel système "clone", context switch, gestion mémoire, I/O) peuvent aider.

 

Public concerné

Les trois communautés de la conférence Compas (Architecture, Parallélisme et Système). Le tutoriel porte sur de l'architecture en ce qui concerne la définition du processeur parallélisant et sur du parallélisme pour son modèle de programmation. Des aspects concernant l'OS seront évoqués : quel type d'OS pour un processeur à plusieurs milliers de coeurs ?

 

Intervenant

Bernard Goossens (goossens@univ-perp.fr)

Personnes connectées : 1