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