1 / 44

Introduction au parallélisme

Introduction au parallélisme. Cécile Germain-Renaud cecile.germain@lri.fr. Organisation. 12 séances cours et TD, 4h chacune 3 séances par Joël Falcou Les slides ne suffisent vraiment pas Aide mémoire + illustrations Le cours oral est supposé connu pour l’examen

moira
Télécharger la présentation

Introduction au parallélisme

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction au parallélisme Cécile Germain-Renaud cecile.germain@lri.fr

  2. Organisation • 12 séances cours et TD, 4h chacune • 3 séances par Joël Falcou • Les slides ne suffisent vraiment pas • Aide mémoire + illustrations • Le cours oral est supposé connu pour l’examen • Calendrier et toutes informations sur le site du cours – vous devez le consulter. www.lri.fr/~cecile/ENSEIGNEMENT/IPAR Introduction au parallélisme

  3. Contrôle des connaissances • Contrôle continu • Deux devoirs - largement commencés en TD. A rendre à la date prévue. 1 jour de retard = -1 point. Devoirs individuels. • Un exposé. Choix dans 6 semaines, exposés + fiche résumé à la dernière séance. Travail en binôme, l’un est noté sur la fiche de lecture, l’autre sur l’exposé. • Examen • Tous documents autorisés. Vous devez amener les documents, énoncés,… utilisés en cours/TD. www.lri.fr/~cecile/ENSEIGNEMENT/IPAR Introduction au parallélisme

  4. Plan • Motivation et concepts • Algorithmique parallèle • Programmation parallèle • Passage de messages • OpenMP • Modèles formels • Parallélisation automatique • Modèles avancés Introduction au parallélisme

  5. 1. Motivation et concepts Introduction au parallélisme

  6. Plan • Motivation • Architectures parallèles • Les infrastructures parallèles en 2009 • Typologie • Exemples • Performance • Accélération • Autres indicateurs Introduction au parallélisme

  7. Motivation I : Les applications • Simulation numérique : expériences in silico - Troisième composante de la science • Trop grandes : météorologie, matériaux,… • Trop dangereuses : maintenance nucléaire • Trop coûteuses : crash-tests, conception aéronautique • Impossibles : climat, astrophysique • Information deluge • Puces à ADN • Traitement personnalisé • Réalité virtuelle ou augmentée : médias, médical Besoin en puissance de calcul (computing) virtuellement illimités Introduction au parallélisme

  8. Motivation II : Les ordinateurs Toutes les infrastructures de calcul sont parallèles Introduction au parallélisme

  9. Motivation III : Les sources du parallélisme • Parallélisme de données • Dès qu’on a des tableaux (à préciser) • Parallélisme de contrôle • High Throughput applications • Procédures récursives • RPC • … Les applications peuvent exploiter les infrastructures parallèles Introduction au parallélisme

  10. Un environnement logiciel stabilisé mais non unifié Résolution système linéaire Application Spécification Relaxation, méthode directe Algorithme Programmation OpenMP, HPF, pC++… LHN Compilateurs parallèles Environnement d’exécution // MPI, PVM, threads Compilateurs + exécutifs Programmes séquentiels Introduction au parallélisme

  11. Un environnement logiciel stabilisé mais non unifié Résolution système linéaire Application Spécification Relaxation Algorithme Programmation Environnement d’exécution // MPI, PVM, threads Compilateurs + exécutifs Programmes séquentiels Introduction au parallélisme

  12. Un environnement logiciel stabilisé mais non unifié Résolution système linéaire Application Spécification Relaxation Algorithme Programmation OpenMP, HPF, pC++… LHN Compilateurs parallèles Environnement d’exécution // MPI, PVM, threads Compilateurs + exécutifs Programmes séquentiels Introduction au parallélisme

  13. Le Top 500 • Les 500 ordinateurs les plus puissants • Volontariat • 2 fois par an depuis 1993. • Evalué sur Linpack, un benchmark facile et non trivial • Performance RMax mesurée en FLOPS • A comparer avec RPeak, la puissance indépassable. www.top500.org La barrière du PetaFlops a été franchie en 2008 Introduction au parallélisme

  14. TOP 500 : Nombre de processeurs / système Novembre 2009 Introduction au parallélisme

  15. Le Top 500 en Novembre 2009 PetaFlops Rang Introduction au parallélisme

  16. Evolution Introduction au parallélisme

  17. Linpack est-il un benchmark pertinent ? (…) the LINPACK Benchmark is to solve a dense system of linear equations (…) In an attempt to obtain uniformity across all computers in performance reporting, the algorithm used in solving the system of equations in the benchmark procedure must conform to LU factorization with partial pivoting. In particular, the operation count for the algorithm must be 2/3 n^3 + O(n^2) double precision floating point operations. This excludes the use of a fast matrix multiply algorithm like "Strassen's Method" or algorithms which compute a solution in a precision lower than full precision (64 bit floating point arithmetic) and refine the solution using an iterative approach. Introduction au parallélisme

  18. Gordon Bell Prize: “peak performance” Année Performance 1987 450 Mflops 1988 1 Gflops 1990 14 Gflops 1996 111 Gflops 1999 1.2 Tflops 2001 11.4 Tflops 2005 107 Tflops 2006 207 Tflops 2008 1.35 Pflops 2009 1.84 Pflops

  19. Processeur séquentiel • Partie opérative • Partie contrôle • Hiérarchie mémoire • Bus (au pluriel) Processeur Automates CP RI Bus Mémoire Centrale Caches Mémoire Principale Introduction au parallélisme

  20. La classification de Flynn Degré de réplication de la partie opérative et de la partie contrôle Processeur Automates CP RI Instructions Bus Mémoire Centrale SISD MISD Caches Données Mémoire Principale SIMD MIMD Introduction au parallélisme

  21. MIMD non vectoriel Exploite les acquis des architectures de microprocesseurs: Hiérarchie mémoire, OS Microprocesseur standard Microprocesseur standard Microprocesseur standard Réseau hautes performances Introduction au parallélisme

  22. Modèles de programmation : Djikstra/Flynn Parallélisme de contrôle Composition parallèle de processus séquentiels PAR(SEQ) – MIMD Parallélisme de données Composition séquentielle de processus parallèles SEQ(PAR) - SIMD • parfor i = 1, n • a(i) = b(i) +c(i) • x(i) = y(i) + z(i) • end do • forall i = 1, n • a(i) = b(i) +c(i) • forall i = 1, n • x(i) = y(i) + z(i) Et beaucoup d’autres modèles Introduction au parallélisme

  23. Organisation et accès mémoire • Situation de la mémoire/des caches par rapport aux processeurs : Centralisée ou Distribuée • Organisation de l’espace d’adressage: Unique ou Plusieurs • Hiérarchie des temps d’accès mémoire: Uniforme ou non uniforme Processeur STORE LOAD Bus Mémoire Centrale Caches Mémoire Principale Introduction au parallélisme

  24. Mémoire 12 9 3 12 6 9 3 6 Opposé Mémoire Mémoire Mémoire Mémoire 12 9 3 12 6 9 3 6 Organisation mémoire + Mémoire centralisée Espace d’adressage unique Accès mémoire uniforme Mémoire @Max Mémoire Réseau @0 PE PE PE PE PE PE PE PE Complexité Plusieurs espaces d’adressage Accès mémoire non uniforme Mémoire distribuée @Max Réseau @Max @Max PE PE PE @0 @0 @0 Mémoire Mémoire PE PE Mémoire PE PE PE - Introduction au parallélisme

  25. Modèles de programmation/exécution • Espaces d’adressage multiples • pprocessus • Communiquent par messagerie • Le programmeur ou le compilateur ou l’exécutif doit définir le placement des données et l’ordonnancement des calculs • Le placement des données peut définir celui des calculs : ex. OCR • Espace d’adressage unique • p threads • Communiquent à travers des variables partagées • Le programmeur ou le compilateur ou l’exécutif doit définir le placement et l’ordonnancement des calculs Introduction au parallélisme

  26. Architectures actuelles Acc Acc Acc Acc Acc Acc proc proc proc … … … cache cache cache Réseau d’adressage Réseau d’adressage Réseau d’adressage Mémoire Mémoire Mémoire Nœud SMP Nœud SMP Nœud SMP Réseau de messagerie Introduction au parallélisme

  27. Terminologie • MPP : Massively Parallel Multiprocessor • Clusters • La principale différence est dans le degré réseau (au sens large) non propriétaire pour les clusters Introduction au parallélisme

  28. System Blue Gene/P Rack 72 Racks 73728 nodes 294912 cores 1 PF 144 TB DDR2 Node Card 32 node-cards 1024 nodes 4096 cores 13.9 TF 2 TB DDR2 Compute Card 32 nodes 128 cores 435 GF 64GB DDR2 Chip 1 node 4 cores 13.6 GF 2GB DDR2 4 cores 13.6 GF

  29. BPC chip DD2.1 die photograph 13mmx13mm 90 nm process 208M transistors 88M in eDRAM

  30. 32k I1/32k D1 Snoop filter PPC450 Shared L3 Directory for eDRAM w/ECC 4MB eDRAM L3 Cache or On-Chip Memory 128 Multiplexing switch L2 Double FPU 256 512b data 72b ECC 256 32k I1/32k D1 Snoop filter PPC450 128 L2 Double FPU Shared SRAM Multiplexing switch 64 Snoop filter 32k I1/32k D1 Shared L3 Directory for eDRAM w/ECC 4MB eDRAM L3 Cache or On-Chip Memory PPC450 128 L2 512b data 72b ECC Double FPU Snoop filter 32k I1/32k D1 PPC450 128 L2 Double FPU Arb DMA DDR2 Controller w/ ECC PMU DDR2 Controller w/ ECC JTAG Torus Global Barrier Collective 10 Gbit 4 global barriers or interrupts 10 Gb/s 6 3.4Gb/sbidirectional 3 6.8Gb/sbidirectional JTAG 13.6 GB/s DDR-2 DRAM bus Blue Gene/P ASIC

  31. Blue Gene/P Interconnection Networks 3 Dimensional Torus Interconnects all compute nodes Virtual cut-through hardware routing 3.4 Gb/s on all 12 node links (5.1 GB/s per node) 0.5 µs latency between nearest neighbors, 5 µs to the farthest MPI: 3 µs latency for one hop, 10 µs to the farthest Communications backbone for point-to-point Collective Network One-to-all broadcast functionality Reduction operations for integers and doubles 6.8 Gb/s of bandwidth per link per direction Latency of one way tree traversal 1.3 µs, MPI 5 µs Interconnects all compute nodes and I/O nodes Low Latency Global Barrier and Interrupt Latency of one way to reach 72K nodes 0.65 µs, MPI 1.6 µs Combien d’opérations flottantes par seconde ?

  32. Blue Gene/P Architectural Highlights Scaled performance relative to BG/L through density and frequency 1.2x from frequency bump 700 MHz => 850 MHz 2x performance through doubling the processors/node Enhanced function 4 way SMP, cache coherent, supports threads, OpenMP Improved memory subsystem supporting higher bandwidths DMA for torus, remote put-get, user programmable memory prefetch Memory chip kill implemented. Enhanced performance counters (including 450 core) Architectures of double Hummer FPU, torus, collective network, barrier, and JTAG networks were left intact. Higher signaling rate 2.4x higher bandwidth, lower latency for Torus and Tree networks 10x higher bandwidth for Ethernet IO

  33. Execution Modes in BG/P Core 0 Core 0 Core 0 Core 0 Core 1 Core 1 Core 1 Core 1 Core 2 Core 2 Core 2 Core 2 Core 3 Core 3 Core 3 Core 3 node core Hardware Elements Black Software Abstractions Blue SMP Mode 1 Process 1-4 Threads/Process Dual Mode 2 Processes 1-2 Threads/Process Quad Mode (VNM) 4 Processes 1 Thread/Process

  34. RoadRunner Introduction au parallélisme

  35. Accélération Introduction au parallélisme

  36. Accélération et efficacité parallèles T(p) : temps d’exécution à p processeurs • S(p) = p Application parfaitement parallélisable Parallélisme trivial • S(p) = kp k < 1 en général, mais k > 1 est possible Introduction au parallélisme

  37. La loi d’Amdhal L’application comporte • Une fraction séquentielle f : contrôle, calculs scalaires répliqués, … • Une fraction parfaitement parallélisable 1-f Inutile d’ajouter des processeurs au delà Introduction au parallélisme

  38. La loi d’Amdhal S(p) 1/f p Inutile d’ajouter des processeurs au delà Introduction au parallélisme

  39. Optimiser pour d’autres critères • L’hypothèse implicite est que le problème est de taille fixe • Les problèmes de taille fixe existent : traitement d’images • « Améliorer le traitement des problèmes ordinaires » • Mais d’autres contraintes peuvent être plus pertinentes par rapport à la demande de l’utilisateur : résoudre un problème, effectuer une simulation etc. • En temps constant • En encombrement mémoire constant Introduction au parallélisme

  40. La loi de Gustafson L’application comporte • Une partie séquentielle a : contrôle, calculs scalaires répliqués, … • Une partie parfaitement parallélisable b • L’application est extensible Accélération affine Introduction au parallélisme

  41. Autres facteurs pénalisants pour l’accélération • Le parallélisme introduit des surcoûts • Communications (EAM) ou synchronisations (EAU) • Matériel • Le coût des communications ou des synchronisations augmente avec p • Algorithme • Déséquilibre de charge • Augmentation du nombre de communications ou de synchronisations par unité de travail Introduction au parallélisme

  42. Autres facteurs pénalisants pour l’accélération • Le parallélisme introduit des surcoûts • Communications (EAM) ou synchronisations (EAU) • Matériel • Le coût des communications ou des synchronisations augmente avec p • Algorithme • Déséquilibre de charge • Augmentation du nombre de communications ou de synchronisations par unité de travail La parallélisation triviale est presque toujours la meilleure solution lorsqu’elle est possible Exception : Changements de niveau dans la hiérarchie mémoire. Out-of-Core -> MP, ou MP -> cache Introduction au parallélisme

  43. Critères économiques • Iso-efficacité : Taille nécessaire pour atteindre une efficacité donnée • Peut on atteindre une certaine efficacité sur un système donné ? • De combien faut-il augmenter la taille du problème ? • Existe-t-il une taille maximale du système telle qu’on ne puisse plus atteindre l’efficacité requise ? • Comparaison des applications : la meilleur iso-efficacité est la plus petite • Exemple canonique : N1/2 Introduction au parallélisme

  44. Débit R(n) R∞ R∞/2 p N1/2 Introduction au parallélisme

More Related