introduction aux architectures parallèles
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
Introduction aux Introduction aux architectures architectures parallèlesparallèles
Professeur: Nilo STOLTE
Chargé de Cours: Mohammed ELKANOUNI
Département de génie logiciel et des TI
2INTRODUCTION AU TRAITEMENT PARALLÈLE
SommaireSommaire
Parallélisme et programmation
Machines Parallèles
Programmation parallèle
Les algorithmes parallèles
3INTRODUCTION AU TRAITEMENT PARALLÈLE
Besoin de performanceBesoin 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.
4INTRODUCTION AU TRAITEMENT PARALLÈLE
Besoin de performanceBesoin 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
5INTRODUCTION AU TRAITEMENT PARALLÈLE
Besoin de performanceBesoin 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
6INTRODUCTION AU TRAITEMENT PARALLÈLE
Besoin de performanceBesoin de performance
D’après « Techniques de l’Ingénieur », H 1088D’après « Techniques de l’Ingénieur », H 1088
7INTRODUCTION AU TRAITEMENT PARALLÈLE
Pourquoi le parallélisme?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
8INTRODUCTION AU TRAITEMENT PARALLÈLE
Gain de performancesGain 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
10INTRODUCTION AU TRAITEMENT PARALLÈLE
Gain de performancesGain 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
11INTRODUCTION AU TRAITEMENT PARALLÈLE
Rentabilité du parallélismeRentabilité 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 ?
12INTRODUCTION AU TRAITEMENT PARALLÈLE
Adéquation au traitement temps Adéquation au traitement temps réelré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 !
INTRODUCTION AU TRAITEMENT PARALLÈLE 13
Tolérance aux pannesTolé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
INTRODUCTION AU TRAITEMENT PARALLÈLE 14
Disponibilité du matériel et Disponibilité du matériel et logiciellogiciel
Disponibilité des architectures parallèles
Disponibilité des bibliothèques de calcul parallèle
Disponibilité des réseaux informatiques performants
15INTRODUCTION AU TRAITEMENT PARALLÈLE
Performance des Performance des supercalculateurssupercalculateurs
16INTRODUCTION AU TRAITEMENT PARALLÈLE
Tendance de la période d’horloge Tendance de la période d’horloge des CPU (Fréquence)des CPU (Fréquence)
17INTRODUCTION AU TRAITEMENT PARALLÈLE
Classification des architectures Classification des architectures parallèlesparallè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)
18INTRODUCTION AU TRAITEMENT PARALLÈLE
SISD (Single Instruction, SISD (Single Instruction, Single Data)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
19INTRODUCTION AU TRAITEMENT PARALLÈLE
SIMD (Single Instruction, SIMD (Single Instruction, Multiple Data)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
22INTRODUCTION AU TRAITEMENT PARALLÈLE
Demo: Visualisation de surfaces implicites en Demo: Visualisation de surfaces implicites en utilisant P3/P4 float SIMD (code)utilisant P3/P4 float SIMD (code)
Video: Pentium P3/P4 x AMDVideo: Pentium P3/P4 x AMD
SIMD – exemple -SIMD – exemple -
23INTRODUCTION AU TRAITEMENT PARALLÈLE
MISD (Multiple Instruction, MISD (Multiple Instruction, Single Data)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
24INTRODUCTION AU TRAITEMENT PARALLÈLE
MIMD (Multiple Instruction, MIMD (Multiple Instruction, Multiple Data)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
25INTRODUCTION AU TRAITEMENT PARALLÈLE
MIMD à mMIMD à mémoire partagéeé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
26INTRODUCTION AU TRAITEMENT PARALLÈLE
MIMD à mémoire distribuéeMIMD à 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
27INTRODUCTION AU TRAITEMENT PARALLÈLE
MIMD Hybride à mémoire MIMD Hybride à mémoire partagée-distribuéepartagée-distribuée
Utilisée par les supercalculateurs
Avantages:
- Extensibilité, performance, moindre coût
28INTRODUCTION AU TRAITEMENT PARALLÈLE
Modèles de programmation Modèles de programmation parallèleparallè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 ……
29INTRODUCTION AU TRAITEMENT PARALLÈLE
Modèles à mémoire partagéeModèles à mémoire partagée
Les tâches partagent un espace d’adressage
Mécanismes disponibles:
- Sémaphore
- Mutex
30INTRODUCTION AU TRAITEMENT PARALLÈLE
Modèles par les fils d'exécutionModè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
31INTRODUCTION AU TRAITEMENT PARALLÈLE
Modèles par passage de Modèles par passage de messagemessage
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
32INTRODUCTION AU TRAITEMENT PARALLÈLE
Modèles par données parallèlesModè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
33INTRODUCTION AU TRAITEMENT PARALLÈLE
Modèle hybrideModè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
34INTRODUCTION AU TRAITEMENT PARALLÈLE
Les algorithmes parallèlesLes 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
35INTRODUCTION AU TRAITEMENT PARALLÈLE
Propriétés des algorithmes Propriétés des algorithmes parallèlesparallèles
Concurrence
Modularité
Dimensionabilité
Portabilité: abstraction du matériel
Déterministe: obtenir les mêmes résultats
36INTRODUCTION AU TRAITEMENT PARALLÈLE
Exemple d’algorithmes Exemple d’algorithmes parallèles parallèles - Équation d’ondes -- É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
37INTRODUCTION AU TRAITEMENT PARALLÈLE
Équation d’ondesÉ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