Parallélisme et Répartition Master Info Françoise Baude Université de Nice Sophia-Antipolis UFR Sciences Département Informatique baude@unice.fr web du cours : deptinfo.unice.fr/~baude Septembre 2009 Chapitre 5 : Des PRAMs à l Algorithmique répartie 1 Plan 1. Les Architectures à mémoire partagée répartie UMA (rappel) Simuler une PRAM sur ces machines 2. Les Architectures à mémoire locale uniquement Topologies de réseau 3. Modèle SPMD et programmation par échange explicite messages 4. Quelques algos 5. Première introduction à MPI 2 1
Machines // MIMD a mem. globale repartie Uniform Memory Access Modele logique = PRAM Peu extensible Temps traversée (latence) = O(1) De CPU a banc mem. demande accès L ou E @ mem Architecture interne: le réseau de comm. est cablé et reconfigurable Plus extensible Temps traversée = log n étages Très extensible Temps traversée = O(n) conflits Les N cpus demandent 1@ mem (idéalement différente)=> router cet ensemble d accès En // via le réseau (en évitant au maximum les conflits/hotspots) 3 4 2
Un réseau (ici butterfly) n est pas forcément un réseau de permutation 000->000 001->100 010->001 011->101 100->-010 101->-110 110->-011 111->-111 Permutation Bit reversal = décaler circulairement l écriture binaire de chaque entrée On «sent» bien que l ordre de routage par dimension fait partager une portion/arete commune aux nombres E et S qui vont conserver la meme valeur pour le bit central 5 Simuler optimalement une PRAM sur une MIMD (réseau direct ou indirect) Etape par étape (impliquant n proc pram & p bancs/proc ) Algo // de temps O(t) => exécution en O(t.log p) au mieux (diamètre réseau) 1. Si accès bien répartis sur les bancs et pas de conflit de routage en générant un placement aléatoire @mem ->permutation «parfaite» en «(re)hashant» les @mem. sur bancs Routage aléatoire en 2 phases vers destination intermédiaire choisie aléatoirement -> évite les «hot spots»/ conflits (avec forte probabilité) 2. Profiter des logn étages: pipeliner Chaque proc simule O(log n) des n procs de la PRAM Routage des accès mem. fait à une fréquence O(logn) Router en quantité de«travail» optimale, O(n) : p*log p accès mem. effectués en 2 phases coutant O(log p) 6 3
Modèle Bulk-synchronous PRAM Algorithmique PRAM moins synchrone, moins SIMD (synchronisation par étapes) Chaque proc est indépendant pendant O(log p) steps Les procs se «synchronisent» seulement pendant l exécution d une phase d accès en mem. On sait que cette grosse phase peut se réaliser en O(logp) O(log p) accès mem. de chaque proc. en temps O(log p) => 1 accès mémoire coute O(1) à chaque proc => «Force» chaque proc à préparer + d 1 demande d accès mem. mais, plutôt O(logp) 7 Machine // MIMD à mémoire locale : Topologies du réseau d interconnexion Connexion directe entre les proc Ces machines peuvent aussi émuler 1 PRAM! Mais ici, on va tenter de profiter du voisinage direct des processeurs 8 4
Modélisation sous forme de graphe Ensemble des nœuds: couples P(M) Arêtes relient les P Degré d un nœud: nombre de liens de comm Diamètre: distance max entre 2 nœuds quelconques Distance moyenne Graphes inclus (sous topologie) Algorithme de routage implicite (=>algo de choix chemins que l on peut câbler) Bisection Combien de liens faut il couper pour déconnecter le réseau (degré tol. Fautes) ou combien peut-on faire passer de chemins qui relient la moitie des nœuds avec l autre ½ (grandes possibilités de routage sans goulot étranglement dans le routage) 9 Ex: réseau hypercube avec N=16 proc, de dimension d = logn = 4 Diamètre: logn Degré: logn Inclus: Arbres Anneau Tores 2D et 3D Routage par dimensions croissantes Bisection = d-1 = N/2 - Peu extensible car pas faisable (usiner des nouveaux proc avec + de liens de comm) Obligatoirement par doublement de la taille + Topologie riche, la meilleure! Algorithmes repartis intéressants, ex. même en recherche d information structurée en un réseau logique hypercube, sur réseau p2p 10 5
Ex: réseau anneau Diamètre: N/2 Degré: 2 (souvent 1 sens entrée, 1 sens sortie, donc anneau unidirectionnel) Routage par voisins Bisection = 1 - extensible, mais mauvaises perfs de comm. + Mais sert souvent de topologie logique Aisée pour concevoir l algorithme Nombreux topologies physiques contiennent un anneau 11 Ex: réseau torique Un tore de dimension d contenant n nœuds =x1*x2* *xd, a 1 géométrie (x1,x2,,xd) Exemple tore 2D avec x1=x2= n Diamètre = n Degré=4 Largeur bisection=2* n Routage croissant selon les dimensions Exemple tore 3D avec x1=x2=x3=n^(1/3) Diamètre = n^(1/3) Degré=6 Largeur bisection=3*n^(1/3) n^(1/3) + Souvent l architecture physique réelle 12 6
Dim. 6 13 Programmer 1 machine // MIMD On a donc plusieurs flots d instruction indépendants Pour autant, le programmeur résout un problème a la fois! Il n écrit qu un seul programme parallèle Single Program, Multiple Data streams (SPMD) Processeurs exécutent simultanément le même programme sur des données différentes, mais sans être cadencés par une horloge commune (cas d 1 machine SIMD) Multiple Program Multiple Data Streams (MPMD) Certaines applications peuvent tout de même être constituées de (peu de) sous-programmes bien différents Ex : selon le schéma Maitre/Esclaves : au moins 2 pgms diff. ActiveEon Training March Ex: 08résolution numérique SPMD + Module de visualisation 14 7
Programmer la communication Doit être explicite dans le cas de mémoire répartie car aucune illusion de mem. Globale Espaces d adressage multiples Toutes les données sont privées La communication et la synchronisation sont explicites Toutes les taches peuvent communiquer (même si non «voisines»), dès lors qu elles identifient la tache réceptrice (?émettrice) Utiliser une librairie pour échanger (passer les messages) Opération point-a-point (send,recv) ou multipoint (bcast, reduce, ) ex,: MPI (Message Passing Interface), PVM (Parallel Virtual Machine), sur interfaces socket TCP ou UDP ou natif algorithmique Parallèle ET Distribuée (répartie) 15 16 8
17 18 9
19 O(n^3) 20 10
21 En MPI? 22 11
23 24 12