Pr - PowerPoint PPT Presentation

1 / 51
About This Presentation
Title:

Pr

Description:

et Syst mes R parties Fr d ric Gava (MCF) gava_at_u-pec.fr LACL, b timent P2 du CMC, bureau 221 Universit de Paris-Est Cr teil 61 avenue du G n ral de Gaulle – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 52
Provided by: fred352
Category:
Tags: cache | pram

less

Transcript and Presenter's Notes

Title: Pr


1
Algorithmes Parallèles et Systèmes Réparties
Frédéric Gava (MCF) gava_at_u-pec.fr LACL, bâtiment
P2 du CMC, bureau 221 Université de Paris-Est
Créteil 61 avenue du Général de Gaulle 94010
Créteil cedex
2
Pour ce semestre
  • 40 heures de cours et de TD et de TP
  • 3 enseignants (remplacement de M. Hains)
  • Frédéric Gava (moi)
  • Sovanna Tan
  • Julien Tesson
  • Notation
  • Petit projet
  • Examen final
  • CC (?)
  • Pas le même contenu que l'année dernière

3
Le parallélisme ?
  • On distribue les données sur p4, 32, 5000
    ordinateurs
  • Chacun calcule sur sa part des données
  • On séchange les résultats
  • On recommence si nécessaire
  • On espère que le calcul soit complété p fois
    plus vite
  • Mais léchange des données prend du temps
  • temps relatif inchangé depuis plus de 20 ans
  • Échange 20, 100, 1000 x plus lent quun calcul
    sil ny a pas de bouchon !

4
Architectures parallèles
5
Premières machines
  • 1976 Cray I refroidi au  gaz liquide 
  • 1981 Cyber 205, 50 Mflops
  • 1986 Cray X-MP (713 MFlops)
  • 1991 Cray Y-MP (16 GFlops)
  • 1995-2006
  • Grappes de PC
  • Super-ordinateurs parallèles et vectoriels
  • Calcul globalisé ou grilles de calcul
    géographiquement distribuées
  • 2006-2014
  • Architectures hybrides
  • Grappes de multi-cœurs
  • Plusieurs racs
  • avec GPU

6
Exemple grappe de PCs
7
Une grappe de lINRIA
8
Super-ordinateurs
Le earth-simulator au Japon, environ 5000
processeursLe Tera-10 du CEA (France) est classé
par mis les 5 plus puissantes machines
9
Comment mesurer ?
G
L
Cela limite les performances
10
Vitesse de calcul
Loi de Moore lefficacité des processeurs
double tout les 18 mois (normalement vrai
jusquen 2017 mais après ?)
Kilo Mega Giga
Tera
11
Vitesse des communications
CRAY T3E, haut de gamme circa 2002
 Nb Processeurs Mflops/s 1/L M/s 1/g Mmots/s
t3e-256(2) 2000 1,1 260
t3e-256(4) 4000 0,9 382
t3e-256(8) 7000 0,6 327
t3e-256(16) 15000 0,4 253
t3e-256(24) 2200 0,47 222
t3e-256(32) 28000 0,41 177
Même la fibre optique ny peut rien car la
vitesse de la lumière est finie et donc
communiquer coûte cher
12
Différentes architectures
  • On peut classer les machines parallèles suivant
    leur efficacité, leur nombre de processeurs, le
    types des processeurs/réseaux/mémoires etc.
  • On peut néanmoins et grossièrement classer les
    machines parallèles suivant 2 catégories
  • Les machines à mémoire partagées
  • Les machines à mémoire distribuées
  • Le modèle client/serveur

13
Mémoires partagées
Les processeurs  multi-core  comme les
 dual-core  les processeurs accède
directement à la mémoire vive très efficace
mais encore coûteux et limité en nombre de
processeurs (64 maxi dans le commerce)
Ici, cest lapanage des grosses, commerciales et
coûteuse (100k à 1M euros) machines massivement
parallèles comme les Cray T3E, SGI Origin 2000,
IBM SP avec 64, 128, 256 processeurs. Mais très
efficaces. Les processeurs accèdent tous à une
mémoire vive via un réseau gt communications
aussi efficaces que lecture mémoire
14
Mémoires distribués
Les processeurs communiquent via le réseaux
cest le domaine des grappes de machines.
Possibilité de machines peu cher avec un TRES
grand nombre de processeurs mais néanmoins,
encore aujourdhui, des communications plus
lentes que précédemment. Possibilité de
construire pour pas cher sa propre machine
parallèle
Une machine maître (serveur) distribue les
données et les calculs aux esclaves (client) et
le maîtres récolte les résultats. Ce modèle de
machine parallèles a été utilisé par exemple pour
le Généthon, SETI_at_HOME etc. en utilisant les
temps de calculs non-utilisé par les
particuliers. On a donc une très grande capacité
de calcul mais avec les problèmes suivant il
faut que le problème soit trivialement
décomposable, il faut vérifier les données
calculés pour éviter les pirates (on fait de la
redondance de calcul puis on prend le résultat le
plus rendu), communications parfois très
coûteuses.
15
Différentes architectures
  • On peut aussi classer les machines parallèles
    suivant les programmes qui y sont utilisés
    (classification de Flynn)
  • Pour cela, on classe suivants les instructions
    et les données

Single Instruction Multiple Instructions
Single Data SISD MISD
Multiple Data SIMD MIMD
16
SIMD
  • Chaque instruction du processeur manipule
    parallèlement (dans les circuits imprimés)
    plusieurs données on a donc plusieurs calculs à
    la fois pour chaque instruction
  • On trouve ce type dinstructions dans
  • les accélérateurs graphiques (du processeur ou
    de la carte graphique) on souhaite manipuler
    plusieurs pixels/polygones à la fois
  • les processeurs avec co-processeurs
    arithmétiques on souhaite calculer plusieurs
    additions à la fois pour accélérer les gros
    calculs numériques
  • etc.

17
MISD
  • Plusieurs instructions manipulent parallèlement
    une seule et unique donnée !?
  • En fait possible avec des programmes dis en
     pipe-line  des données circulent sur un
    circuits de processeurs (ou de processus, cest à
    dire avec plusieurs processus sur un même
    processeur) et chaque processus ne fait quune
    seule et unique opération
  • Exemple

18
Moralité
  •  Parallélisme , ambiguïté du terme
  • Calcul/archi parallèles (la  concurrence )
  • Multi-threading (serveurs web)
  • Algorithmes PRAM
  • Programmation GPU
  • Programmation synchrone
  • Calcul/archi distribués
  • Grappes (cluster) dordinateurs
  • Big-data
  • Algorithmes distribuées
  • Bien définir de quoi on parle ? modèles
    théoriques

19
Notions dalgorithmes parallèles et distribués
20
Paralléliser cest distribuer
Données
21
Cest aussi accélérer
C A L C U L
22
Mais aussi communiquer et synchroniser
D
é
o
n
n
e
s
D
o
é
e
s
n
n
3 cons.
4 voyel.
(3,4)
(3,4)
(3,4)
(3,4)
23
Le problème de lefficacité
  • Le but faire le total (addition) dun ensemble
    de nombre donnée le nombre dentiers à
    additionner sera toujours le même
  • On va répartir ces nombres suivant deux nombres
    de processeurs (humains), 5 et 10
  • Pour cette expérience, je vais demander 10
    volontaires
  • Chacun des volontaires fait la somme des entiers
    qui lui sont alloués
  • Dès que le volontaire a terminé, il se met près
    de moi
  • Puis les volontaires se réunissent pour faire la
    somme total
  • On analysera ensuite lefficacité globale des
    volontaires

24
Exemple
Volontaire
2
3
1
48
21
59
Total 1214329
25
Total avec 5 processeurs
Volontaire
2
3
4
5
1
4873
2198
5961
6741
3451
26
Avec 10 processeurs
Volontaire
2
1
3
4
5
6
7
8
9
10
56
48
92
17
38
45
16
39
74
23
27
Moralité
  • Les communications coûtent cher
  • La synchronisation aussi
  • Ce nest pas parce que lon a plus de processeur
    que le calcul sera plus rapide on parle
    defficacité de lalgorithme parallèle
  • En gros plus on a de processeurs plus il faut
    de gros problèmes sinon on fait perdre du temps
    au processeurs (par rapport à une machine
    parallèle avec moins de processeurs)

28
Futurs du parallélisme ?(qui vivra verra)
29
Les grilles de calcul
  • Un  graal 
  • (super)-ordinateur distribuées géographiquement
  • Du calcul à la demande, comme de lélectricité
  • Nombreux projets et réalisations
  • GRID5000
  • Grille du CERN
  • Globus
  • etc.

30
Taxonomie
  • Une machine parallèleplusieurs processeurs
  • Meta-computing plusieurs machines parallèles
  • Calcul pair-à-pair chaque machines est relié à
    une ou plusieurs autres machines (échanges de
    fichiers)
  • Modèle Clients-Serveurs des serveurs
    répartissent les calculs à des clients ceux-ci
    se connectent, calculent, redonnent le résultats
    aux serveurs etc.
  • Global-computing toutes les machines du mondes
    vue comme une seule ENORME machine (le  graal )
  • Mobile-computing un utilisateur veut lancer
    une application un agent informatique se
     balade  sur le net pour trouver une machine
    suffisamment puissante pour exécuter cette
    application puis revient sur la machine de
    lutilisateur pour lui fournir le résultat
  • Hybride différentes types darchitectures
    imbriquées
  • etc.

31
Les problèmes
  • Sécurité
  • applications détruisant les fichiers etc.
  • autorisation sur quelles machines ?
  • sûreté dexécution une application plantant
    la/les machine(s) pour gêner les autres
    applications
  • etc.
  • Performance
  • prédiction des communications
  • répartition des ressources physiques
  • une petite application (calculette) a telle
    besoin dautant de ressource ?
  • sécurité une application faisant des millions
    de calculs inutile pour gêner les autres
  • etc.
  • Portabilité grande hétérogénéité des machines
  • Tolérance aux  pannes  comment faire quand
    une machine se déconnecte (panne de courtant
    etc.) ?
  • La recherche en informatique y travaille (voir
    site LACL par ex.)

32
Applications
  • Analyse de la structure du web
  • Qui parle de qui sur les pages perso ?
  • Que peut-on savoir sur mon entreprise via le web
    et par regroupement dinformation ?
  • Quelles sont les réseaux pirates ?
  • Sécurité informatique
  • ce protocole de commerce est-il vraiment sûr ?
  • Quel effet aurait une panne sur des informations
    critiques ?
  • Le protocole de vote électronique est-il fiable
    ?
  • Un pirate peut-il tous casser dans le réseau de
    mon entreprise ?
  • Et tellement dautres choses
  • Intelligence artificiel (interaction
    homme-machine comme un e-vendeur ou apprentissage
    automatique pour la recherche de pétrole daprès
    des relevés topographiques et géologiques)
  • Calcul formelle, démonstration automatiques,
    assistant de preuves (les sujets de Bac S peuvent
    être entièrement résolue par des machines)
  • etc.

33
Différents modèles de programmation
34
Modèles de programmation
  • Modèles de programmation et modèles dexécution
    dexécution
  • Ordonnancement et placement

35
Modèles de programmation (2)
  • Dexécution, une abstraction de larchitecture
    matérielle
  • mémoire partagée vs mémoire distribuée
  • SIMD/MIMD
  • De programmation, une abstraction de la sources
    du parallélisme données/contrôle

36
Modèles de prog Djikstra/Flynn
  • Parallélisme de contrôle
  • Composition parallèle de processus séquentiels
  • PAR(SEQ) MIMD
  • pardo i 1, n
  • a(i) b(i) c(i)
  • x(i) y(i) z(i)
  • end do
  • Parallélisme de données
  • Composition séquentielle de processus parallèles
  • SEQ(PAR) SIMD
  • forall() i 1, n
  • a(i) b(i) c(i)
  • forall() i 1, n
  • x(i) y(i) z(i)

37
Modèles dexécution
  • Espaces dadressage multiples
  • p processus
  • Communiquent par messagerie
  • Le programmeur ou le compilateur doit définir le
    placement des données et lordonnancement des
    calculs
  • Le placement des données peut définir celui des
    calculs
  • Espaces dadressage unique
  • p threads
  • Communiquent à travers des variables partagées
  • Le programmeur ou le compilateur doit définir le
    placement et lordonnancement des calculs

38
Ordonnancement
  • Programme Graphe de tâches
  • Une tâche est une unité de traitement séquentiel
  • Un arc (T1, T2) correspond à un transfert
    dinformation à la fin de T2 vers le début de T1
  • Un graphe de tâches sans cycle définit un ordre
    partiel
  • T1 ltlt T2 sil existe un chemin de T1 vers T2
  • Ordre total programme séquentiel
  • Ordre partiel programme parallélisable

39
Ordonnancement et modèle de programmation
  • La définition de lordonnancement peut être 
  • Réalisée dans un programme parallèle
  • Extraite automatiquement dune spécification
    plus ou moins contrainte parallélisation
    automatique
  • Lexpression de lordonnancement dans les
    langages parallèles 
  • Par structures de contrôle SEQ(PAR)
  • Par synchronisation PAR(SEQ)
  • Placement 
  • Lordonnancement ne prend pas en compte le
    nombre de processeurs disponibles
  • Le placement replie le parallélisme illimité
    sur les ressources réelles
  • Contrainte minimisation des surcoûts
  • Parallélisation placement
    ordonnancement

40
(No Transcript)
41
Placement statique
  • Off-line, éventuellement paramétré par le nombre
    de processus et le numéro de processus
  • Les temps de calcul doivent être connus 
  • Cas régulier Bloc, cyclique, cyclique (k),
  • Cas irrégulier ad hoc (p. ex. bisection
    récursive)

42
Décalage, distribution bloc
43
Bisection récursive
Les éléments de calcul sont caractérisés par une
donnée nD souvent une position spatiale
Applicable aussi à un maillage
44
Placement et ordonnancement dynamique
  • Motivation
  • La durée des calculs nest pas prévisible
  • La puissance des machines nest pas connue
  • Placement/ordonnancement on-line décidé à
    lexécution
  • Questions 
  • Surcoûts gestion des processus ou des threads,
    des échanges dinformation
  • Robustesse à lirrégularité des temps dexécution

45
Placement et ordonnancement dynamique
  • Centralisé Maître-Esclave
  • Maître 
  • Implémente un algorithme de partitionnement, par
    exemple bloc, avec possibilité de taille variable
    du bloc
  • Taille fixe équivalent à statique
  • Guided self-scheduling chaque esclave prend 1/p
    de ce qui reste
  • Factoring chaque esclave prend 1/P de la moitié
    du batch restant
  • Effectue les opérations globales par exemple
    réduction
  • p esclaves  Exécutent un bloc, et redemandent du
    travail dès que terminé

46
Placement et ordonnancement dynamique
  • Répartition par vol de travail
  • Un processus pousse sur la pile des travaux en
    attente les tâches les plus longues
  • Les processus ou threads inactifs sélectionnent
    un autre processus auquel ils prennent du travail
    au fond de la pile
  • Peut être prouvé optimal pour une large classe
    dapplications
  • Implémentation délicate gestion de verrous en
    espace dadressage unique, protocole en espaces
    dadressages multiples
  • http//supertech.lcs.mit.edu/cilk/

47
Analyse de performances
48
Objectifs
  • On veut résoudre un problème
  • Choix de programmation
  • Plusieurs algorithmes naïfs ou non
  • Puis, pour un algorithme, le programmer
  • MAIS QUOI PARALLELISER ?

49
Objectifs (1)
  • On veut résoudre un problème
  • Choix de programmation
  • Plusieurs algorithmes naïfs ou non
  • Pour un algorithme, choix/style de la
    parallélisation, distribution des données/calculs
  • Paramètres de larchitectures
  • nombre de processeurs et leurs caractéristiques
  • Vitesse
  • Mémoire cache
  • Performances de la mémoire ou du réseau
  • Paramètre de configuration (OS et I/O)

50
Objectifs (2)
  • Définir des indicateurs objectifs qui mesurent le
    gain apporté par le parallélisme
  • Lindicateur pertinent dépend du critère par
    rapport auquel on veut optimiser
  • Extensibilité dune architecture parallèle
    capacité à améliorer la performance en augmentant
    les ressources
  • Extensibilité dun algorithme parallèle
    capacité dun algorithme à utiliser plus de
    ressources
  • Latence ou débit
  • Latence temps dexécution
  • Débit nombre de transactions, de calculs,...
    par unité de temps

51
À finir, donc on prend d'autres slides
Write a Comment
User Comments (0)
About PowerShow.com