A : 2 - Le2i

publicité
Parallel computation models
Taxonomy of network architecture:
•
•
•
SIMD
MIMD
Single Program Multiple Data (SPMD)
Communication Models
•
•
Shared variable communication
 Shared Memory: PRAM Mode
Message passing communication
Systolic Array: Regularly connected, special hardware
•
for specific problem. Input is pipelined one by one and synchronized with clock.
Interconnection networks
•
•
Bus, crossbar, tree, Multistage networks,
Hypercube, DeBruin's Graph, Cube Connected Cycles
Convergence:
•
Logically shared memory, physically interconnection network
Modèle de Graphe (DAG)
Modèle PRAM
Mémoire Globale (Shared – Memory)
P1
P2
Pp
Une extension simple du modèle classique RAM (Random Access Memory)
pour prendre en compte la multiplicité de processeurs
Propriétés
• p Processeurs ayant chacun une mémoire local (non accessible aux
processeurs)
• Une Mémoire Globale (Shared-Memory) partagée par tous les processeurs
• Chaque processeur a un indexe (une identité) i (0  i  p-1 qui peut être utilisé
dans les comparaisons logiques ou les calculs d'adresses
Modèle PRAM
Deux modes d'opération du modèle PRAM :
Synchrone
• Les processeurs évoluent de manière synchronisée sous le contrôle d'une
horloge commune. A chaque étape (unité de temps), les processeurs actifs
exécutent la même instruction sur des données (déterminées selon les indexes
des processeurs)
FA chaque étape, certains processeurs sont inactifs
FCe mode est adapté aux architecture de type SIMD, MIMD
Asynchrone
• Chaque processeur évolue sous le contrôle d'une horloge locale. Le
programmeur doit inclure des points de synchronisation quand nécessaire
pour coordonner les activités des processeurs.
FPlutôt adapté aux architectures MIMD
Modèle PRAM
Exemple d'opération en MODE SYNCHRONE
On exécute en mode synchrone sur une machine parallèle à 4 processeurs,
l'instruction suivante :
Algorithme : Processeur i
Input : (1) A, B (2) i, identité du processeur
Output : (1) C
Begin
If ( B==0) C = A
Else
C = A/B
End
Modèle PRAM
Initial
Processeur 0
Processeur 1
Processeur 2
Processeur 3
A:5
B:0
C:0
A:4
B:2
C:0
A:2
B:1
C:0
A:7
B:0
C:0
Processeur 0
Processeur 1
Processeur 2
Processeur 3
A:5
B:0
C : 5 (Actif, B=0)
A:4
A:2
B:2
B:1
C : 0 (Inactif, B0) C : 0 (Inactif, B0)
Etape 1
A:7
B:0
C : 7 (Actif, B=0)
Etape 2
Processeur 0
Processeur 1
Processeur 2
Processeur 3
A:5
B:0
C : 5 (Inactif, B=0)
A:4
B:2
C : 2 (Actif, B0)
A:2
B:1
C : 2 (Actif, B0)
A:7
B:0
C : 7 (Inactif, B=0)
Modèle PRAM
Quatre variantes du Modèle PRAM, selon le type d'accès simultané à une
même adresse mémoire ou un bloc de mémoire
EREW : Exclusive - Read, Exclusive -Write
• Les accès simultanés ( en lecture ou écriture) à une adresse mémoires sont
interdits
CREW : Concurrent – Read, Exclusive – Write
• Accès simultanés autorisés en lecture
• Accès exclusif en écriture (une seule écriture à la fois à la même adresse)
CRCW : Concurrent – Read, Concurrent – Write
• Accès simultanés en lecture
• Accès simultanés en écriture
F Problèmes d'écritures concurrentes
F Qu'est ce qu'on écrit dans une adresse mémoire en cas d'écritures
concurrentes?
ERCW : Exclusive Read – Concurrent Write
Modèle PRAM
Résolution des problèmes d'écritures concurrentes dans le modèle
CRCW. Soit un ensemble de m processeurs souhaitant écrire une valeur
dans une variable X, on peut distinguer 4 solutions :
• Common CRCW : les écritures concurrentes sont autorisées si les valeurs
écrites par les m processeurs sont égales.
• SUM CRCW : la somme des valeurs est écrite dans X
• Random CRCW : un processeur est choisi au hasard et autorisé à eécrire sa
valeur dans X. Les autres écritures échouent (terminent sans écrire)
• Priority CRCW : Une priorité est associée à chaque processeur. Le processeur
de plus forte priorité est autorisé à écrire X. Les autres écritures échouent
(terminent sans écrire)
Exemple : Soit P1 (50  X) , P2 (60  X), P3 (70  X) demandant des
écritures simultanées sur une variable X
• Common CRCW ou ERCW : échec
• SUM CRCW ou ERCW : (180  X)
• Random CRCW ou ERCW (  X), {50, 60, 70} …..
Modèle PRAM
Le modèle PRAM nécessite des instructions spéciales pour lire et écrire
en mémoire globale
• Global read (X, x)
• Global write (Y, y)
Modèle PRAM
Exemple de Calucul (1)
Produit Matrice Vecteur Y = AX
• A est une matrice n x n, X un vecteur de taille n
• p processeurs opérant en mode asynchrone, pn et r = n/p
Principe de la solution
• Partitionner les données en blocs. Chaque processeur calcule des résultats
partiels sur une partition
• Combiner les résultats partiels
Comment partitionner le calcul de Y = AX? Deux solutions :
• Solution 1 : La matrice A est découpée horizontalement en p blocs Ai (sous
matrices) de r lignes
• Solution 2 : La matrice A est découpée verticalement en p blocs Ai (sous
matrices de r colonnes) et le vecteur X est découpé en blocs de r lignes
Modèle PRAM
Exemple de Calucul (1)
Solution 1 : Y = AX
Partition de A
A=
A1
A2
….
Ap
=
A11, A12, …, A1n
A21, A22, …, A2n
….
An1, An2,
, Ann
r lignes
r lignes
Chaque Ai est une matrice r x n
Chaque processus Pi :
• lit de la mémoire globale les Ai et X
• calcule le produit Z = Ai X
• écrit les valeurs de Z sur les composants correspondants de Y en mémoire
globale
Modèle PRAM
Exemple de Calucul (1)
Solution 1 : Y = AX
Algorithme exécuté par le processeur Pi
Input
Output
Begin
End
(Faire en TD)
Modèle PRAM
Exemple de Calucul (1)
Solution 1 : Y = AX
Analyse de la complexité
• Les p processeurs lisent la valeur de X en même temps
• Chaque processeur écrit dans une partie spécifique de Y, pas d'écritures
concurrentes (Même si plusieurs écritures simultanées dans différentes sous
blocs de Y)
• O(n2/p) nombres sont transférés de la mémoire globale vers chaque processeur
• O(n2/p) calculs sont nécessaires pour déterminer le produit partiel Z = Ai X
F Exécution sur une architecture CREW
F Pas de synchronisation des processeurs
Modèle PRAM
Exemple de Calucul (1)
Solution 2 : Y = AX
Découper A verticalement en blocs de r colonnes
A = ( A1, A2, …, Ap) , Ai est une sous matrice n x r
Découper X horizontalement en sous vecteurs de r lignes
X est découpé en X1, X2, … Xp
Le processeur Pi lit les blocs Ai, Xi et calcule le produit
Zi = Ai Xi
r colonnes
Y= AX =
A1,A2, …Ap
X=
r colonnes
A11, A12, …, A1n
A21, A22, …, A2n
….
An1, An2,
, Ann
Xp
X1
x1,x2,…,
xn
Modèle PRAM
Exemple de Calucul (1)
Solution 2 : Y = AX
Solution en deux phases :
Phase 1
Les p processeurs calculent les résultats partiels
Z1 =A1X1, Z2 = A2 X2,
…, Zp = ApXp
Phase 2 : Calculer
Y=AX = Z1 + Z2 + …, Zp
F Nécessite une synchronisation en fin de phase 1. Toutes les valeurs Zi
doivent être disponible avant le début de la phase 2
Modèle PRAM
Exemple de Calucul (1)
Solution 2 : Y = AX
Algorithme
(Faire en TD)
Modèle PRAM
Exemple de Calucul (2)
Somme de n entiers sur une machine PRAM
Soit A un tableau de n éléments qui stocke les n entiers en mémoire
globale. Construire un arbre binaire pour calculer la somme. (Voir cours,
ceci a déjà été traité en classe)
Modèle PRAM
Exemple de Calucul (3)
Produit de deux matrices C[Cij] = A[Aij] B[Bij]
L'élément Cij est calculé par l'expression
Cij = l Ail * Blj
Si on dispose de n3 processeurs dénommés par Pi,j,l (1 i,j,l n)
Chaque valeur est calculé par l'ensemble de processeurs Pi,j,l (1 l n) en
O(logn) unités de temps.
Modèle PRAM
Exemple de Calucul (3)
Produit de deux matrices C[Cij] = A[Aij] B[Bij]
P0,0,3
P0,0,2
P0,0,3
C0,0,3 = A00 * B03 + A01 * B13 + A02 * B23 + A03 * B33
C0,0,3
C0,0,2
C00 = 
P0,0,1
P0,0,0
C0,0,1
C0,0,0
C0,0,0 C0,1,0
C0,2,0
C0,3,0
Modèle PRAM
Exemple de Calucul (3)
Produit de deux matrices C[Cij] = A[Aij] B[Bij]
Algorithme exécuté par les processeurs Pi,j,l
Input : (1) les matrices n x n A et B en mémoire globale (n = 2k)
(2) Les variables locales (i,j,l) indexe du processeur
Output : Le produit C = AB
Begin
1. calculer C'(i,j,l) = A(i,l) * B(l,j)
2. for h = 1 to log n do
if ( l  n/ 2h) then C'(i,j,l) = C'(i,j,2l - 1 ) + C'(i,j,2l)
3. if (l=1) then C(i,j) = C'(i,j,1)
End
F Lectures concurrentes de certains éléments
• Par exemple les processeurs Pi,1,l, Pi,2,l, …, Pi,n,l lisent l'élément A(i,l) en même
temps
• Nécessité d'une architecture CREW
Modèle Réseau
Modèle Réseau
Prend en compte l'architecture de communication sousjacente
Un réseau peut être vu comme un graphe G=(N,E) dans
lequel :
• Chaque nœud i N est un processeur
• Chaque arc (i,j)E représente une communication entre les
processeurs i et j
(lien direct bidirectionnel entre deux processeurs)
Propriétés
• Absence de mémoire partagée
• Opération peut être Synchrone ou Asynchrone
• Communication et synchronisation sont faites par échanges de
Modèle Réseau
Réseau d'interconnexion
Objectifs
• Relier les processeurs entre eux
• Relier les processeurs à la mémoire commune globale
Caractéristiques d'un réseau
• Latence
 Temps de transmission d'un message de taille nulle dans le réseau
• Bande passante
 Quantité d'information acheminé par unité de temps
Modèle Réseau
Réseau d'interconnexion
Deux types de réseaux d'interconnexion
• Réseaux Dynamiques
 Réseau dont la topologie peut varier au cours de l'exécution d'un
programme. Les liens entre les éléments sont établis dynamiquement.
 Il est utilisé dans les architectures à mémoire partagée
P1
Pn
P2
Réseau statique
M1
M2
Mk
Modèle Réseau
Réseau d'interconnexion
Deux types de réseaux d'interconnexion (…)
• Réseaux Statiques
 Réseau dont la topologie est fixe. Elle est définie par le constructeur
de la machine multiprocesseurs.
 Il est utilisé dans les architectures à mémoire distribuée
ML1
ML2
MLn
P1
P2
Pn
Réseau statique
Modèle Réseau
Réseaux dynamiques
Trois grandes classes de réseaux dynamiques
• BUS
• CROSSBAR
• Réseaux Multi-étages
Modèle Réseau
Réseaux dynamiques
BUS
• Permet de relier un ensemble d'éléments (processeurs, mémoires,
autres) entre eux
P1
P2
Pn
BUS
M1
M2
Mk
• Mise en œuvre facile et simple
• L'accès au bus par un éléments bloque tout autre accès
• Problèmes de conflits d'accès (Contention)
Modèle Réseau
CROSSBAR
Réseaux dynamiques
Switch
Processeurs
Mémoires
Modèle Réseau
Réseaux dynamiques
Réseaux Multi-étages
Processeurs
Mémoires
0
0
1
1
.
.
.
P-1
Etage1
Etage2
……
Etage n
.
.
.
P-1
Modèle Réseau
Réseaux statiques
Types de réseaux statiques
• Réseaux (grilles totalement connectés)
• Réseaux en étoile
• Réseaux linéaires
• Anneaux
• Grilles (Mesh)
• Arborescences
• Hypercubes
Modèle Réseau
Réseaux statiques
Réseaux complètement connectés
• Chaque sommet (processeur) est directement liés aux (p-1) autres
sommets
• Exemple d'un réseau complètement connecté de 10 processeurs
P0
P9
P1
P8
P2
P7
P3
P6
P4
P5
Modèle Réseau
Réseaux statiques
Réseaux Etoile
• Chaque processeur Pi ( i0) est connecté à un processeur central P0
P1
P8
P2
P0
P3
P7
P4
P6
P5
Modèle Réseau
Réseaux statiques
Réseaux Linéaire
• Composé de p processeurs P0, P2, …, Pp-1 connectés en ligne, c'est-à-
dire processeur Pi est connecté Pi+1 ( i=0, … , p-2)
Exemple : Un réseau linéaire de 6 processeurs
P0
P1
P2
P3
P4
P5
Modèle Réseau
Réseaux statiques
Réseaux en Anneau
• Réseau linéaire dans lequel le premier processeur (P0) est relié au
dernier processeur (Pp-1)
Exemple : Un anneau de 6 processeurs
P0
P1
P2
P3
P4
P5
Modèle Réseau
Réseaux statiques
Une grille p processeurs est une extension des réseaux
linéaires à 2 ou plusieurs dimensions.
Dans une grille à 2 dimensions, le processeur Pij est relié aux
processeurs Pi+1,j,Pi-1,j, Pi,j+1, Pi,j-1 (si ces valeurs
existent)
P0
P1
P2
P3
Exemple : Une grille 4X4 à 16 processeurs
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
P14
P15
Modèle Réseau
Réseaux statiques
TORE (Grille avec retour) est une grille dans laquelle les
lignes et les colonnes sont des anneaux.
• Exemple : Un tore nXn de 16 processeurs
P0
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
P14
P15
Modèle Réseau
Réseaux statiques
Arborescence : Il existe un seul chemin entre une paire de
processeurs.
• Dans une arborescence statique les nœuds sont des processeurs. Les
arcs représentent des liens statiques (fixes) entre les processeurs
Exemple : Une arborescence à 15 processeurs
Modèle Réseau
Réseaux statiques
Arborescence
• Dans une arborescence dynamique, comprend deux types d'éléments
 les feuilles sont des processeurs
 les nœuds internes sont des éléments de commutation (switches)
Exemple : Une arborescence composée de 8 processeurs et 7
commutateurs
Circuit de commutation
Processeur
Modèle Réseau
Réseaux statiques
Arborescence : Pour améliorer la performance d'une
arborescence dynamique, les capacités de communication des
liens sont augmentées (ou doublées) à chaque niveau (en
partant des feuilles).
Exemple : Une arborescence (Fat Tree) composée de 8 processeurs et 7
commutateurs
Modèle Réseau
Réseaux statiques
HYPERCUBE
Défini récursivement par :
• Hn en connectant les nœuds (équivalents) de deux hypercubes Hn-
1
• and byH
Le préfixe 0 est associé au premier hypercube Hn-1 et 1 à
n
l'autre.
Hn-1
Hn-1
Modèle Réseau
Réseaux statiques
HYPERCUBE
Hypercube de dimension d
100
00
0
0
01
000
110
1
001
010
10
d=0
d=1
0100
(0)
0000
0110
0010
d=3
1100
0101
1000
1010
d=4
1101
1001
1110
0111
0011
111
011
11
d=2
0001
101
(1)
1111
1011
Modèle Réseau
Réseaux statiques
Propriétés des hypercubes
• Deux processeurs i et j sont directement connectés si et seulement les
représentations binaires de (leur labels) i et j diffère d'une seule
position
Exemple : dans un hypercube de dimension 3 :
 le processeur P0 (000) est directement connecté aux processeurs
P1 (001), P2 (010), P4 (100)
 Le processeur P2 (010) est directement connecté aux processeurs
P3 (011), P6 (110), P0 (000)
• Chaque processeur d'un hypercube de dimension d est directement
connecté à d processeurs
• La distance de Hamming de deux processeurs s et t d'un hypercube
est le nombre de positions dans lesquelles les représentations de s et t
diffèrent.
 Exemple : Soit s = 0011 et t = 0110, la distance de Hamming des
Modèle Réseau
Réseaux statiques
Propriétés des hypercubes (…)
• La distance de est égal au nombre de "1" dans l'expression :
s  t (ou exclusif de s et t)
Exemple : 0011  0110 = 0101 ===> Hamming(P0011, P0110) = 2
• La distance de Hamming de deux processeurs Ps et Pt correspond à la
longueur du chemin le plus court entre Ps et Pt
Modèle Réseau
Critères de Performance des Réseaux statiques
Diamètre d'un réseau
• La distance entre deux processeurs d'un réseau est la longueur
(nombre de liens) du plus court chemins entre ces deux processeurs
• Distance maximale entre deux processeurs du réseau. La distance a
un impact sur le coût de communication d'un réseau
F Réseaux avec petit diamètre sont plus performant en communication
Connectivité
• Définit la multiplicité de chemins entre deux nœuds (processeurs)
• Connectivité (arc connectivité) est défini comme le nombre minimum
d'arcs qu'on peut supprimer pour diviser un réseau en deux sousréseaux déconnectés.
Bisection
• La bisection d'un réseau est le minimum de liens qu'il faut supprimer
pour partitionner le réseaux en deux sous-réseaux de taille quasi égale
Coût d'un réseau
Modèle Réseau
Critères de Performance des Réseaux statiques
Exemples de mesures de performance de réseaux de p
processeurs
Connectivit
Réseau
Diamètre
Bissection
Coût
é
1
(p2)/4
p-1
p(p-1)/2
2
1
1
p-1
Linéaire
P-1
1
1
p-1
Anneau
 p/2 
2
2
p
Grille 2D
2 (p1/2– 1)
p1/2
2
2(p - p1/2)
TORE 2D
2 (p1/2)/2 
2(p1/2)
4
2p
Hypercube
logp
p/2
logp
(plogp)/2
Complètement
connecté
Etoile
ModèleMécanismes
Réseau
et protocoloes de routage des réseaux
statiques
Routage
• Mécanisme logiciel ou matériel détermine le chemin emprunté par un
message pour aller d'un processeur source à un processeur cible.
• Le routage effectue :
 choisit un chemin pour le transfert de message
 gère les conflits
 assure le bon ordre des éléments du message
Catégories de routage
• Routage déterministe
• Routage non-déterministe
Modèle Réseau
Routage déterministe
Associe un chemin unique pour transférer un message d'une
source vers une destination.
Le choix ne dépend pas des informations sur l'état du réseau.
F Avantage : routage optimal. Choisit souvent le chemin le plus court
F Peut résulter en une répartition non uniforme de charges sur les
processeurs du réseau
F Peut générer une répartition non uniforme du traffic (charge) sur
les différents éléments du réseau
Modèle Réseau
Routage non déterministe (ou Adaptative)
Utilise des informations sur l'état du réseau (congestion,
charge) pour déterminer un chemin entre une source et une
destination
Détermine la présence de congestion (ou de bouchon) du
réseau et essaie de les éviter
Plusieurs catégories de routage non déterministe
•Glouton : dès qu'un chemin qui rapproche de la destination est libéré,
il est choisi
•Aléatoire : on choisit aléatoirement le prochain nœud sur le chemin
vers la destination
 Aboutit à une bonne répartition des charge dans le réseau
 Permet une bonne résistance aux pannes
Modèle Réseau
Exemples de routage
Routage X-Y dans une grille 2D
•Etablit un ordre de parcours sur les dimensions de la grille et envoie le
message suivant un ordre croissant des dimensions (e.g. X puis Y)
•Routage X-Y
 Pour acheminer aller du processeur Ps vers le processeur P, on
transmet le message suivant la dimension X jusqu'à la colonne de Pd,
puis suivant la dimension Y
(Y)
Ps
Pd
(X)
Modèle Réseau
Exemples de routage (…)
Routage E-Cube dans Hypercube
Deux proceurs Ps et Pd d'un hypercube de dimension
Les représentation binaires de s et d ont d bits
La distance minimum entre Ps et Pd est égale de "1" dans s d
•Routage E-Cube
 Ps calcule le "Ou exclusif" s d et envoie le message suivant la
dimension k, où k la position du premier bit de poids faible différent
de 0
 Chaque nœud ou processeur intermédiare Pi qui recoit le message
suit la même procédure, c'est-à-dire Pi clacule i d et envoie suivant
une dimension correspond au premier bit de poids faible différent de
0
 Répéter jusqu'à ce le message arrive au processeur Pd
Modèle Réseau
Exemples de routage (…)
Routage E-Cube dans Hypercube (…)
Exemple : Message de Ps
Pd
100
101
110
Pd
111
000
001
Ps
Pd
100
000
Ps
100
101
110
000
001
Ps : 010  101 = 111
Envoi suivant
011
Pd
101
110
111
000
001
Ps 010
011
100
101
110
111
010
Pd
010
011
P011 : 011  101 = 110
Envoi suivant
111
001
Ps 010
011
P001 : 001  101 = 100
Envoi suivant
Modèle Réseau
Exemples de routage (…)
Routage E-Cube dans Hypercube (…)
Routage suivant les bits de poids fort
Exemple : Message de Ps
Ps : 010  101 = 111
Envoi suivant à 110
Pd
P110 : 110  101 = 011
P100 : 100  101 = 001
Envoi suivant à 101
Envoi suivant à 100
(3)
(2)
(1)
Pd
100
101
110
111
000
001
Ps
010
011
Modèle Réseau
Stratégie de routage
La stratégie de routage définit comment :
• réserver le chemin de la source à la destination
• acheminer le message de la source à la destination
Principales stratégies de routage
• La commutation de circuit (circuit switching) réserve un chemin
complet ou circuit entre la source et la destination en :
 envoyant une entête de réservation
 attendant ensuite une confirmation de la réservation
 envoyant enfin le message à travers le circuit réservé
Source
Destination
Modèle Réseau
Stratégie de routage
Principales stratégies de routage
• La commutation de message (store and forward) réserve un lien au
nœud intermédiaire suivant, ensuite on :
 envoie le message complet au nœud suivant qui stocke le message
 libère le chemin
 on recommence de nœud en nœud jusqu'à ce que le message arrive à
la destinationSource
Destination
F Avantage : Réserve un lien à la fois, moins de blocage
FInconvénient : Copies intermédiaires du message, problème de buffer sur
les noeuds intermédiaires
Modèle Réseau
Stratégie de routage
Principales stratégies de routage
• La commutation de paquets (packet switching) découpe le message en
paquets de taille fixe possédant une entête. On envoie le message en :
 ajoutant une entête à chaque paquet
 acheminant chaque paquet par un chemin ( qui peut être différent)
 reconstituant le message à l'arrivée (les paquets pouvant arriver dans
Paquets
un ordre quelconque)
Source
Destination
F Avantage : Meilleure répartition de flux dans le réseau
Evite le blocage du message
FInconvénient : Surplus de communication du aux nombreuses entêtes
Modèle Réseau
Stratégie de routage
Principales stratégies de routage
• Le routage wormhole (trou de ver) :
 découpe un message en paquet de taille fixe (appelé flit "flow-control
digits")
 Le premier paquet contient les information d'entête et réserve le
chemin (ou circuit) à suivre par les autres paquets
 les paquets sont envoyés en suivant la stratégie de "Store and
forward" suivant le même chemin, un paquet est envoyé dès reception
vers le nœud suivant
 le dernier paquet libère le chemin
F Le nom de stratégie (Cut-through) vient du fait que le transfert des
paquets d'un message ressemble à un ver qui creuse son chemin dans
la terre
F En cas de blocage du paquet de tête (du ver) deux stratégies sont
possibles :
 le ver s'arrête et chaque nœud intermédiaire garde son paquet
Modèle Réseau
Stratégie de routage
Principales stratégies de routage (…)
• Le routage wormhole (trou de ver) :
Source
Flits
Destination
Problème de blocage dans une stratégie WORM HOLE
F Peu de surplus de communication
F Nécessité réduite de buffer
Modèle Réseau
Comparaison de Store&Forward et Cut-Through
Principales stratégies de routage (…)
Temps
P0
P1
P2
P3
Temps de transfert
Processeurs
Modèle Réseau
Comparaison de Store&Forward et Cut-Through
Principales stratégies de routage (…)
Même chose en coupant le messages en (2) paquetsTemps
P0
P1
P2
P3
Temps de transfert
Processeurs
Modèle Réseau
Comparaison de Store&Forward et Cut-Through
Principales stratégies de routage (…)
Même chose en coupant le messages en (4) paquetsTemps
P0
P1
P2
P3
Temps de transfert
Processeurs
Modèle Réseau
Routage dans un réseau dynamique
Rappel : Réseau multi-étages, Réseau Oméga
• Commutateurs de base (Opération exchange)
i1
j1
i2
j2
Commutation directe
i1
j1
i2
j2
Commutation croisée
Modèle Réseau
Routage dans un réseau dynamique
Réseau multi-étages : Réseau Oméga
Exchange (définit le mode d'opération des commutateurs)
P0
000
0
0
0
0
0
0
000 M0
P1 001
1
1
1
1
1
1
001 M1
P2 010
2
2
2
2
2
2
010 M2
P3 011
3
3
3
3
3
3
011 M3
P4 100
4
4
4
4
4
4
100 M4
P5 101
5
5
5
5
5
5
101 M5
P6 110
6
6
6
6
6
6
110 M6
P7 111
7
7
7
7
7
7
111 M7
Shuffle (Définit les connexions des commutateurs)
Modèle Réseau
Routage dans un réseau dynamique
Un Réseau Oméga est définit par deux opérations :
• Shuffle (mélange) qui établit l'interconnexion des commutateurs
 Au nœud i ----------------> nœud j tel que
2i si 0< i < n/2 – 1
j=
2i +1 – n si n/2  i  n-1
 Si on considère les représentations binaire de i et j, l'opération Shuffle
est une rotation à gauche de i : j = rotate(i)
• Exchange (Echanger) définit le mode de transmission des entrées du
commutateur vers ses sorties :
 Commutation directe
 Commutation croisée
Modèle Réseau
Routage dans un réseau dynamique
Réseau Oméga : Routage d'une source S vers une destination D
Soit s et d les représentations binaires de S et D
• Au 1er étage, si les bit de poids fort de s et t sont identiques, le
message est transféré en mode Commutation directe. Sinon, il est
transféré en mode Commutation croisée
• A l'étage i, on considère les ième bit de poids fort de s et d. S'ils sont
identiques, on applique une Commutation directe. Sinon, on applique
une Commutation croisée.
Exemple : s = 000 et d = 110
S = 000
t = 110
1 er étage () : Commutation croisée
2 ème étage () : Commutation croisée
3 ème étage (=) : Commutation directe
Modèle Réseau
Routage dans un réseau dynamique
Réseau Oméga : Routage
P0
000
0
0
0
0
0
0
000 M0
P1 001
1
1
1
1
1
1
001 M1
P2 010
2
2
2
2
2
2
010 M2
P3 011
3
3
3
3
3
3
011 M3
P4 100
4
4
4
4
4
4
100 M4
P5 101
5
5
5
5
5
5
101 M5
P6 110
6
6
6
6
6
6
110 M6
P7 111
7
7
7
7
7
7
111 M7
Modèle Réseau
Routage dans un réseau dynamique
Réseau Oméga : Blocage
Conflits de communication entre les transferts :
• 000 ----> 110
• 110 -----> 111
P0
000
0
0
0
0
0
0
000 M0
P1 001
1
1
1
1
1
1
001 M1
P2 010
2
2
2
2
2
2
010 M2
P3 011
3
3
3
3
3
3
011 M3
P4 100
4
4
4
4
4
4
100 M4
P5 101
5
5
5
5
5
5
101 M5
P6 110
6
6
6
6
6
6
110 M6
P7 111
7
7
7
7
7
7
111 M7
Modèle Réseau
Routage dans un réseau dynamique
Réseau Oméga : Quelques propriété
Un réseau Oméga avec n entrées et n sorties
• Le réseau contient log2(n) étages
• Chaque étage contient n/2 commutateurs
Modèle Réseau
Exemple de traitements
Produit Matrice-Vecteur dans un réseau linéaire
Modèle Réseau
IV. Parallel algorithms for network models
1. Matrix-Vector multiplication on a linear array
Given an nxn matrix A = [aij], i,j [1,n] and an n order
vector X=[xi], compute the product Y=Ax
n
Y=[yi], where yi = aij*xj
J=1
Example: Systolic array algorithm for n=4
x4
x3
x2
x1
a34
a44
a43
a24
a33
a42
a14
a23
a32
a41
a13
a22
a31
a12
a21
a11
.
.
.
.
.
P1
P2
P3
.
P4
Modèle Réseau
IV. Parallel algorithms for network models
Example: Systolic array array for matrix-Vector (…)
•At step j, xj enters the processor P1. At step j, processor Pi receives
(when possible) a value from its left and a value from the top.
It updates its partial as follows:
Yi = Yi + aij*xj , j=1,2,3, ….
• Values xj and aij reach processor i at the same time at step (i+j-1)
•(x1, a11) reach P1 at step 1 = (1+1-1)
•(x3, a13) reach P1 at setep 3 = (1+3-1)
• In general, Yi is computed at step N+i-1
• The computation is completed when x4 and a44 reach processor P4 at
Step N + N –1 = 2N-1
• Conclusion: The algorithm requires (2N-1) steps. At each step, active processor
Perform an addition and a multiplication
• Complexity of the algorithm: O(N)
Modèle Réseau
IV. Parallel algorithms for network models
Example: The steps of the systolic array algorithm
Step
1
x1
2
x2
P1
3
x3
P1
4
x4
5
6
7
P1
P1
P1
P1
P1
x1
x2
x3
x4
P2
P3
P4
P2
P3
P4
P3
P4
P2
P2
P2
P2
P2
x1
x2
x3
x4
P3
P3
P3
P3
x1
x2
x3
x4
4
P4
y1 = a1j*xj
x1
P4
y2 = a2j*xj
P4
P4
J=1
4
J=1
x2
x1
x3
x2
4
y3 = a3j*xj
J=1
x1
4
y4 = a4j*xj
J=1
Modèle Réseau
IV. Parallel algorithms for network models
Systolic array algorithm: Time-Cost analysis
Step
1
x1
2
x2
P1
3
x3
P1
4
x4
P1
P1
x1
x2
x3
x4
P2
P3
P4
1 Add; 1 Mult; active: P1
idle: P2, P3, P4
P2
P3
P4
2 Add; 2 Mult; active: P1, P2
idle: P3, P4
P3
P4
3 Add; 3 Mult; active: P1, P2,P3
idle: P4
P4
4 Add; 4 Mult; active: P1, P2,P3 P4
idle:
P4
3 Add; 3 Mult; active: P2,P3,P4
idle: P1
P4
2 Add; 2 Mult; active: P3,P4
idle: P1,P2
P4
1 Add; 1 Mult; active: P4
idle: P1,P2,P3
P2
P2
5
P1
6
P1
P2
7
P1
P2
P2
x1
x2
x3
x4
P3
P3
P3
P3
x1
x2
x3
x4
Modèle Réseau
IV. Parallel algorithms for network models
2. Matrix multiplication on a 2-D nxn Mesh
Given two nxn matrices A = [aij] and B = [bij], i,j [1,n], Compute the
product C=AB
n
C=[cij], where cij = aik*bkj
J=1
Example: Systolic mesh algorithm for n=4
•At step i, Row i of A (starting with ai1) is entered from the top into column i
(into processor P1i)
•At step j, Column j of B (starting with b1j) is entered from the left into row j
(to processor Pj1)
•The values aik and bkj reach processor (Pji) at step (i+j+k-2). At the end of this step
is sent down and bkj is sent right.
Modèle Réseau
IV. Parallel algorithms for network models
a34
a44
a43
a24
a33
a42
a14
a23
a32
a41
a13
a22
a31
a12
a21
a11
b41 b3 b21 b11
Example: Systolic mesh algorithm for n=4
Step 1
.
.
.
.
(1,1)
(1,2)
(1,3)
(1,4)
.
(2,1)
(2,2)
(2,3)
(2,4)
.
(3,1)
(3,2)
(3,3)
(3,4)
. . .
(4,1)
(4,2)
(4,3)
(4,4)
b42 b32 b22 b12
b43 b33 b23 b13
b44 b34 b24 b14
.
.
.
Modèle Réseau
IV. Parallel algorithms for network models
STEP 5
B
a34
a44
a43
a24
b41
a33
b31
a42
b21
a14
b42
a23
b32
a32
b22
a41
b12
b43
a13
b33
a22
b23
a31
b13
b44 b34
a12
b24
a21
b14
a11
A
b11
Modèle Réseau
IV. Parallel algorithms for network models
Analysis
To determine the number of steps requires to complete the multiplication
of the matrice, we must the step at which the terms ann and bnn reach
processor Pnn.
• Values aik and bkj reach processor Pji at i+j+k-2
• Substituing n for i,j,k yields :
n + n + n – 2 = 3n _ 2
Complexity of the solution: O(N)
Modèle Réseau
IV. Parallel algorithms for network models
3. Matrix-Vector multiplication on a Ring
• Goal: To pipeline data into the processors, so that n product terms are computed
And added to partial sums at each step.
• Distribution of X on the processors
Xj 1j  N, Xj is assigned to processor N-j+1
N=4
a13
a22
a31
a44
a12
a21
a34
a43
a11
a24
a33
a42
a14
a23
a32
a41
X4
X3
X2
X1
P1
P2
P3
P4
Xi
This algorithm requires N steps for a matrix-vector multiplication
aij
Modèle Réseau
IV. Parallel algorithms for network models
3. Matrix-Vector multiplication on a Ring
• Here is another way to distribute the Xi over the processors and to input the
Matrix A
• Row i of the matrix A is shifted (rotated) down (i mod n) times
and entered into processor Pi.
•Xi is assigned to processor Pi, at each step shift right the Xi
N=4
Diagonal
a12
a23
a34
a41
a13
a24
a31
a42
a14
a21
a32
a43
a11
a22
a33
a44
X1
X2
X3
X4
P1
P2
P3
P4
Xi
aij
Modèle Réseau
IV. Parallel algorithms for network models
4. Matrix multiplication on a 2-D Mesh with wrap around
Given two nxn matrices A = [aij] and B = [bij], i,j [1,n], Compute the
product C=AB
• The values of the matrices are stored in the processors.
Initially:
PE[i,j] has x[i,j] = a[i,j] and y[i,j] = b[i,j]
Row i shift left x data (n- i-1) mod n times
Col j shift up y data (n- j-1) mod n times
Modèle Réseau
IV. Parallel algorithms for network models
4. Matrix multiplication on a 2-D Mesh with wrap around
Step 1
a11
b11
a12
b12
a13
b13
a14
b14
a21
b21
a22
b22
a23
b23
a24
b24
a31
b31
a32
b32
a33
b33
a34
b34
a41
b41
a42
b42
a43
b43
a44
b44
Modèle Réseau
IV. Parallel algorithms for network models
Step 2
Rearrange Data
Left Shift
a11
b11
a12
b22
a13
b33
a14
b44
a22
b21
a23
b32
a24
b43
a21
b14
a33
b31
a34
b42
a31
b13
a32
b24
a44
b41
a41
b12
a42
b23
a43
b34
Up Shift
Modèle Réseau
IV. Parallel algorithms for network models
a11
b11
a12
b22
a13
b33
a14
b44
a22
b21
a23
b32
a24
b43
a21
b14
Step 3
Multiply Add and
Move Data
Data Move at Cell ij
a33
b31
a34
b42
a31
b13
a32
b24

aik
bkj
a44
b41
a41
b12
a42
b23
a43
b34
n
Cij =aik*bkj
k=1
c21 = a22b21 + a21b11 + a24b41 + a23b33
Modèle Réseau
IV. Parallel algorithms for network models
5. Sum of N=2P numbers on a p-hypercube
N
Compute S =  xi, xi is assigned to processor Pi
i=1
7 (X7)
(X6) 6
(X2) 2
3 (X3)
(X4)
4
(X0) 0
5
1 (X1)
(X5)
Modèle Réseau
IV. Parallel algorithms for network models
5. Sum of N=2P numbers on a p-hypercube
•Step 1 Processors of the sub-cube 1XX send their data to corresponding process
sub-cube 0XX
6
(X2+X6) 2
3 (X3+X7)
4
(X0+X4) 0
7
5
1 (X1+X5)
Modèle Réseau
IV. Parallel algorithms for network models
5. Sum of N=2P numbers on a p-hypercube
•Step 2 Processors of the sub-cube 01X send their data to corresponding processors
in sub-cube 00X
6
2
3
4
(X0+X4+X2+X6) 0
7
5
1 (X1+X5+X3+X7)
Modèle Réseau
IV. Parallel algorithms for network models
5. Sum of N=2P numbers on a p-hypercube
•Step 3 Processor(s) of the sub-cube 001 send(s) data to corresponding processor(s )
in sub-cube 000
6
2
7
3
4
0
5
1
S = (X0+X4+X2+X6+ X1+X5+X3+X7)
The sum of the N numbers is accumulated on node P0
Modèle Réseau
IV. Parallel algorithms for network models
Algorithm for Parallel sum on hypercube
•Input: 1) An array of X of N=2p of numbers, X[i] is assigned to processor Pi
2) processor identity id
•Output: S= X[0]+…+X[N], stored on processor P0
Processor Pi
Begin
My_id = id ( My_id i)
S=X[i]
For j = 0 to (d-1) do begin
Partner = M_id XOR 2j
if My_id AND 2j = 0 begin
receive(Si, Partner)
S = S + Si end
if My_id AND 2j  0 begin
send(S, Partner)
exit end
end
end
Modèle Réseau
IV. Parallel algorithms for network models
5. One-to-all broadcast in a p-hypercube
•Another example of processing that can be carried out on a hypercube is to
broadcast an element X stored in one processor (say P0) to other processors
of the hypercube.
• This broadcast can be performed in O(logn) as follows
Initial distribution of data
6
2
7
3
4
X
0
5
1
Modèle Réseau
IV. Parallel algorithms for network models
5. One-to-all broadcast in a p-hypercube
•Step 1: Processor Po sends X to processor P1
•Step 2: Processors P0 and P1 send X to P2 and P3 respectively
•Step 3: Processor P0, P1, P2 and P3 send X to P4, P5, P6 and P7
X
6
2
7
X
2
3
5
4
0
X
Step 1
6
1
X
4
0
X
6
7
X
2
X
3
1
Step 2 X
X
5
7
X
3
4
X
0
X
1
Step 3 X
5
X
Modèle Réseau
IV. Parallel algorithms for network models
Algorithm for a broadcast of X on a p-hypercube
•Input: 1) X assigned to processor P0
2) processor identity id
•Output: All processor Pi contain X
Processor Pi
Begin
If i = 0 then B = X
My_id = id ( My_id  i)
For j = 0 to (d-1) do
if My_id  2j begin
Partner = My_id XOR 2j
if My_id > Partner receive(B, Partner)
if My_id < Partner send(S, Partner)
end
end
Modèle Réseau
V. Dynamic Interconnection Networks
• They are constructed from basic elements or switches that are used to
dynamically establish communication paths between a source and a
destination
• There no direct fixed links between pair of processors
•Possibility of conflict and blocked communication
•Two types of networks (direct and multi-stage)
Major types:
•Crossbar networks
•Bus-based networks
•Tree-based networks
•Multi-stage networks
Téléchargement