Parallel computation models

Post on 19-Jan-2016

30 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

top related