Cours 1 - LOG640 - Introduction au traitement parallèle

publicité
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
2
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.
INTRODUCTION AU TRAITEMENT PARALLÈLE
3
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
4
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
5
Besoin de performance
D’après « Techniques de l’Ingénieur », H 1088
INTRODUCTION AU TRAITEMENT PARALLÈLE
6
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
7
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
8
Gain de performances
INTRODUCTION AU TRAITEMENT PARALLÈLE
9
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
10
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 ?
INTRODUCTION AU TRAITEMENT PARALLÈLE
11
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 !
INTRODUCTION AU TRAITEMENT PARALLÈLE
12
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
13
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
14
Performance des
supercalculateurs
INTRODUCTION AU TRAITEMENT PARALLÈLE
15
Tendance de la période d’horloge
des CPU (Fréquence)
INTRODUCTION AU TRAITEMENT PARALLÈLE
16
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)
INTRODUCTION AU TRAITEMENT PARALLÈLE
17
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
18
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
19
SIMD
– suite -

SIMD parallèle
INTRODUCTION AU TRAITEMENT PARALLÈLE
20
SIMD
– suite -

SIMD vectoriel
INTRODUCTION AU TRAITEMENT PARALLÈLE
21
SIMD
– exemple -

Demo: Visualisation de surfaces implicites en
utilisant P3/P4 float SIMD (code)

Video: Pentium P3/P4 x AMD
INTRODUCTION AU TRAITEMENT PARALLÈLE
22
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
23
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
24
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
25
MIMD à mémoire distribuée

Chaque CPU a sa
propre mémoire et
système d’exploitation

Communication interCPU via le réseau
rapide

Peut contenir des architectures hétérogènes

Nécessité d’un middleware pour la
synchronisation et la communication
INTRODUCTION AU TRAITEMENT PARALLÈLE
26
MIMD Hybride à mémoire
partagée-distribuée


Utilisée par les supercalculateurs
Avantages:
- Extensibilité, performance, moindre coût
INTRODUCTION AU TRAITEMENT PARALLÈLE
27
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 ……
INTRODUCTION AU TRAITEMENT PARALLÈLE
28
Modèles à mémoire partagée

Les tâches partagent un espace d’adressage

Mécanismes disponibles:
- Sémaphore
- Mutex
INTRODUCTION AU TRAITEMENT PARALLÈLE
29
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
30
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
31
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
32
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
33
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
34
Propriétés des algorithmes
parallèles

Concurrence

Modularité

Dimensionabilité

Portabilité: abstraction du matériel

Déterministe: obtenir les mêmes résultats
INTRODUCTION AU TRAITEMENT PARALLÈLE
35
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
INTRODUCTION AU TRAITEMENT PARALLÈLE
36
É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
INTRODUCTION AU TRAITEMENT PARALLÈLE
37
Équation d’ondes - Solution -

Équilibrage de charge

Communication aux bord de la tâche
INTRODUCTION AU TRAITEMENT PARALLÈLE
38
Téléchargement