410 likes | 573 Views
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.
E N D
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 • 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.
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
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
Besoin de performance D’après « Techniques de l’Ingénieur », H 1088
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
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
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
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 ?
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 !
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
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
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)
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
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
SIMD – suite - • SIMD parallèle
SIMD – suite - • SIMD vectoriel
SIMD – exemple - • Demo: Visualisation de surfaces implicites en utilisant P3/P4 float SIMD (code) • Video: Pentium P3/P4 x AMD
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
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
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
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
MIMD Hybride à mémoire partagée-distribuée • Utilisée par les supercalculateurs • Avantages: • Extensibilité, performance, moindre coût
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 ……
Modèles à mémoire partagée • Les tâches partagent un espace d’adressage • Mécanismes disponibles: • Sémaphore • Mutex
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
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
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
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
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
Propriétés des algorithmes parallèles • Concurrence • Modularité • Dimensionabilité • Portabilité: abstraction du matériel • Déterministe: obtenir les mêmes résultats
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
É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
Équation d’ondes - Solution - • Équilibrage de charge • Communication aux bord de la tâche