1 / 38

Introduction aux architectures parallèles

Introduction aux architectures parallèles. Professeur: Nilo STOLTE Chargé de Cours: Mohammed ELKANOUNI Département de génie logiciel et des TI. Sommaire. Parallélisme et programmation Machines Parallèles Programmation parallèle Les algorithmes parallèles. Besoin de performance.

Download Presentation

Introduction aux architectures parallèles

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 aux architectures parallèles Professeur: Nilo STOLTE Chargé de Cours: Mohammed ELKANOUNI Département de génie logiciel et des TI

  2. Sommaire • Parallélisme et programmation • Machines Parallèles • Programmation parallèle • Les algorithmes parallèles

  3. Besoin de performance • Les applications traditionnelles (calcul intensif): • Prévision météo • Simulation scientifique: mécanique, aérodynamique, électrique, biologique • Nouvelles applications (données intensives): • Traitement d’image, multimédia, infographie • Les applications futures: • CAO, RV, etc.

  4. Besoin de performance • Puissance de traitement et/ou la disponibilité • Puissance de traitement recouvre 2 notions: la latence de traitement et le débit de traitement • La latence représente le temps nécessaire pour l’exécution d’un traitement. • Le débit représente le nombre de traitement exécutable par unité de temps • Disponibilité: résistance aux pannes, maintien de la performance

  5. Besoin de performance • Modélisation du climat: • 1018 FLOP pour une simulation de 10 ans (10 jours @ 1 Tflops) • Génère 100 GB de données • Graphisme 3D à temps réel: • Résolution 10242 éléments • 10242 x 30 fps x 300 ops/el = 9437184000 ops/sec ??? • I/O doit correspondre à cet exigence

  6. Besoin de performance D’après « Techniques de l’Ingénieur », H 1088

  7. Pourquoi le parallélisme? • Gain de performances • Rentabilité du parallélisme • Flexibilité et extensibilité • Adéquation au traitement temps réel • Tolérance aux pannes • Disponibilité du matériel et logiciel

  8. Gain de performances • Performance est souvent prise au sens de vitesse • Limitation physique des performances des µP due à: • Vitesse de la lumière • Dégagement de la chaleur

  9. Gain de performances

  10. Gain de performances • Exemple de prévision météo du globe: • Partitionnement: 1 * 1* 1 miles –> 5 * 108 subdivisions • Simulation de 7 J avec un pas d'une minute • 200 FLOP dans chaque pas de temps • Total 1015 FLOP • 10 jours @ ordinateur de 1 Gflops • 5 minutes @ ordinateur de 3.4 Tflops

  11. Rentabilité du parallélisme • Loi de Grotsh (années 60): « Il est plus coûteux de fabriquer n processeurs plutôt qu’un seul n fois plus puissant » → aujourd’hui on prouve le contraire • Exemple: (tiré du ‘Multithreaded programming with Pthreads’) • MARC Solver (simulation des circuits) s’exécutent 80% plus vite sur une station SPARC biprocesseur que sur SPARC monoprocesseur • Coût : SPARC 2 µp →18.000$, SPARC 1 µp → 16.000$, • L’investissement d’une machine biprocesseur vaut il le coût ?

  12. Adéquation au traitement temps réel • Applications à temps réel: • Nécessitent du performance (vitesse d’exécution) • Pas de tolérance à l’erreur • Servent souvent à commander des systèmes critiques • Le parallélisme est incontournable !

  13. Tolérance aux pannes • Les systèmes multiprocesseurs sont plus fiables • Même si un composant (matériel ou logiciel) tombe en panne les autres sont intacts

  14. Disponibilité du matériel et logiciel • Disponibilité des architectures parallèles • Disponibilité des bibliothèques de calcul parallèle • Disponibilité des réseaux informatiques performants

  15. Performance des supercalculateurs

  16. Tendance de la période d’horloge des CPU (Fréquence)

  17. Classification des architectures parallèles • Taxonomie de Flynn (1972): • Flux de données • Flux d’instruction • Variations: • SISD (Single Instruction, Single Data) • SIMD (Single Instruction, Multiple Data) • MISD (Multiple Instruction, Single Data) • MIMD (Multiple Instruction, Multiple Data)

  18. SISD (Single Instruction, Single Data) • Machine de Von Newman: • Flux commun de donnée et d’instruction • Machine de Harvard: • Séparation du flux de donnée et d’instruction • Supporte le parallélisme apparent

  19. SIMD (Single Instruction, Multiple Data) • Plusieurs unités arithmétiques • Même instruction à la fois • S’adapte aux problèmes à forte régularité: • Équation de chaleur • Traitement d’image • Infographie

  20. SIMD – suite - • SIMD parallèle

  21. SIMD – suite - • SIMD vectoriel

  22. SIMD – exemple - • Demo: Visualisation de surfaces implicites en utilisant P3/P4 float SIMD (code) • Video: Pentium P3/P4 x AMD

  23. MISD (Multiple Instruction, Single Data) • Même donnée traitée par plusieurs unités • Peu d’implémentation • S’adapte aux applications spécifiques: • Filtrage numérique • Décryptage avec plusieurs algorithmes

  24. MIMD (Multiple Instruction, Multiple Data) • L’architecture parallèle la plus utilisée • Plusieurs instructions, plusieurs données • Chaque processeur exécute son flux d’instruction indépendamment des autres • 2 variantes: • Mémoire partagée • Mémoire distribuée

  25. MIMD à mémoire partagée • Accès à la mémoire comme un espace d’adressage global • Tout changement dans une case mémoire est vu par les autres CPU • La communication inter-CPU est faite via la mémoire globale

  26. MIMD à mémoire distribuée • Chaque CPU a sa propre mémoire et système d’exploitation • Communication inter-CPU via le réseau rapide • Peut contenir des architectures hétérogènes • Nécessité d’un middleware pour la synchronisation et la communication

  27. MIMD Hybride à mémoire partagée-distribuée • Utilisée par les supercalculateurs • Avantages: • Extensibilité, performance, moindre coût

  28. Modèles de programmation parallèle • Modèle: abstraction du matériel • 2 modèles: • Synchrone: concept de ``Rendez-vous`` • Langage Ada Occam, CSP (Communication Sequential Processes) • Asynchrone: concept de boite à lettres • MPI, PVM ……

  29. Modèles à mémoire partagée • Les tâches partagent un espace d’adressage • Mécanismes disponibles: • Sémaphore • Mutex

  30. Modèles par les fils d'exécution • Plusieurs fils d’exécution • Dépends de: • Architecture de mémoire • Système d’exploitation • Implémentations: • POSIX Thread: norme IEEE Posix 1003.1c • OpenMP: multi plate-forme: UNIX, Linux, Win NT • Microsoft à sa propre implémentation des fils d'exécution

  31. Modèles par passage de message • Chaque tâche utilise sa propre mémoire • L’échange se fait par : émission et réception de message • Plusieurs variantes: MPI, P4, Linda, PVM, Express

  32. Modèles par données parallèles • Exécution des opérations sur un ensemble de données organisées • Mémoire partagée et distribuée • Les implémentations: Fortran 90, HPF

  33. Modèle hybride • Combinaison de MPI avec Pthread ou OpenMP • Combinaison du modèle par données parallèles avec le modèle de passage de message: F90 ou HPF

  34. Les algorithmes parallèles • Calcul parallèle: ensemble de tâches • Chaque tâche a sa propre donnée, connectée par les autres par des canaux • Une tâche peut: • Calculer en utilisant sa donnée locale • Envoyer et recevoir des autres tâches • Créer d’autres tâches ou se terminer

  35. Propriétés des algorithmes parallèles • Concurrence • Modularité • Dimensionabilité • Portabilité: abstraction du matériel • Déterministe: obtenir les mêmes résultats

  36. Exemple d’algorithmes parallèles - Équation d’ondes - • Amplitude d’une corde vibrante • Le calcul nécessite: • L’amplitude (A) dans l’axe y • i l’index de position dans l’axe x • Les nœuds de position à travers la corde • Mise à jour de l’amplitude à des pas de temps discrets

  37. Équation d’ondes • L’équation d’onde (discrétisée): A(i,t+1) = (2.0 * A(i,t)) - A(i,t-1) + (c * (A(i-1,t) - (2.0 * A(i,t)) + A(i+1,t))) c est une constante

  38. Équation d’ondes - Solution - • Équilibrage de charge • Communication aux bord de la tâche

More Related