Vous êtes sur la page 1sur 48

Introduction au

parallélisme

Architectures de calculs parallèles

LOG645
Sommaire

 Parallélisme et programmation
 Machines parallèles
 Programmation parallèle
 Algorithmes parallèles

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 2
Qu’est-ce que le parallélisme ?

 Exécution d’un algorithme en utilisant plusieurs processeurs


plutôt qu’un seul
 Division d’un algorithme en tâches pouvant être exécutées en
même temps sur des processeurs différents
 Le but : réduire le temps de résolution d’un problème un
utilisant un ordinateur parallèle
 3 niveaux d’abstraction
- Architectures
- Algorithmes
- Programmation
LOG645 – Architectures de calculs parallèles
Matériel développé par Lévis Thériault, Automne 2014 3
Architectures parallèles

 Ordinateur parallèle : ordinateur comportant plusieurs


processeurs et supportant la programmation parallèle
 Plusieurs types d’architectures
- Distribuées
- Centralisées
 Modèles d’architecture : simplification du fonctionnement
des ordinateurs parallèles
- SIMD (Single Instruction, Multiple Data)
- MIMD (Multiple Instruction, Multiple Data)
2 modeles
1. Plusieurs thread dans memoire partageas
2. Sys distribué. Copie état ou état partage.
Mais problème d’incoherence.

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 4
Algorithmes parallèles

 Approches de résolution de problèmes dans un


contexte d’exécution parallèle
 Modèles algorithmiques : contextes d’exécution
parallèle simplifiés pour faciliter la conception
- PRAM (Parallel Random Access Machine)
 Analyse théorique de la performance

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 5
Programmation parallèle

 Programmation dans un langage permettant


d’exprimer le parallélisme dans une application
réelle
 Différents niveaux d’abstraction possibles
 La parallélisation automatique serait la solution
idéale, mais c’est très difficile
 La façon de programmer n’est pas indépendante
de la machine utilisée

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 6
Vue d’ensemble simplifiée du
calcul parallèle des années 2000
Applications

Pthreads Java Threads OpenMP MPI PVM

Threads

Mémoire partagée Passage de messages


(Shared memory) (Message passing()

Distributed Shared
Memory (DSM)

- SMP : Symmetric
- NUMA : Non Uniform Cluster
MultiProcessing
Memory Access

SMP CC-NUMA Myrinet ATM

Architectures concrètes

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 7
À la recherche du parallélisme

 Graphe de dépendance
 Parallélisme de données
 Parallélisme de tâches
 Parallélisme en pipeline

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 8
Graphe de dépendance

 Permet de représenter visuellement le parallélisme


d’un algorithme
A
 Sommet = tâche
 Arc = Relation de dépendance B

Parallelisme: pas de dépendances entre les 2


3 types de dependances
C D E
C = 11 (dep de flow=inevitable)
A=B+C
C = 1.7 (Anti dependance evitable)

Peut pas paralleliser ni pas thread ni par instruction level F G

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 9
Parallélisme de données

 Présent lorsque des tâches indépendantes


appliquent la même opération sur différents
éléments d’un ensemble de données
 Pour i = 1 à 100
A
a[i] = b[i] + c[i]
B B B
Boucle for

En fonction d’une donnée parallelise la


boucle for sur des intervalles d’indices
C
SIND utile ici

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 10
Parallélisme de tâches

 Présent lorsque des tâches indépendantes


appliquent des opérations différentes sur des
données différentes
- a=2
A
- b=3
- m = (a + b) / 2 B C D

- s = (a2 + b2) / 2
E
- v = s – m2

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 11
Parallélisme en pipeline

 Diviser un algorithme strictement séquentiel en


phases
 Résoudre plusieurs instances de problèmes à la
chaîne
 La sortie (output) d’une phase représente l’entrée
(input) de la phase suivante
Sablage Peinture Cirage

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 12
Besoin de performance

 Applications traditionnelles (calcul intensif):


- Prévision météo
- Simulation scientifique: mécanique, aérodynamique,
électrique, biologique
 Nouvelles applications (donnée intensive):
- Traitement d’images, multimédia memory bound
Paralleliser n’aide pas (mettre
matrice valeur i dans boucle for)

 Applications actuelles et futures: CPU intensive.


Calculer un hash.

- CAO, RV, Jeux vidéo

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 13
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, maintient de
la performance Y=ax+b
Film (FPS important = Debit) vs Temps = Débit * Taille + Latence
jeu video (Latence important)
Latence
demarrage

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 14
Besoin de performance

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

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 16
Pourquoi le parallélisme?

 Gain de performance
 Rentabilité du parallélisme
 Flexibilité et extensibilité
 Adéquation au traitement en temps réel
 Tolérance aux pannes
 Disponibilité du matériel et du logiciel

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 17
Gain de performance

 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

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 18
Gain de performance

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 19
Gain de performance

 Exemple de prévision météo:


- Air de 3000*3000*11 miles3
- Partitionnement: 0.1*0.1*0.1 miles –> 1011 subdivisions
- Simulation de 2 J et un calcul tous les 30 min
- 100 instructions par pas de temps
- Total 1015 instructions –> 280 h @ 1000 MIPS
- 6 h @ 100 * 500 MIPS

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 20
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$,
concepteur → 100000$/An
- L’investissement d’une machine biprocesseur vaut-il le
coût ?

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 21
Adéquation au traitement en
temps réel
Ecouteur noise cancelling. Onde

 Applications en temps réel: de son traverse son traverser le


CM temps de trouver onde
inverse. Contrainte de temps tres
strictes.

- Nécessitent de la performance (vitesse


d’exécution)
- Pas de tolérance aux pannes
- Sert souvent à commander des systèmes critiques
 Le parallélisme est incontournable !

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 22
Tolérance aux pannes

 Systèmes multiprocesseurs sont plus fiables


 Même si un composant tombent en panne
(matérielle ou logicielle) les autres sont intacts

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 23
Disponibilité du matériel et du
logiciel

 Disponibilité des architectures parallèles


 Disponibilité des bibliothèques de calcul
parallèle
 Disponibilité des réseaux informatiques
performants

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 24
Performance des
supercalculateurs

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 25
Tendance de la période d’horloge
des CPU (Fréquence)

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 26
Classification des architectures
parallèles

 Taxonomie de Flynn (1972):


- Flux de données
- Flux d’instructions
 Variations:
- SISD (Single Instruction, Single Data)
- SIMD (Single Instruction, Multiple Data)
- MISD (Multiple Instruction, Single Data)
- MIMD (Multiple Instruction, Multiple Data)

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 27
SISD (Single Instruction,
Single Data)

 Machine de von Neumann:


- Flux commun de données et
d’instructions

 Machine de Harvard:
- Séparation du flux de données et
d’instructions

 Supporte le parallélisme
apparent

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 28
SIMD (Single Instruction,
Multiple Data)

 Plusieurs unités arithmétiques


 Même instruction à la fois
 S’adapte aux problèmes à fort régularité:
 Équation de chaleur
 Traitement d’images

 GPGPU
- CUDA
- OpenCL

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 29
SIMD – suite –

 SIMD parallèle
LOG645 – Architectures de calculs parallèles
Matériel développé par Lévis Thériault, Automne 2014 30
SIMD – suite –

 SIMD vectoriel
LOG645 – Architectures de calculs parallèles
Matériel développé par Lévis Thériault, Automne 2014 31
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

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 32
MIMD (Multiple Instruction,
Multiple Data)
MPI en fait partie
OpenMP aussi
 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

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 33
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 via la mémoire
globale

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 34
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 (intergiciel) pour
la synchronisation et la communication
LOG645 – Architectures de calculs parallèles
Matériel développé par Lévis Thériault, Automne 2014 35
MIMD Hybride à mémoire
partagée-distribuée

 Utilisée par les supercalculateurs


 Avantages:
- Extensibilité, performance, coût

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 36
Modèles de programmation
parallèle

 Modèle: abstraction du matériel


 2 modèles:
- Synchrone: concept de « Rendez-vous »
- Langages parallèles: Ada, Occam
- CSP (Communication Sequential Processes)

- Asynchrone: concept de boite aux lettres


- MPI (Message Passing Interface)
- PVM (Parallel Virtual Machine)

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 37
Modèles à mémoire partagée

 Les tâches partagent un espace d’adressage


 Mécanismes disponibles:
- Sémaphore (lien) Sac avec jetons. Attendre avec sa main si pas de jetons

- Mutex (exclusion mutuelle) (lien)


Meme principles que jeton. Un seul jeton, seule
personne qui peut remettre jeton c’est lui qui la pris

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 38
Modèles par les fils d'exécution

 Plusieurs fils d’exécution (threads)


 Dépends de:
- Architecture de mémoire
- Système d’exploitation
 Implémentations:
- POSIX Thread (PThread): norme IEEE Posix 1003.1c
- POSIX (Portable Operating System Interface) (lien)
- OpenMP: multi plate-forme: UNIX, Linux, Win NT
- Microsoft à sa propre implémentation des threads
LOG645 – Architectures de calculs parallèles
Matériel développé par Lévis Thériault, Automne 2014 39
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

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 40
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 (F90), HPF


(High-Performance Fortran)
LOG645 – Architectures de calculs parallèles
Matériel développé par Lévis Thériault, Automne 2014 41
Modèles hybrides

 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

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 42
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

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 43
Propriétés des algorithmes
parallèles

 Concurrence Competition: 2 threads 2 taches qui sexecute en meme temps.


Coopere et competitionne (ressources du systèmes)
Il va y avoir un ordonnancement
Serialisation des commandes.
Competition qui a en premier
 Modularité Cooperation ajouter par programmeur: partage de information.
Concurrence et synchronisation.

 Dimensionabilité
 Portabilité: abstraction du matériel
 Déterministe: obtenir les mêmes résultats
Meme inputs avec meme outputs. Si une race condition: dependance sur ordre des
instructions: depend sur ordre des operations. Pas de protection nécessaire
mauvais timing implique problème. Résultat du prog depend du timing. Résultat
non déterministe,

LOG645 – Architectures de calculs parallèles


Matériel développé par Lévis Thériault, Automne 2014 44
Précisions

 Calcul parallèle vs Calcul distribué


- Parallèle : homogénéité, haut niveau de couplage des
tâches
- Distribué : hétérogénéité, indépendance logique et
physique des tâches, client-serveur

 Calcul parallèle vs Calcul concurrent


- Parallèle : coopération des processus dans la résolution
d’un problème
- Concurrent : compétition entre processus, partage des
ressources
LOG645 – Architectures de calculs parallèles
Matériel développé par Lévis Thériault, Automne 2014 45

Vous aimerez peut-être aussi