introduction aux architectures parallèles

38
Introduction aux Introduction aux architectures architectures parallèles parallèles Professeur: Nilo STOLTE Chargé de Cours: Mohammed ELKANOUNI Département de génie logiciel et des TI

Upload: ayanna-mcmahon

Post on 03-Jan-2016

42 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

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

9INTRODUCTION AU TRAITEMENT PARALLÈLE

Gain de performancesGain de performances

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

20INTRODUCTION AU TRAITEMENT PARALLÈLE

SIMD – suite -SIMD – suite -

SIMD parallèleSIMD parallèle

21INTRODUCTION AU TRAITEMENT PARALLÈLE

SIMD – suite -SIMD – suite -

SIMD vectorielSIMD vectoriel

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

38INTRODUCTION AU TRAITEMENT PARALLÈLE

Équation d’ondes - Solution -Équation d’ondes - Solution -

Équilibrage de charge

Communication aux bord de la tâche