parallel computation models

90
Parallel computation models 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

Upload: triage

Post on 19-Jan-2016

29 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Parallel computation models

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

Page 2: Parallel computation models

Modèle de Graphe (DAG)Modèle de Graphe (DAG)

Page 3: Parallel computation models

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

Page 4: Parallel computation models

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

Page 5: Parallel computation models

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

Page 6: Parallel computation models

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

Page 7: Parallel computation models

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

Page 8: Parallel computation models

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} …..

Page 9: Parallel computation models

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)

Page 10: Parallel computation models

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

Page 11: Parallel computation models

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

=

Page 12: Parallel computation models

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)

Page 13: Parallel computation models

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

Page 14: Parallel computation models

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

Page 15: Parallel computation models

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

Page 16: Parallel computation models

Modèle PRAMModèle PRAMExemple de Calucul (1)Exemple de Calucul (1)

Solution 2 : Y = AXAlgorithme

(Faire en TD)

Page 17: Parallel computation models

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)

Page 18: Parallel computation models

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.

Page 19: Parallel computation models

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]

Page 20: Parallel computation models

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

Page 21: Parallel computation models

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)

Page 22: Parallel computation models

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

Page 23: Parallel computation models

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

Page 24: Parallel computation models

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

Page 25: Parallel computation models

Modèle Réseau

Trois grandes classes de réseaux dynamiques• BUS• CROSSBAR• Réseaux Multi-étages

Réseaux dynamiquesRéseaux dynamiques

Page 26: Parallel computation models

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

Page 27: Parallel computation models

Modèle Réseau

Réseaux dynamiquesRéseaux dynamiques

Processeurs

Mémoires

SwitchCROSSBAR

Page 28: Parallel computation models

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

Page 29: Parallel computation models

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

Page 30: Parallel computation models

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

Page 31: Parallel computation models

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

Page 32: Parallel computation models

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

Page 33: Parallel computation models

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

Page 34: Parallel computation models

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

Page 35: Parallel computation models

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

Page 36: Parallel computation models

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

Page 37: Parallel computation models

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

Page 38: Parallel computation models

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

Page 39: Parallel computation models

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.

Page 40: Parallel computation models

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

Page 41: Parallel computation models

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

Page 42: Parallel computation models

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

Page 43: Parallel computation models

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)

Page 44: Parallel computation models

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

Page 45: Parallel computation models

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

Page 46: Parallel computation models

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

Page 47: Parallel computation models

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

Page 48: Parallel computation models

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)

Page 49: Parallel computation models

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

Page 50: Parallel computation models

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

Page 51: Parallel computation models

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)

Page 52: Parallel computation models

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

Page 53: Parallel computation models

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

Page 54: Parallel computation models

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

Page 55: Parallel computation models

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

Page 56: Parallel computation models

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

Page 57: Parallel computation models

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

Page 58: Parallel computation models

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

Page 59: Parallel computation models

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

Page 60: Parallel computation models

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

Page 61: Parallel computation models

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

Page 62: Parallel computation models

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

Page 63: Parallel computation models

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

Page 64: Parallel computation models

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

Page 65: Parallel computation models

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

Page 66: Parallel computation models

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

Page 67: Parallel computation models

Modèle Réseau

Exemple de traitementsExemple de traitements

Produit Matrice-Vecteur dans un réseau linéaire

Page 68: Parallel computation models

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

Page 69: Parallel computation models

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

Page 70: Parallel computation models

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

Page 71: Parallel computation models

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

Page 72: Parallel computation models

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.

Page 73: Parallel computation models

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

Page 74: Parallel computation models

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

Page 75: Parallel computation models

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)

Page 76: Parallel computation models

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

Page 77: Parallel computation models

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

Page 78: Parallel computation models

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

Page 79: Parallel computation models

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

Page 80: Parallel computation models

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

Page 81: Parallel computation models

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 =

Page 82: Parallel computation models

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)

Page 83: Parallel computation models

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

Page 84: Parallel computation models

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

Page 85: Parallel computation models

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

Page 86: Parallel computation models

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

Page 87: Parallel computation models

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

Page 88: Parallel computation models

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

Page 89: Parallel computation models

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

Page 90: Parallel computation models

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