parallel computation models
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Parallel computation modelsParallel 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 de Graphe (DAG)
Modèle PRAMModèle PRAM
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
Mémoire Globale (Shared – Memory)
P1 P2 Pp
Modèle PRAMModè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)
A chaque étape, certains processeurs sont inactifs
Ce 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.
Plutôt adapté aux architectures MIMD
Modèle PRAMModè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 PRAMModèle PRAM
Etape 1
A : 7
B : 0
C : 7 (Actif, B=0)
A : 2
B : 1
C : 0 (Inactif, B0)
A : 4
B : 2
C : 0 (Inactif, B0)
A : 5
B : 0
C : 5 (Actif, B=0)
Processeur 3Processeur 2Processeur 1Processeur 0
Etape 2
A : 7
B : 0
C : 7 (Inactif, B=0)
A : 2
B : 1
C : 2 (Actif, B0)
A : 4
B : 2
C : 2 (Actif, B0)
A : 5
B : 0
C : 5 (Inactif, B=0)
Processeur 3Processeur 2Processeur 1Processeur 0
Initial
A : 7
B : 0
C : 0
A : 2
B : 1
C : 0
A : 4
B : 2
C : 0
A : 5
B : 0
C : 0
Processeur 3Processeur 2Processeur 1Processeur 0
Modèle PRAMModè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
Problèmes d'écritures concurrentes
Qu'est ce qu'on écrit dans une adresse mémoire en cas d'écritures concurrentes?
ERCW : Exclusive Read – Concurrent Write
Modèle PRAMModè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 PRAMModè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 PRAMModèle PRAMExemple de Calucul (1)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, pn 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 PRAMModèle PRAMExemple de Calucul (1)Exemple de Calucul (1)
Solution 1 : Y = AX
Partition de A
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
A =
A1A2….
Ap
A11, A12, …, A1nA21, A22, …, A2n ….
An1, An2, , Ann
r lignes
r lignes
=
Modèle PRAMModèle PRAMExemple de Calucul (1)Exemple de Calucul (1)
Solution 1 : Y = AX
Algorithme exécuté par le processeur PiInput
Output
Begin
End
(Faire en TD)
Modèle PRAMModèle PRAMExemple de Calucul (1)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
Exécution sur une architecture CREW
Pas de synchronisation des processeurs
Modèle PRAMModèle PRAMExemple de Calucul (1)Exemple de Calucul (1)
Solution 2 : Y = AXDé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 r colonnes
Y= AX = A1,A2, …Ap
A11, A12, …, A1nA21, A22, …, A2n ….
An1, An2, , Ann
X = x1,x2,…, xn
Xp X1
Modèle PRAMModèle PRAMExemple de Calucul (1)Exemple de Calucul (1)
Solution 2 : Y = AXSolution 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
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 PRAMModèle PRAMExemple de Calucul (1)Exemple de Calucul (1)
Solution 2 : Y = AXAlgorithme
(Faire en TD)
Modèle PRAMModèle PRAMExemple de Calucul (2)Exemple de Calucul (2)
Somme de n entiers sur une machine PRAMSoit 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 PRAMModèle PRAMExemple de Calucul (3)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 PRAMModèle PRAMExemple de Calucul (3)Exemple de Calucul (3)
P0,0,3 C0,0,3 = A00 * B03 + A01 * B13 + A02 * B23 + A03 * B33
C0,0,0
C0,0,1
C0,0,2
C0,0,3
C00 =
P0,0,3
P0,0,2
P0,0,1
P0,0,0
C0,1,0 C0,2,0 C0,3,0C0,0,0
Produit de deux matrices C[Cij] = A[Aij] B[Bij]
Modèle PRAMModèle PRAMExemple de Calucul (3)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
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éseauModèle Réseau
Prend en compte l'architecture de communication sous-jacente
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 messages
Send (X,i) envoie le contenu de X a processeur iReceive(Y,j) l'éxecution du processeur appelan est suspendue jusqu'à la
reception d'une valeur qui est écrite dans Y (variable locale)
Modèle Réseau
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
Réseau d'interconnexionRéseau d'interconnexion
Modèle Réseau
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
Réseau d'interconnexionRéseau d'interconnexion
Réseau statique
P1
M1
P2 Pn
M2 Mk
Modèle Réseau
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
Réseau d'interconnexionRéseau d'interconnexion
Réseau statique
P1
ML1
P2
ML2
Pn
MLn
Modèle Réseau
Trois grandes classes de réseaux dynamiques• BUS• CROSSBAR• Réseaux Multi-étages
Réseaux dynamiquesRéseaux dynamiques
Modèle Réseau
BUS• Permet de relier un ensemble d'éléments (processeurs, mémoires,
autres) entre eux
• 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)
Réseaux dynamiquesRéseaux dynamiques
P1
M1
P2 Pn
M2 Mk
BUS
Modèle Réseau
Réseaux dynamiquesRéseaux dynamiques
Processeurs
Mémoires
SwitchCROSSBAR
Modèle Réseau
Réseaux dynamiquesRéseaux dynamiques
Etage1 Etage2 Etage n
0
1
P-1
0
1
P-1
Processeurs Mémoires
……...
.
.
.
Réseaux Multi-étages
Modèle Réseau
Types de réseaux statiques• Réseaux (grilles totalement connectés)• Réseaux en étoile• Réseaux linéaires• Anneaux• Grilles (Mesh)• Arborescences• Hypercubes
Réseaux statiquesRéseaux statiques
Modèle Réseau
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
Réseaux statiquesRéseaux statiques
P0
P1
P2
P3
P4
P5
P6
P7
P8
P9
Modèle Réseau
Réseaux Etoile• Chaque processeur Pi ( i0) est connecté à un processeur central P0
Réseaux statiquesRéseaux statiques
P0
P1
P2
P3
P4
P5P6
P7
P8
Modèle Réseau
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
Réseaux statiquesRéseaux statiques
P0 P1 P2 P3 P4 P5
Modèle Réseau
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
Réseaux statiquesRéseaux statiques
P0 P1 P2 P3 P4 P5
Modèle Réseau
P0 P1 P2 P3
P4 P5 P6 P7
P8 P9 P10 P11
P12 P13 P14 P15
Réseaux statiquesRé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)
Exemple : Une grille 4X4 à 16 processeurs
Modèle Réseau
P0 P1 P2 P3
P4 P5 P6 P7
P8 P9 P10 P11
P12 P13 P14 P15
Réseaux statiquesRé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
Modèle Réseau
Réseaux statiquesRé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 statiquesRé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 statiquesRé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
Hn-1 Hn-1
Réseaux statiquesRéseaux statiques
Hn
HYPERCUBE
Défini récursivement par :• Hn en connectant les nœuds (équivalents) de deux hypercubes Hn-
1
• and by Le préfixe 0 est associé au premier hypercube Hn-1 et 1 à
l'autre.
Modèle Réseau
Hypercube de dimension d
0
d = 0
0 1
d = 1
00 01
10 11
d = 2
000 001
010 011
100 101
110 111
d = 3
d = 4
0000 0001
0010 0011
0100 0101
0110 0111(1)
(0)1000 1001
1010 1011
1100 1101
1110 1111
Réseaux statiquesRéseaux statiques
HYPERCUBE
Modèle Réseau
Réseaux statiquesRé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
processeurs Ps et Pt est égale Hamming(Ps,Pt) = 2
Modèle Réseau
Réseaux statiquesRé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 statiquesCritè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
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 sous-ré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• Peut être défini par le nombre liens de communications du réseau
Coût d'un réseau linéaire de p processeurs est égal à (p-1)
Modèle Réseau
Critères de Performance des Réseaux statiquesCritères de Performance des Réseaux statiques
Exemples de mesures de performance de réseaux de p processeurs
Réseau Diamètre BissectionConnectivité
Coût
Complètement connecté
1 (p2)/4 p-1 p(p-1)/2
Etoile 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
Modèle Réseau
Mécanismes et protocoloes de routage des réseaux Mécanismes et protocoloes de routage des réseaux statiquesstatiques
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 messagegè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éterministeRoutage 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.
Avantage : routage optimal. Choisit souvent le chemin le plus court
Peut résulter en une répartition non uniforme de charges sur les processeurs du réseau
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)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 routageExemples 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
Ps
Pd
(X)
(Y)
Modèle Réseau
Exemples de routage (…)Exemples de routage (…)
Routage E-Cube dans HypercubeDeux 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 (…)Exemples de routage (…)
Routage E-Cube dans Hypercube (…)Exemple : Message de Ps Pd
Ps
Pd
000001
011010
100101
111110
Envoi suivant
010 101 = 111Ps :
Ps
Pd
000001
011010
100101
111110
011 101 = 110P011 :
Envoi suivant
Ps
Pd
000001
011010
100101
111110
001 101 = 100P001 :
Envoi suivant
Ps
Pd
000001
011010
100101
111110
Modèle Réseau
Exemples de routage (…)Exemples de routage (…)
Routage E-Cube dans Hypercube (…)
Routage suivant les bits de poids fort
Exemple : Message de Ps Pd
Ps
Pd
000001
011010
100101
111110
Envoi suivant à 110
010 101 = 111Ps :
(1)
110 101 = 011P110 :
Envoi suivant à 100
(2)
100 101 = 001P100 :
Envoi suivant à 101
(3)
Modèle Réseau
Stratégie de routageStraté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éservationattendant ensuite une confirmation de la réservationenvoyant enfin le message à travers le circuit réservé
Source
Destination
Modèle Réseau
Stratégie de routageStraté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 destination Source
Destination
Avantage : Réserve un lien à la fois, moins de blocage
Inconvénient : Copies intermédiaires du message, problème de buffer sur les noeuds intermédiaires
Modèle Réseau
Stratégie de routageStraté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 paquetacheminant chaque paquet par un chemin ( qui peut être différent) reconstituant le message à l'arrivée (les paquets pouvant arriver dans
un ordre quelconque) Source
Destination
Avantage : Meilleure répartition de flux dans le réseau Evite le blocage du message
Inconvénient : Surplus de communication du aux nombreuses entêtes
Paquets
Modèle Réseau
Stratégie de routageStraté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
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
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 le message est regroupé sur le processeur de tête (processeur ou s'est produit
le blocage
Modèle Réseau
Stratégie de routageStratégie de routage
Principales stratégies de routage (…)• Le routage wormhole (trou de ver) :
Peu de surplus de communication
Nécessité réduite de buffer
En général, plus rapide
Source
Destination
Flits
Problème de blocage dans une stratégie WORM HOLE
Modèle Réseau
Comparaison de Store&Forward et Cut-ThroughComparaison de Store&Forward et Cut-Through
Principales stratégies de routage (…)Temps
Processeurs
P0
P1
P2
P3
Temps de transfert
Modèle Réseau
Comparaison de Store&Forward et Cut-ThroughComparaison de Store&Forward et Cut-Through
Principales stratégies de routage (…)
Même chose en coupant le messages en (2) paquetsTemps
Processeurs
P0
P1
P2
P3
Temps de transfert
Modèle Réseau
Comparaison de Store&Forward et Cut-ThroughComparaison de Store&Forward et Cut-Through
Principales stratégies de routage (…)
Même chose en coupant le messages en (4) paquetsTemps
Processeurs
P0
P1
P2
P3
Temps de transfert
Modèle Réseau
Routage dans un réseau dynamiqueRoutage dans un réseau dynamique
Rappel : Réseau multi-étages, Réseau Oméga• Commutateurs de base (Opération exchange)
i1
i2
j1
j2
Commutation directe
i1
i2
j1
j2
Commutation croisée
Modèle Réseau
Routage dans un réseau dynamiqueRoutage dans un réseau dynamique
Réseau multi-étages : Réseau Oméga
0
1
0
1
2
3
2
3
4
5
4
5
6
7
6
7
0
1
0
1
2
3
2
3
4
5
4
5
6
7
6
7
0
1
0
1
2
3
2
3
4
5
4
5
6
7
6
7
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
Shuffle (Définit les connexions des commutateurs)
Exchange (définit le mode d'opération des commutateurs)
P0
P1
P2
P3
P4
P5
P6
P7
M0
M1
M2
M3
M4
M5
M6
M7
Modèle Réseau
Routage dans un réseau dynamiqueRoutage 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-1Si 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 directeCommutation croisée
Modèle Réseau
Routage dans un réseau dynamiqueRoutage 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 dynamiqueRoutage dans un réseau dynamique
Réseau Oméga : Routage
0
1
0
1
2
3
2
3
4
5
4
5
6
7
6
7
0
1
0
1
2
3
2
3
4
5
4
5
6
7
6
7
0
1
0
1
2
3
2
3
4
5
4
5
6
7
6
7
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
P0
P1
P2
P3
P4
P5
P6
P7
M0
M1
M2
M3
M4
M5
M6
M7
Modèle Réseau
Routage dans un réseau dynamiqueRoutage dans un réseau dynamique
Réseau Oméga : Blocage
0
1
0
1
2
3
2
3
4
5
4
5
6
7
6
7
0
1
0
1
2
3
2
3
4
5
4
5
6
7
6
7
0
1
0
1
2
3
2
3
4
5
4
5
6
7
6
7
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
P0
P1
P2
P3
P4
P5
P6
P7
M0
M1
M2
M3
M4
M5
M6
M7
Conflits de communication entre les transferts : • 000 ----> 110• 110 -----> 111
Modèle Réseau
Routage dans un réseau dynamiqueRoutage 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 traitementsExemple de traitements
Produit Matrice-Vecteur dans un réseau linéaire
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
1. Matrix-Vector multiplication on a linear arrayGiven an nxn matrix A = [aij], i,j [1,n] and an n order
vector X=[xi], compute the product Y=Ax
J=1
n
Y=[yi], where yi = aij*xj
Example: Systolic array algorithm for n=4
x4 x3 x2 x1
a14
a13
a12
a11
a24
a23
a22
a21
a34
a33
a32
a31
a44a43
a42
a41
. ..
.
.
.
P1 P2 P3 P4
Modèle Réseau
IV. Parallel algorithms for network modelsIV. 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, ….
• 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)
• 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
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
Example: The steps of the systolic array algorithm
J=1
4 y2 = a2j*xj
J=1
4 y3 = a3j*xj
J=1
4 y4 = a4j*xj
J=1
4 y1 = a1j*xj
x2
P1 P2 P3 P4
P1 P2 P3 P4
P1 P2 P3 P4
P1 P2 P3 P4
P1 P2 P3 P4
P1 P2 P3 P4
P1 P2 P3 P4
Step1
2
3
4
5
6
7
x1
x3
x4
x1
x2 x1
x1
x1
x2
x2
x2 x1
x3
x3
x3
x3 x2 x1
x4
x4
x4
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
Systolic array algorithm: Time-Cost analysis
x2
P1 P2 P3 P4
P1 P2 P3 P4
P1 P2 P3 P4
P1 P2 P3 P4
P1 P2 P3 P4
P1 P2 P3 P4
P1 P2 P3 P4
Step1
2
3
4
5
6
7
x1
x3
x4
x1
x2 x1
x1 x2
x2
x3
x3
x3
x4
x4
x4
1 Add; 1 Mult; active: P1 idle: P2, P3, P4
2 Add; 2 Mult; active: P1, P2 idle: P3, P4
3 Add; 3 Mult; active: P1, P2,P3 idle: P4
4 Add; 4 Mult; active: P1, P2,P3 P4idle:
3 Add; 3 Mult; active: P2,P3,P4idle: P1
2 Add; 2 Mult; active: P3,P4idle: P1,P2
1 Add; 1 Mult; active: P4idle: P1,P2,P3
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
2. Matrix multiplication on a 2-D nxn MeshGiven two nxn matrices A = [aij] and B = [bij], i,j [1,n], Compute the
product C=AB
J=1
n
C=[cij], where cij = aik*bkj
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 stepis sent down and bkj is sent right.
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
Example: Systolic mesh algorithm for n=4
b41 b3 b21 b11
a14
a13
a12
a11
a24
a23
a22
a21
a34
a33
a32
a31
a44a43
a42
a41
. ..
.
.
.
b42 b32 b22 b12 .
b43 b33 b23 b13 . .
(1,1) (1,2) (1,3) (1,4)
(2,4)(2,3)(2,2)(2,1)
(3,4)(3,3)(3,2)(3,1)
(4,4)(4,3)(4,2)(4,1)b44 b34 b24 b14 ...
Step 1
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
a11
a24 a33 a42b41 b31 b21
a14
a13
a12
b42
b33
b24
b32 b22 b12
b23 b13
b14
a23 a32 a41
a22 a31
a21
b43
b34b44
b11
a34 a43a44 A
B
STEP 5
Modèle Réseau
IV. Parallel algorithms for network modelsIV. 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 modelsIV. 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.
X4 X3 X2 X1
P1 P2 P3 P4
a13
a12
a11
a14
a22
a21
a24
a23
a31
a34
a33
a32
a44
a43
a42
a41
Xi
aij
• Distribution of X on the processors Xj 1j N, Xj is assigned to processor N-j+1
N=4
This algorithm requires N steps for a matrix-vector multiplication
Modèle Réseau
IV. Parallel algorithms for network modelsIV. 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
X1 X2 X3 X4
P1 P2 P3 P4
a12
a13
a14
a11
a23
a24
a21
a22
a34
a31
a32
a33
a41
a42
a43
a44
Xi
aij
N=4
Diagonal
Modèle Réseau
IV. Parallel algorithms for network modelsIV. 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 modelsIV. Parallel algorithms for network models
4. Matrix multiplication on a 2-D Mesh with wrap around
a11 a12 a13 a14b11 b12 b13 b14
a21
a31
a41
b21
b31
b41
b22 b23 b24
b32 b33 b34
b42 b43 b44
a22 a23 a24
a32 a33 a34
a42 a43 a44
Step 1
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network modelsStep 2Rearrange Data
a11 a12 a13 a14b11 b22 b33 b44
a22
a33
a44
b21
b31
b41
b32 b43 b14
b42 b13 b24
b12 b23 b34
a23 a24 a21
a34 a31 a32
a41 a42 a43
Left Shift
Up Shift
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
Step 3Multiply Add and Move Data
a11 a12 a13 a14b11 b22 b33 b44
a22
a33
a44
b21
b31
b41
b32 b43 b14
b42 b13 b24
b12 b23 b34
a23 a24 a21
a34 a31 a32
a41 a42 a43
c21 = a22b21 + a21b11 + a24b41 + a23b33
Data Move at Cell ij
bkj
aik
Data Move at Cell ij
aik*bkjk=1
n
Cij =
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
5. Sum of N=2P numbers on a p-hypercube
Compute S = xi, xi is assigned to processor Pii=1
N
0 1
32
4 5
6 7
(X0)
(X2)
(X1)
(X7)
(X3)
(X4) (X5)
(X6)
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
5. Sum of N=2P numbers on a p-hypercube
0 1
32
4 5
6 7
(X0+X4)
(X2+X6)
(X1+X5)
(X3+X7)
•Step 1 Processors of the sub-cube 1XX send their data to corresponding processors in sub-cube 0XX
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
5. Sum of N=2P numbers on a p-hypercube
0 1
32
4 5
6 7
(X0+X4+X2+X6) (X1+X5+X3+X7)
•Step 2 Processors of the sub-cube 01X send their data to corresponding processors in sub-cube 00X
Modèle Réseau
IV. Parallel algorithms for network modelsIV. Parallel algorithms for network models
5. Sum of N=2P numbers on a p-hypercube
0 1
32
4 5
6 7
S = (X0+X4+X2+X6+ X1+X5+X3+X7)
•Step 3 Processor(s) of the sub-cube 001 send(s) data to corresponding processor(s )in sub-cube 000
The sum of the N numbers is accumulated on node P0
Modèle Réseau
IV. Parallel algorithms for network modelsIV. 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 PiBegin
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 beginreceive(Si, Partner)S = S + Si end
if My_id AND 2j 0 beginsend(S, Partner)exit end
endend
Modèle Réseau
IV. Parallel algorithms for network modelsIV. 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 tobroadcast 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
0 1
32
4 5
6 7
X
Initial distribution of data
Modèle Réseau
IV. Parallel algorithms for network modelsIV. 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
X0 1
32
4 5
6 7
XStep 1 Step 20 1
32
4 5
6 7
X X
X X
X X0 1
32
4 5
6 7
XX
X X
XX
Step 3
Modèle Réseau
IV. Parallel algorithms for network modelsIV. 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 PiBegin
If i = 0 then B = XMy_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)
endend
Modèle Réseau
V. Dynamic Interconnection NetworksV. 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