Architectures parallèles

Slides:



Advertisements
Présentations similaires
La place accordée à l’expression des salariés sur leur travail et leurs conditions de travail dans l’entreprise Résultats sondage exclusif CSA/ANACT.
Advertisements

Mais vous comprenez qu’il s’agit d’une « tromperie ».
Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Reporting de la Cellule Nationale Droit dOption Situation au 31 décembre 2011.
Licence pro MPCQ : Cours
Présentation de la circonscription Année 2011/2012 Jeudi 24 novembre 2011.
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Les nombres.
Les numéros 70 –
Les numéros
Les identités remarquables
Le, la, les words Possessive Adjectives MINE!!. 2 My in french is mon, ma,mes... Le word/ begins with a vowel: Mon La word: Ma Les word: Mes.
Xavier Mouranche Registre e-MUST Evaluation en Médecine dUrgence des Stratégies Thérapeutiques de lInfarctus du Myocarde.
Introduction à la logique
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Données statistiques sur le droit doption au 31/01 8 février 2012.
Correspondances en Onco-Urologie - Vol. III - n° 3 – juillet-août-septembre VESSIE Daprès James ND et al., N Engl J Med 2012;366:16:
Technologies et pédagogie actives en FGA. Plan de latelier 1.Introduction 2.Les technologies en éducation 3.iPads 4.TNI 5.Ordinateurs portables 6.Téléphones.
Révision (p. 130, texte) Nombres (1-100).
La législation formation, les aides des pouvoirs publics
La méthodologie………………………………………………………….. p3 Les résultats
1 Juin 2010 Sondage auprès des jeunes Marocains résidant en Europe ( France, Espagne, Italie, Belgique, Pays-Bas et Allemagne ) Juin 2010 Réf. : TL251.
Structure(djs)TéléphoneFax ADRA R049,96,03,21 CHLEF027,77,22,66 /77,49, LAGHOUAT029,90,41,08029,90,42,47 OUM EL BOUAGHI032,42,16,26032,42,45,32.
Jack Jedwab Association détudes canadiennes Le 27 septembre 2008 Sondage post-Olympique.
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Présentation générale
Le drapeau canadien comme symbole de fierté nationale : une question de valeurs partagées Jack Jedwab Association détudes canadiennes 28 novembre 2012.
Calcul mental Calcul mental Année scolaire Classe de …
Titre : Implémentation des éléments finis sous Matlab
Les nombres.
Les quartiers Villeray – La Petite-Patrie et les voisinages
Fierté envers les symboles et institutions canadiens Jack Jedwab Association détudes canadiennes 26 novembre 2012.
Mai 2001FRANCOROIII - Challenge Recherche Locale Guidée Par Le Coût Des Contraintes Gavranovic Haris Univerzitet U Sarajevu IMAG, Grenoble.
Conseil Administration AFRAC – 2 décembre Toulouse 1 Fermes de références Palmipèdes à foie gras Synthèse régionale – Midi Pyrénées Exercice
LES NOMBRES PREMIERS ET COMPOSÉS
CLL11 : chlorambucil (CLB) versus CLB + rituximab (R)
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
1.Un rang de données multicolores 2. Deux permutations des n premiers entiers 3. b permutations des k premiers entiers 4. Choix de n points dans [0,1]
Les Monnaies et billets du FRANC Les Monnaies Euro.
Calculs et écritures fractionnaires
Les multiprocesseurs Jusqu’à maintenant, nous avons parlé longuement des microprocesseurs. Nous allons maintenant étudier les multiprocesseurs, comment.
RACINES CARREES Définition Développer avec la distributivité Produit 1
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
La statistique descriptive
Les maths en francais 7ième année.
Les définitions: Les nombres premiers et les nombres composés
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
Jean-Marc Léger Président Léger Marketing Léger Marketing Les élections présidentielles américaines.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Les Nombres 0 – 100 en français.
Résoudre une équation du 1er degré à une inconnue
Aire d’une figure par encadrement
Écart moyen et écart type
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
Les fondements constitutionnels
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Certains droits réservés pour plus d’infos, cliquer sur l’icône.
Nom:____________ Prénom: ___________
LES COURSES SUR PISTE.
Annexe Résultats provinciaux comparés à la moyenne canadienne
EGALITE PROFESSIONNELLE ENTRE LES FEMMES ET LES HOMMES
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
Bienvenue.
Transcription de la présentation:

Architectures parallèles Source: Michael J. Quinn Parallel Programming in C with MPI and openMP

Plan Réseaux d’intercommunication Ordinateurs vectoriels Multiprocesseurs Multi-ordinateurs Taxonomie de Flynn

1. Réseaux d’intercommunication Utilités Connecter les processeurs à la mémoire partagée Connecter les processeurs entre eux 2 modes: Partagé Avec commutateurs (switchs)

Comparaison des deux modes Commutateurs Partagé

Mode partagé Un seul message à la fois Les messages sont diffusés à tous les processeurs via un bus Chaque processeur “écoute” tous les messages L’arbitrage est décentralisé Une collision nécessite la rediffusion du message Limite le nombre de processeurs

Avec commutateurs Permet la communication point-à-point Avantages: Permet l’envoi de plusieurs messages simultanément Permet l’utilisation d’un plus grand nombre de processeurs

Topologies des réseaux d’intercommunication Représentation sous forme de graphe Noeud = processeur ou commutateur Arête = lien de communication Deux types de topologies Directe Indirecte

Topologie directe Un commutateur pour chaque processeur Chaque commutateur est connecté à: 1 processeur Au moins un autre commutateur En général, le nombre de processeurs est identique au nombre de commutateurs

Topologie indirecte Le nombre de commutateurs peut être plus grand que le nombre de processeurs Certains commutateurs ne sont connectés qu’à d’autres commutateurs.

Évaluation d’une topologie Diamètre Distance maximale entre deux noeuds Borne inférieure sur le temps de communication Largeur de coupe Nombre min d’arêtes à enlever pour diviser le graphe en deux composantes connexes de même taille (à 1 neud près). Borne supérieure sur le nombre de messages pouvant être envoyés simultanément. Degré = Nombre d’arêtes adjacentes à un noeud Longueur des arêtes: Une longueur constante permet plus facilement d’augmenter le nombre de processeurs.

Grille 2-D Topologie directe Les commutateurs sont organisés sous la forme d’une grille 2-D Communication permise seulement entre les noeuds voisins Tore: les extrémités sont reliées

Grille 2-D Tore Les cercles représentent des commutateurs et les carré des processeurs.

Évaluation des grilles 2-D Diamètre: (n1/2) Largeur de coupe: (n1/2) Degré: 4 Longueur d’arêtes constante

Arbre binaire Topologie indirecte n = 2d processeurs 2n-1 commutateurs

Évaluation d’un arbre binaire Diamètre: 2 log n Largeur de coupe: 1 Degré: 3 La longueur d’arête n’est pas constante

Hyper-arbre Topologie indirecte Faible diamètre Plus grande largeur de coupe qu’un arbre De face, il apparaît comme un arbre de degré k et profondeur d De côté, il apparaît comme un arbre binaire renversé de hauteur d

Hyper-arbre

Évaluation des hyper-arbre Diamètre: log n Largeur de coupe: n / 2 Degré: 6 Longueur d’arêtes non constante

Réseau butterfly Topologie indirecte n = 2d processeurs connectés à l’aide de n(log n + 1) commutateurs.

Routage sur un réseau butterfly

Évaluation Diamètre: log n Largeur de coupe: n / 2 Degré: 4 Longueur d’arêtes non constante

Hypercube Topologie directe Le nombre de noeuds est un puissance de 2 Adresses: 0, 1, …, 2k-1 Le noeud i est connecté au noeud k si et seulement si leurs adresses ne diffèrent que d’un seul bit.

Réseau hypercube de 16 processeurs

Évaluation Diamètre: log n Largeur de coupe: n / 2 Degré: log n La longueur des arêtes n’est pas constante

Réseau shuffle-exchange Topologie directe Le nombre de noeuds est une puissance de 2 Adresses: 0, 1, …, 2k-1 Deux arcs sortent de chaque noeud i (i,k): où k est la rotation à gauche des bits de i (i,j): où i et j ne diffèrent qu’au bit le moins significatif

Illustration du shuffle-exchange 1 2 3 4 5 6 7

Adressage du shuffle-exchange

Évaluation du shuffle-exchange Diamètre: 2log n - 1 Largeur de coupe:  n / log n Degré: 2 Longueur d’arêtes non constante

Comparaison des réseaux Tous ont un diamètre logarithmique sauf la grille 2-D Hyper-arbre, butterfly et hypercube ont une largeur de coupe n / 2 Tous ont un degré constant sauf l’hypercube Seul la grille 2-D a une longueur d’arête constante.

2. Ordinateurs vectoriels Inclut des opérations sur les vecteurs en plus des opérations sur les scalaires Deux types d’implémentations: Pipeline: Les vecteur sont déplacés de la mémoire vers le processeurs en un flux de données traités en pipeline- CRAY-I, II, Cyber 205 Réseau de processeurs: Un ordinateur standard contient plusieurs processeurs identiques et synchronisés (ex. GPU)

Réseau de processeurs

Réseau de processeurs Ordinateur frontal Réseau de processeurs Programme Données manipulées séquentiellement Réseau de processeurs Mémoires locales Données manipulées en parallèle L’ordinateur frontal diffuse les instructions aux processeurs du réseau Tous les processeurs du réseau exécutent la même instruction

Performance Quantité de travail par unité de temps Ex. Nombre d’opérations par seconde La performance dépend de l’utilisation faite des processeurs. La performance est au maximum lorsque les processeurs sont utilisés à 100%

Exemple 1 1024 processeurs Chacun additionne un couple d’entiers en 1 sec On veut additionner deux vecteurs de1024-elements (un par processeur)

Exemple 2 512 processeurs Chacun peut additionner deux entiers en 1 sec On additionne deux vecteurs de 600 éléments.

Activer et désactiver un processeur Si tous les processeurs exécute la même instruction simultanément, comment traiter les instruction conditionnelles??? Chaque processeur possède un bit de masquage lui permettant de ne pas exécuter la prochaine instruction.

if (T[i]!=0) then T[i]=1 else T[i]=-1

if (T[i]!=0) then T[i]=1 else T[i]=-1

if (T[i]!=0) then T[i]=1 else T[i]=-1

Désavantages des ordinateurs vectoriels. N’exploite que le parallélisme de données La performance décroit en présence d’instructions conditionnelles S’adapte mal à la présence de plusieurs usagers Nécessite une bande passante très grande Le rapport performance/coût n’est pas aussi bon que celui des processeurs standards

3. Multiprocesseurs Plusieurs processeurs utilisant une mémoire commune Même espace d’adressage Évitent trois problèmes des ordinateurs vectoriels: Peuvent être construits avec des processeurs standards Supportent plusieurs usagers Aucun problème avec les instructions conditionelles

Multiprocesseurs Deux types de multiprocesseurs: Mémoire centralisées Mémoire distribuées

Multiprocesseurs centralisés Extension directe des monoprocesseurs Plusieurs processeurs conectés à un même bus Tous les processeurs partagent une mémoire commune Le temps d’accès à la mémoire est identique pour tous les processeurs Uniform memory access (UMA) Symmetrical multiprocessor (SMP) Chaque processeur possède sa propre mémoire cache

Multiprocesseurs centralisés

Données privées et partagées Données privées: Accessible à un seul processeur Données partagées: Accessible à tous les processeurs La communication entre les processeurs se fait à l’aide des données partagées.

Problèmes liés aux variables partagées Cohérence des caches La présence de caches réduit les problèmes de bande passante Comment s’assurer que différents processeurs possèdent la même valeur pour une variable partagée? Synchronisation Exclusion mutuelle Barrière

Cohérence des caches Cache CPU A CPU B Memory X 7

Cohérence des caches CPU A CPU B Memory X 7 7

Cohérence des caches CPU A CPU B Memory X 7 7 7

Cohérence des caches CPU A CPU B Memory X 2 2 7

Protocole d’invalidation en écriture CPU A CPU B X 7 Chaque cache possède un moniteur de bus 7 7

Protocole d’invalidation en écriture CPU A CPU B X 7 Intention de modifier X 7 7

Protocole d’invalidation en écriture CPU A CPU B X 7 Invalidation de X dans le cache de A 7

Protocole d’invalidation en écriture CPU A CPU B X 2 2

Multiprocesseurs distribués La mémoire est distribuée entre les processeurs Diminue la bande passante ainsi que le temps moyen d’accès à la mémoire. Permet d’utiliser un plus grand nombre de processeurs Non-uniform memory access (NUMA)

Multiprocesseurs distribués

Cohérence de la mémoire cache Implémentation plus difficile que pour les multiprocesseurs à mémoire partagées. Pas de bus unique à monitorer Méthode la plus utilisée: protocole à répertoire (Directory-based protocol)

Protocole à répertoire Un répertoire contient l’information concernant les blocs de mémoire pouvant être mis en cache Le répertoire est distribué Une entrée dans le répertoire pour chaque bloc de mémoire Chaque entrée possède: Status de partage Liste des processeurs possédant une copie du bloc

Status de partage Pas en cache Aucun processeur n’a mis le bloc en cache Partagé Dans le cache d’un ou plusieurs processeurs En lecture seulement Exclusif Dans le cache d’un seule processeur Le bloc a été modifié La copie en mémoire n’est plus valide

Protocole avec répertoire Interconnection Network Directory Local Memory Cache CPU 0 CPU 1 CPU 2

Protocole avec répertoire Interconnection Network CPU 0 CPU 1 CPU 2 Vecteur de bits X U 0 0 0 Directories X 7 Memories Caches

Interconnection Network Processeur 0 lit X Interconnection Network Faute de lecture CPU 0 CPU 1 CPU 2 X U 0 0 0 Directories X 7 Memories Caches

Interconnection Network Processeur 0 lit X Interconnection Network CPU 0 CPU 1 CPU 2 X S 1 0 0 Directories X 7 Memories X 7 Caches

Interconnection Network Processeur 1 lit X Interconnection Network CPU 0 CPU 1 Faute de lecture CPU 2 X S 1 0 0 Directories 7 X Memories Caches 7 X

Interconnection Network Processeur 1 lit X Interconnection Network CPU 0 CPU 1 CPU 2 X S 1 1 0 Directories 7 X Memories 7 X Caches 7 X

Interconnection Network Processeur 2 lit X Interconnection Network CPU 0 CPU 1 CPU 2 X S 1 1 0 Directories 7 X Memories 7 X Caches 7 X

Interconnection Network Processeur 2 lit X Interconnection Network CPU 0 CPU 1 CPU 2 X S 1 1 1 Directories 7 X Memories 7 X Caches 7 X 7 X

Processeur 0 écrit 6 dans X Interconnection Network CPU 0 Faute d’écriture CPU 1 CPU 2 X S 1 1 1 Directories 7 X Memories 7 X Caches 7 X 7 X

Processeur 0 écrit 6 dans X Interconnection Network CPU 0 CPU 1 CPU 2 X E 1 0 0 Directories 7 X Memories Invalidation Invalidation Caches 6 X

Interconnection Network Processeur 1 lit X Interconnection Network CPU 0 CPU 1 Faute de lecture CPU 2 X E 1 0 0 Directories 7 X Memories Caches 6 X

Interconnection Network Processeur 1 lit X Interconnection Network CPU 0 Changer pour partage CPU 1 CPU 2 X E 1 0 0 Directories 7 X Memories Caches 6 X

Interconnection Network Processeur 1 lit X Interconnection Network CPU 0 CPU 1 CPU 2 X E 1 0 0 Directories 6 X Memories Caches 6 X

Interconnection Network Processeur 1 lit X Interconnection Network CPU 0 CPU 1 CPU 2 X S 1 1 0 Directories 6 X Memories Caches 6 X 6 X

Interconnection Network Processeur 2 met 5 dans X Interconnection Network CPU 0 CPU 1 CPU 2 X S 1 1 0 Directories 6 X Memories Faute d’écriture Caches 6 X 6 X

Interconnection Network Processeur 2 met 5 dans X Interconnection Network CPU 0 Invalidation CPU 1 CPU 2 X S 1 1 0 Directories 6 X Memories Caches 6 X 6 X

Interconnection Network Processeur 2 met 5 dans X Interconnection Network CPU 0 CPU 1 CPU 2 X E 0 0 1 Directories 6 X Memories X 5 Caches

Interconnection Network Processeur 0 met 4 dans X Interconnection Network Faute d’écriture CPU 0 CPU 1 CPU 2 X E 0 0 1 Directories 6 X Memories 5 X Caches

Interconnection Network Processeur 0 met 4 dans X Interconnection Network CPU 0 CPU 1 CPU 2 X E 0 0 1 Directories Changement de processeur 6 X Memories 5 X Caches

Interconnection Network Processeur 0 met 4 dans X Interconnection Network CPU 0 CPU 1 CPU 2 X E 0 0 1 Directories 5 X Memories 5 X Caches

Interconnection Network Processeur 0 met 4 dans X Interconnection Network CPU 0 CPU 1 CPU 2 X E 1 0 0 Directories 5 X Memories Caches

Interconnection Network Processeur 0 met 4 dans X Interconnection Network CPU 0 CPU 1 CPU 2 X E 1 0 0 Directories 5 X Memories Caches 5 X

Interconnection Network Processeur 0 met 4 dans X Interconnection Network CPU 0 CPU 1 CPU 2 X E 1 0 0 Directories 5 X Memories Caches X 4

Processeur 0 libère X (flush) Interconnection Network CPU 0 Mise à jour CPU 1 CPU 2 X E 1 0 0 Directories 4 X 5 X Memories Caches 4 X

Processeur 0 libère X (flush) Interconnection Network CPU 0 CPU 1 CPU 2 X U 0 0 0 Directories 4 X Memories Caches

4. Multi-ordinateurs Plusieurs ordinateurs ayant chacun sa propre mémoire Chaque ordinateur possède son propre espace d’adressage Les ordinateurs interagissent entre eux par l’envoie de messages Peut facilement être construit à partir d’ordinateurs conventionels et un réseau local.

Multi-ordinateurs asymétriques

Avantages Les ordinateurs du réseaux sont dédiés au calcul parallèle et ne nécessite qu’un système d’exploitation simple Deux types de systèmes d’exploitations: Ordinateur frontal Ordinateurs du réseaux Système d’exploitation des ordinateur du réseaux: sans mémoire virtuel sans entrée/sortie facile à comprendre.

Désavantages Tout le système dépend de l’ordinateur frontal L’existence d’un unique ordinateur frontal limite le nombre d’ordinateurs Déboguage plus difficile Les ordinateurs du réseau ne peuvent pas faire d’E/S Chaque application nécessite le développement de deux types de programes (frontal et réseau)

Multi-ordinateurs symétriques

Avantages Élimine le problème de goulot d’étranglement causé par l’existence d’un ordinateur frontal unique Déboguage plus facile Chaque ordinateur exécute le même programme Lorsqu’un seul ordinateur doit exécuter une opération, cela peut facilement être déterminé par une instruction conditionelle.

Désavantages Il est plus difficile de maintenir l’illusion de travailler sur une seule machine lorsqu’on peut se connecter sur n’importe quel ordinateur possédant son propre nom. Difficulté de balancer le travail entre les ordinateurs Difficile d’obtenir une bonne performance losrqu’il y a plusieurs processus en concurrence pour l’utilisation des processeurs Ex. La mémoire cache sert les processeurs et non pas les processus.

Quel est le meilleur modèle? L’utilisation d’un système d’exploitation unique et complet facilitant le déboguage (e.g. Linux) plaide en faveur des multi-orninateurs symétriques Les performances d’un processeurs dépendent beaucoup de l’efficacité de sa mémoire cache. Cette situation est favorisé lorsqu’il n’y a qu’un seul processus par processeur Cela plaide en faveur des multi-ordinateur asymétrique

Cluster maison Ordinateurs regroupés Dédié à l’exécution de programmes parallèles Sans clavier ni écran Systèmes d’exploitation identiques Images disque logiques identiques

Réseau de station de travail Ordinateur dispersés La priorité est donné à l’usagé qui utilise le clavier Les tâches parallèles sont exécutées en arrière plan Différents systèmes d’exploitation Différentes images disque

5. Taxonomie de Flynn Flux d’instructions Flux de données Simple vs. multiple Quatre combinaisons SISD SIMD MISD MIMD

SISD Single Instruction, Single Data Système monoprocesseur Note: On ne compte pas les co- processeurs Calcul en points flottant Carte graphique I/O Exemple: PC

SIMD Single Instruction, Multiple Data Ex. Réseaux de processeurs (e.g., Connection Machine, nCube, iPSC, etc.)

MISD Multiple Instruction, Single Data Architecture pipeline Grilles systoliques Ordinateur tolérant aux fautes Controleur de vol de la navette spatiale

MIMD Multiple Instruction, Multiple Data Multiprocesseurs Multi-ordinateurs