La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Informatique parallèle hautes performances Présentation à luniversité de Franche-Comté 19 novembre 2003.

Présentations similaires


Présentation au sujet: "Informatique parallèle hautes performances Présentation à luniversité de Franche-Comté 19 novembre 2003."— Transcription de la présentation:

1 Informatique parallèle hautes performances Présentation à luniversité de Franche-Comté 19 novembre 2003

2 Page 2 Plan de la présentation Introduction Le matériel Programmation parallèle Expérience TOP500 Larchitecture I-Cluster

3 Page 3 Les segments de marché Conception mécanique Science des matériaux Défense et sécurité Conception microélectronique Géo-sciences Sciences de la vie Visualisation

4 Page 4 Besoins du calcul parallèle Calcul hautes performances Trop gros En mémoire Sur disque Trop long Météo Mais de durée rarement infinie Les limites Les processeurs/mémoires sont limités Les objectifs Efficacité Optimisation du coût Matériel Héritage de vieux codes Les solutions Work Faster Matériel plus rapide Work Smarter Meilleur algorithme Work Harder Parallélisme

5 Page 5 Différents domaines applicatifs Algèbre linéaire Mécanique des fluides (Navier-Stockes) Manipulations spectrales Transformées de Fourier, DCT Simulations Monte-Carlo Extraction Repliement de protéines (recherche de sous-chaînes) Autres Le reste ne représente que 10 à 20% du marché

6 Page 6 Plan de la présentation Introduction Le matériel Programmation parallèle Expérience TOP500 Larchitecture I-Cluster

7 Page 7 Composants Matériel RAM CPU ALU Registres Pipeline, VLIW, out-of-order Cache IO Réseau Cartes faible latence Routage Stockage Temps daccès différents registre << cache << ram << réseau << disque Coût inversement proportionnel au temps daccès Logiciel Middleware Système dexploitation Coordination Ordonnancement de travaux Librairies Passage de messages Algèbre linéaire Compilateurs Hints

8 Page 8 Architectures Vectoriel SMP Cluster de calcul Constellation Grille Métaordinateurs Retour vers le futur Les infrastructures du passé reviennent Ex.: Web, LDAP

9 Page 9 Types darchitectures selon Flynn Classification de Flynn Un peu désuète (sixties) Ne reflète pas larchitecture mémoire MIMD-SM (Shared Memory) MIMD-DM (Distributed Memory) SPMD (Single Program Multiple Data) est un cas courant (cf. MPI) Flot de données UniqueMultiple Flot dinstructionsUniqueSISD (Von Neumann) SIMD (Vectoriel) MultipleMISD (Systolic) MIMD

10 Page 10 Symmetric Multiprocessing (SMP) Cas le plus courant (bipros) Mémoire partagée Le cache est essentiel Assure la cohérence Relation « happens-before » Accès par lignes de cache 4096 bits par exemple 0x00cf2351 accède la ligne 0x00cf2000: 0x00cf2fff Une écriture rend la ligne invalide (dirty) Différentes politiques possibles Write-back Write-through Cache Mémoire CPU 1CPU 2

11 Page 11 SMP avec Crossbar Accès cohérent p processeurs n mémoires Chaque processeur peut être mis en relation avec chaque mémoire Exemple du réseau butterfly (où n=p) Composé de multiplexeurs 2x2 p1 p2 p3 p4 m1 m2 m3 m4 p5 p6 p7 p8 m5 m6 m7 m8

12 Page 12 Cluster Définition : Mémoire distribuée Coût faible Il faut gérer le passage de messages Cohérence Transmission des messages « lente » Code spécifique et complexe Réseau Proc 1Proc 2Proc 3 Mem. 1 Mem. 2Mem. 3

13 Page 13 Réseaux faible latence Souvent présents dans les clusters de calcul Plusieurs implémentations disponibles SCI, Myrinet, Quadrics Débit élevé Latence en ns Routage à la source Chaque machine va router le message Les cartes réseau sont intelligentes Routage Wormhole Topologie virtuelle en tores 2D ou 3D Possibilités de remote DMA, Scatter/Gather Solutions très chères Exemple : Tore 2D Routage de [1,2] (en rouge) à [2,4] (orange) Sud, Est, Est est le chemin pré calculé

14 Page 14 Technologies dinterconnexion TechnologieDébit [Mo/s]Latence [us]Remarques Gigabit Ethernet à 90Lenteur de la pile TCP-IP Myrinet à 10PCI 64 bits 66 MHz SCI D ,5Topologie en anneau

15 Page 15 Grilles (GRID) Vision : Disposer de puissance de calcul de la même manière que de puissance électrique Power outlet / Power grid Cluster = Machines homogènes locales Grille = Machines hétérogènes globales Fédération de ressources Répartition souvent mondiale Liaison entre plusieurs grappes par liens rapides Mais… Aspects humains (tu peux me donner ton mot de passe ?) Les administrateurs sont sur chacun des différents sites Passage à léchelle difficile Copie dun fichier vers 5000 machines = gros problèmes en vue… Problèmes algorithmiques Couplage de Composants

16 Page 16 Stockage hautes performances Problème : Accès simultané aux fichiers Nombreuses machines en parallèle Visibilité homogène des données Solutions Caches coopératifs NFS Réplication des données Pré chargement (prefetch) RAID logiciel et matériel Problème de cohérence PVFS NFSp

17 Page 17 Parlons dargent… La vitesse des processeurs dépend du carré de leur coût Speed = Cost 2 Laccélération est généralement liée logarithmiquement au nombre de processeurs Speedup = log 2 (#processors) Le logiciel coûte très cher Il faut donc faire attention a ses choix dinfrastructure La tentation des clusters est grande Le choix nest pas facile Mais La plupart des projets ont un budget militaire ou scientifique Ils sont riches A quoi bon changer de modèle et passer aux clusters ? Résultat : On en reste aux machines sur-performantes, par facilité

18 Page 18 Plan de la présentation Introduction Le matériel Programmation parallèle Expérience TOP500 Larchitecture I-Cluster

19 Page 19 Complexité Il faut caractériser les algorithmes Complexité En nombre dinstructions En nombre demplacements mémoire En nombre de messages à échanger Ordre des algorithmes Fonctions O (coût réel), Ω (min), θ (max) Caractérise le coût relativement a une fonction simple Ex.: O(n 3 ), O(n log 2 n) Un ordre non polynomial interdit le passage à léchelle Un ordre (poly-)logarithmique est souhaitable

20 Page 20 Taille de grain Grain Gros (niveau dune tâche) Programme Grain moyen (niveau contrôle) Fonction Grain fin (niveau données) Boucle Grain très fin (multiples niveaux) Hardware Tâche i-l Tâche i Tâche i+l func1 ( ) {.... } func1 ( ) {.... } func2 ( ) {.... } func2 ( ) {.... } func3 ( ) {.... } func3 ( ) {.... } a (0) =.. b (0) =.. a (0) =.. b (0) =.. a (1) =.. b (1) =.. a (1) =.. b (1) =.. a (2) =.. b (2) =.. a (2) =.. b (2) = x x Load

21 Page 21 Exemple : Multiplication de matrices carrées (séquentielle) Soient A=[a ij ], B=[b ij ], C=[c ij ], 1in, 1jn On veut calculer C = A x B c ik =Σ j=1..n a ij.b jk, 1in, 1kn Complexité de calcul Ceci nécessite, pour chaque c ik : n multiplications n additions n.n c ik, donc n 2 éléments, doù 2n 3 opérations Lordre de la multiplication de matrices par un programme séquentiel est donc O(n 3 ) Place mémoire 3 matrices de taille n 2 Le besoin en mémoire est donc de O(n 2 )

22 Page 22 Multiplication plus efficace Si on a un cache trop petit, la performance sécroule 3n 2 valeurs ne tiennent plus en cache Le cache ne sert plus ! On va faire des calculs par blocs Même ordre, mais plus efficace (gains de 2000% en Pentium-class) B AC Pour chaque sous-bloc : I bandes verticales J bandes horizontales Pour chaque sous-bloc C mp de C c ik =Σ j=1..n a ij.b jk mim+I, pkp+J Mémoire nécessaire par bloc : I.n + J.n + I.J Au lieu de =768, on a = 68 seulement Problème identique : Out of core Ex.: n=16, I=J=2

23 Page 23 Multiplication parallèle p processeurs pour calculer Calcul par sous-blocs n/p sous-blocs calculés par processeur Mais : Chacun doit dabord disposer des données de départ (Matrices A et B) Mémoire partagée (SMP) : gratuit Les données sont accessibles à chaque processeur Cluster : Envoi des 2n 2 données (A et B) vers p processeurs, retour de n 2 données (C) Donc coût de communication O(2p.n 2 ) acceptable Question : Quel est le grain de calcul de matmut() ?

24 Page 24 OpenMP Open Multi Processing Standard industriel de 1997 Clauses de compilation explicites (hints) Modèle master-worker, fork & join Description des structures parallélisables Matrices décomposées en sous blocs Le code contient des hints de gestion des sous-blocs Le compilateur est intelligent Parallélise automatiquement le code Gère les communications inter-nœuds Parallélisme de données ou de processus

25 Page 25 Le passage de messages MPI (Message Passing Interface) Abstraction de la topologie de proc/RAM Routines de communication MPI_Send(), MPI_Recv() Gestion par numéro de machine Primitives de groupes (communicators) Synchrones ou asynchrones Simple a appréhender Mais… mise au point douloureuse Portage pas si trivial que ça

26 Page 26 Recouvrement calcul-communication Objectif : efficacité Lors dune attente de communication, un processus va continuer à calculer Difficile à formaliser Très difficile à programmer Extrèmement difficile à débugger Décomposition des communications Emballage du message (par lémetteur) Temps de transport Déballage (par le récepteur)

27 Page 27 Problèmes liés au parallélisme Horloges logiques Synchronisation Systèmes asynchrones : Comment alerter un processus distant ? Accès sérialisé aux ressources partagées Exclusion mutuelle False sharing Deadlocks Fautes – Terminaison Détection de fautes Tolérance Communication de groupe Élection dun coordinateur (leader) Réplication Cohérence Mise au point répartie Bugs Performance Connaissance du métier de lapplication

28 Page 28 Précédence causale Relation happens-before (précède) Élément essentiel en informatique distribuée Asynchronisme du monde réel => race conditions Illustre bien quen informatique distribuée, les choses simples deviennent plus complexes… e i précède e j (e i < e j ) ssi une de ces 3 conditions est vraie : 1. e i et e j se produisent sur le même processus et e i se produit physiquement avant e j 2. e i et e j se produisent sur deux processus distincts et e i est lémission dun message tandis que e j est la réception de ce même message 3. Il existe k tel que e i < e k et e k < e j Exemples…

29 Page 29 Horloges logiques Horloge logique : e LC(e) < LC (e) quels que soient e et e Horloge logique de Lamport Chaque nœud P i détient un compteur T i Lors dun évènement local T i est incrémenté Lors dun envoi par P i, T i est incrémenté et transmis avec le message Lors dune réception par P j, T j est mis à jour T j = max(T j, T i ) + 1 Solution simple et élégante, très utilisée en pratique Une version vectorielle existe, qui vérifie aussi LC(e) e < e Exemple : P1P1 P2P2 P3P3 P4P

30 Page 30 Ordonnancement Objectif : Optimisation des ressources Lancer n tâches sur p processeurs Notion de graphe de flot dexécution (ex.: POVray) Comment utiliser les processeurs inactifs ? Différentes politiques Temps global dexécution (makespan) Charge de calcul Tâches prioritaires Allocation dynamique (online) ou statique (off-line) Lallocation statique nécessite un graphe de flot connu Problème NP-complet On a recours à des heuristiques Beaucoup de recherche

31 Page 31 Plan de la présentation Introduction Le matériel Programmation parallèle Expérience TOP500 Larchitecture I-Cluster

32 Page 32 Les 500 ordinateurs les plus puissants Classement ouvert à tous Publication tous les 6 mois Objectif : le plus grand nombre possible dinstructions par seconde Inversion dune matrice dense Calcul itératif par décomposition de Cholesky Une implémentation de base : HPL (Linpack) Notre objectif : entrer au TOP500 avec du matériel de grande consommation

33 Page 33 Infrastructure dévaluation Partenariat HP Labs, IMAG-ID, INRIA 225 HP e-Vectra: Pentium® III 733 MHz 256 MB Standard Ethernet (100 MBps)

34 Page 34 Mise en place du programme Coordination entre 225 machines Pas facile Il ne faut pas ralentir par excès de communication Chaque élément nest plus un réel On passe à des petites matrices (sous-blocs) Calcul de la taille de sous-bloc optimale Division en 15x15 machines Problématique du broadcast

35 Page 35 Résultats Premier cluster de grande consommation au TOP ème Superordinateur au monde, 15ème en France 81,6 Gflop/s en mai 2001

36 Page 36 Leçons clés La latence réseau est critique On attend autant quon calcule Homogénéité des machines Sinon lalgorithmique est trop difficile

37 Questions ?

38 Page 38 Exemple didactique Un incendie Un robinet Des robots-pompiers R[i], i = 1, 2, 3… Chacun possédant un seau et un seul Actions possibles : Remplir pour remplir le seau au robinet Echanger(j) pour échanger son seau avec R[j] Déverser pour verser le seau sur lincendie Marcher pour aller au robinet ou au foyer Contraintes 1 seul robot peut remplir son seau à la fois Échange possible uniquement si les 2 robots sont prêts Pas de collisions pendant la marche, ni le déversage de seaux Problème : Comment programmer le fonctionnement des pompiers ?

39 Page 39 Quel algorithme Solution 1 : Robots autonomes (SIMD) Chacun va remplir son seau, le déverse etc… Solution 2 : La chaîne (pipeline) Un robot remplit les seaux, un autre les déverse et tous les autres échangent seaux vides contre seaux pleins Ces deux approches sont très différentes Goulot détranglements différents


Télécharger ppt "Informatique parallèle hautes performances Présentation à luniversité de Franche-Comté 19 novembre 2003."

Présentations similaires


Annonces Google