Chapitre2c

Transcription

Chapitre2c
Communication ou acheminement des messages
Robert Bergevin (c)
[Varma] figure 4
Figure 2.63 Conflits dans une maille 2D
C’est donc normalement un routage réparti i.e. que les décisions sur l’acheminement du message ou
paquet se prennent à chaque noeud.
Le routage adaptatif consiste à calculer, à chaque noeud, une fonction de routage (détermination des
directions possibles à partir de ce noeud) et une fonction de sélection (choix de la meilleure direction
parmi celles identifiées).
L’importance du routage adaptatif est plus évidente lorsque l’on utilise une commutation par paquets
et un contrôle du flot de données de type WR.
La raison en est que les paquets sont souvent distribués sur plusieurs noeuds ce qui augmente les
chances de conflit, blocage et impasse entre les messages.
Le routage adaptatif est aussi important considérant que des éléments du réseau peuvent tomber en
faute i.e. devenir non fonctionnels.
Il est cependant plus complexe ce qui peut ralentir la transmission des messages dans le réseau.
Nous considérons principalement, dans la suite, les communications point-à-point.
2.18.7.1 Algorithmes de routage adaptatif
Les algorithmes de routage adaptatifs se divisent aussi en plusieurs catégories, selon que:
•
•
•
le chemin recherché est le plus court (“minimal routing”) ou non (“nonminimal routing”).
tous les chemins possibles sont considérés (“fully adaptative”) ou
seulement un sous-ensemble des chemins possibles (“partially
adaptative”).
la recherche de chemin accepte les retours en arrière (“non-progressive”
ou “backtracking”) ou non (“progressive”).
GIF-3003 Systèmes parallèles et temps réel
126
Communication ou acheminement des messages
Robert Bergevin (c)
[Varma] figure 5
Figure 2.64 Taxonomie du routage adaptatif
2.18.7.2 Évitement des impasses sur une maille
Deux méthodes de routage adaptatif similaires, permettant d’éviter les impasses, ont été proposées
pour les réseaux en maille et pour les réseaux hypercube. Ce sont des algorithmes basés sur le modèle
des changements de direction.
Dans les deux cas, on utilise un routage partiellement adaptatif, progressif, avec un canal virtuel dans
chaque sens (correspondant, par exemple, à un lien bidirectionnel physique entre deux noeuds mais
qui ne peut être utilisé dans les deux sens simultanément).
Dans le cas des réseaux en maille 2-D, nous avons vu qu’une impasse peut se produire lorsque quatre
messages transitent sur un groupe de 4 noeuds voisins, chacun le long d’un chemin nécessitant un
changement de direction à l’intérieur de ces quatre noeuds et le tout formant un cycle.
Dans une maille 2-D, il y a quatre directions de sortie possibles qu’un message peut prendre à un
noeud donné. Nous les identifions par les directions géographiques: N, S, E, W.
En tout, il y a donc huit changements de direction (ou dimension) possibles que l’on peut regrouper
en deux groupes cycliques: WN, NE, ES et SW pour un cycle horaire et NW, WS, SE et EN pour un
cycle anti-horaire.
E
E
W
W
N
S
S
N
N
S
S
N
W
W
E
E
Figure 2.65 Deux groupes cycliques de changements de direction
GIF-3003 Systèmes parallèles et temps réel
127
Communication ou acheminement des messages
Robert Bergevin (c)
Ainsi, en empêchant un ou plusieurs changements de direction dans chaque groupe, on peut éviter les
impasses.
L’algorithme de routage fixe XY empêche deux changements par cycle car il ne permet que d’aller
d’une direction X (horizontale) à une direction Y (verticale) mais non l’inverse.
Soit X positif dans la direction E et Y positif dans la direction N.
Dans le cycle horaire, cet algorithme permet donc seulement les changements ES et WN.
Dans le cycle anti-horaire, il permet les changements EN et WS.
L’algorithme XY est fixe car il ne permet qu’un seul chemin entre deux noeuds.
En empêchant moins de changements par cycle, on obtient un algorithme adaptatif qui peut aussi
éviter les impasses.
Il y a 16 façons différentes d’enlever un seul changement par cycle.
Parmi celles-ci, il s’avère que seulement 12 permettent d’éviter les impasses.
Par exemple, si on empêche NW dans le cycle anti-horaire, on se retrouve avec un chemin équivalent
à un changement WN dans le cycle horaire.
Donc, en empêchant WN dans le cycle horaire, on pourra quand même faire un cycle avec les 6
changements de direction qui restent. Cette paire n’élimine donc pas les impasses.
Cependant, seulement 3 façons d’enlever un changement de direction sont uniques si on élimine les
symétries. Par exemple, on élimine les inversions des axes X et/ou Y qui donnent le même chemin en
partant le long de l’axe positif plutôt que le long de l’axe négatif.
Elles correspondent à trois algorithmes adaptatifs uniques:
•
•
•
“west-first”: empêche NW et SW.
“north-last”: empêche NW et NE.
“negative-first”: empêche NW et ES.
Un algorithme symétrique à “negative-first” serait “positive-first” qui empêcherait WN et SE.
Pour les trois algorithmes uniques ci-dessus, les cycles et les impasses sont impossibles.
Par exemple, avec l’algorithme “negative-first” on se déplace d’abord dans les directions négatives
seulement (S et W), dans une première phase, puis dans les directions positives seulement (N et E),
dans une deuxième phase.
On élimine ainsi les cycles car empêcher NW est équivalent à permettre WN, ce qui laisse un trou
dans le cycle horaire par l’élimination de ES (et un trou dans le cycle anti-horaire car empêcher ES
équivaut à permettre SE).
L’algorithme “negative-first” élimine donc les impasses.
GIF-3003 Systèmes parallèles et temps réel
128
Communication ou acheminement des messages
Robert Bergevin (c)
Avec ces algorithmes adaptatifs, on obtient plusieurs chemins possibles pour aller d’un noeud source
à un noeud destination (e.g. de 4 à 10 dans la figure ci-dessous), et ce sans risque de créer d’impasse.
[Varma] figures 13 et 14
Figure 2.66 Routage adaptatif “negative first
On peut généraliser ces algorithmes pour les mailles à n dimensions.
Dans ce cas, il y a n ( n – 1 ) cycles distincts, chacun étant aussi formé de changements de direction de
90 degrés. Par exemple, pour n = 3 il y aura 6 cycles.
2.18.7.3 Algorithme adaptatif pour hypercube: P-cube
Nous savons déjà qu’un hypercube est une maille d – D avec deux noeuds par dimension. Un
algorithme semblable aux précédents existe donc pour les réseaux hypercube binaires. On l’appelle
l’algorithme de routage P-cube.
Les dimensions dans lesquelles on doit se déplacer pour aller de la source à la destination (voir
algorithme E-cube) sont d’abord divisées en 2 groupes: les sauts négatifs (“negative hops”) et les
sauts positifs (“positive hops”).
Le premier groupe comprend les dimensions pour lesquelles la source a un bit 1 dans cette dimension
et la destination un bit 0.
Le deuxième groupe comprend les dimensions dans la situation opposée (source: 0 et destination:1).
Il y a en fait deux versions de l’algorithme P-cube.
Pour la version minimale, on se déplace, dans la première phase, le long des sauts négatifs (premier
groupe) seulement et, dans la second phase, le long des sauts positifs seulement (deuxième groupe).
Pour la version non-minimale, on accepte aussi, dans la première phase, des déplacements dans une
dimension pour laquelle la source et la destination sont à 1. On crée ainsi des détours sur le chemin
entre la source et la destination, tout en conservant la séquence de sauts négatifs suivis de sauts
positifs. Chaque détour dans une dimension augmente la longueur du chemin de 2 (aller-retour).
GIF-3003 Systèmes parallèles et temps réel
129
Communication ou acheminement des messages
Robert Bergevin (c)
On peut numéroter les canaux d’un hypercube de sorte qu’un chemin respectant l’algorithme P-cube
suivra toujours des canaux de numéros croissants.
[Varma] figures 15
Figure 2.67 Routage adaptatif P-cube
Avec l’algorithme P-cube, pour aller de 101 à 010 dans un hypercube 3-D, on pourra suivre un de
deux chemins possibles: 101, 100, 000, 010 ou 101, 001, 000, 010.
Si on était parti de 111, on aurait pu aller vers un de ces deux chemins dans le cas non-minimal.
Dans le cas minimal, on aurait plutôt suivi 111, 110, 010 ou 111, 011, 010.
Voyons maintenant pourquoi les impasses sont impossibles.
Dans la première phase de l’algorithme P-cube on ne peut former de cycle car on se déplace toujours
vers un noeud qui a une adresse inférieure ou égale. On ne peut donc pas revenir à notre point de
départ.
Dans la seconde phase, c’est la même situation car on se déplace toujours vers un noeud qui a une
adresse supérieure.
Finalement, comme chaque dimension est traitée dans une seule phase, on ne peut jamais revenir sur
nos pas entre les deux phases. Ainsi, il ne peut pas y avoir de cycle ou d’impasse avec cet algorithme.
Par contre, dans ce cas comme dans le cas des mailles n-D, les algorithmes permettant d’éviter les
impasses peuvent ne plus être effectifs en présence de fautes dans le réseau. Des algorithmes
particuliers sont développés pour faire face à ces situations. Ils dépassent le cadre de ce cours.
2.18.7.4 Algorithmes complètement adaptatifs
D’autres algorithmes de routage adaptatifs considèrent tous les chemins possibles. Ils sont
généralement basés sur l’utilisation de canaux virtuels. Leur description dépasse le cadre de ce cours.
2.18.8
Exercices à faire
Q2.72 à Q2.79.
GIF-3003 Systèmes parallèles et temps réel
130
Les réseaux dynamiques ou configurables
2.19
Robert Bergevin (c)
Les réseaux dynamiques ou configurables
Comme nous l’avons mentionné, les réseaux statiques sont appropriés pour les applications
structurées dans lesquelles les patrons de communication sont fixes et prévisibles. En effet, dans ce
cas, les liens fixes entre les processeurs, même incomplets, peuvent être exploités optimalement par
un algorithme de routage prédéterminé.
Dans tous les autres cas, le fait d’avoir un réseau fixe peut être désavantageux.
Par exemple, pour des applications non-structurées il serait plus intéressant d’avoir un réseau
adaptable aux besoins dynamiques en communications. Pour ce faire, les noeuds de calcul ne doivent
plus être reliés de façon permanente.
Il est en effet difficile d’obtenir, au niveau matériel, un ordinateur parallèle universel (“multipurpose”
ou “general purpose”) avec un réseau d’interconnexion fixe autre que celui de connexité totale. La
topologie hypercube, quoique très versatile comme nous l’avons vu, n’est pas toujours applicable car
la dimension du réseau est limitée par des considérations pratiques.
Lorsque les communications sont variées et que les contraintes de l’application demandent de la
flexibilité (e.g. contraintes temporelles variables sur différents processus), un réseau statique n’est
donc plus la solution idéale.
Un réseau statique a un routeur ou commutateur par noeud. Dans un réseau dynamique, il y a plutôt
un “commutateur global” (réseau de commutation formé de plusieurs commutateurs) liant les
différents processeurs, ce qui permet de configurer de façon dynamique les liens directs entre les
processeurs i.e. la topologie du réseau.
Après que les commutateurs du réseau de commutation aient été activés, un ou plusieurs liens directs
existent entre les noeuds. L’activation des commutateurs correspond donc, à la fois, à la formation
d’un réseau adapté à la communication désirée et au routage du ou des messages.
Un ordinateur parallèle doté d’un réseau dynamique et pouvant servir plusieurs applications
simultanément demanderait un protocole complexe, découplé entre les niveaux physique et logique,
pour le routage des messages de chacune des applications. On n’a qu’à penser aux protocoles des
réseaux informatiques locaux (Ethernet) ou globaux (Internet).
Par contre, lorsque le système est dédié à une seule application, structurée ou non, le protocole est
plus simple et typiquement étroitement couplé entre le matériel et le logiciel. C’est le cas qui nous
intéresse avec les SPTR.
2.19.1
Trois types de réseaux dynamiques
Les types de réseaux dynamiques sont, par ordre croissant de coût et de performance:
•
•
•
les réseaux en bus;
les réseaux de commutation multi-étages (“multistage”);
les réseaux de commutation matriciels (“crossbar”).
GIF-3003 Systèmes parallèles et temps réel
131
Les réseaux dynamiques ou configurables
Robert Bergevin (c)
[Almasi] figure chap. 8
Figure 2.68 Topologies de réseaux dynamiques
Ces trois topologies particulières ont des propriétés intéressantes en terme de flexibilité et de facilité
de routage.
2.19.2
Réseaux en bus
Le réseau en bus permet d’établir dynamiquement un et un seul lien direct à la fois entre n’importe
quelle paire de noeuds source et destination.
Dans ce type de réseau, le sens de la communication (source vers destination) est déterminé par le
protocole physique et logique de gestion du bus.
On peut donc dire que le réseau en bus permet d’activer uniquement les commutateurs liant deux
noeuds au bus de communication partagé, ceci pour une communication point-à-point. La gestion du
bus pour une communication collective est plus complexe.
Les réseaux en bus fonctionnent bien, dans un mode 1:1, tant que le nombre de noeuds est limité et
que les communications sont bien réparties dans le temps.
Plus le nombre de noeuds augmente, plus la largeur de bande disponible par noeud diminue. De plus,
ce type de réseau d’interconnexion n’est pas du tout robuste face aux pannes ou défaillances.
GIF-3003 Systèmes parallèles et temps réel
132
Les réseaux dynamiques ou configurables
Robert Bergevin (c)
Le bus demeure quand même un type de réseau très utilisé dans les systèmes en temps réel actuels, en
particulier ceux dont la complexité (nombre de données traitées, type et quantité de communications,
etc.) est limitée.
Il existe plusieurs bus normalisés et de nouveaux bus encore plus performants sont proposés
régulièrement, suivant ainsi l’avancement de la technologie des microprocesseurs, en particulier en ce
qui a trait aux systèmes parallèles.
En effet, l’utilisation d’un système multiprocesseur sur bus semble toute indiquée pour les SPTR. Elle
donne une plus grande capacité de traitement et elle rend possible une meilleure tolérance aux fautes,
par sa redondance intrinsèque. De plus, elle représente une évolution naturelle par rapport aux
systèmes monoprocesseur existants.
2.19.2.1 Problèmes possibles
En fait, lorsque la complexité du traitement à réaliser est limitée i.e. lorsque le nombre d’éléments du
système est moyen et que le taux d’utilisation du bus par ces éléments n’est pas trop élevé, un réseau
en bus ne pose pas de problèmes particuliers tout en étant simple et relativement peu coûteux.
Par contre, lorsque les contraintes sont plus exigeantes et donc que le nombre d’éléments (e.g.
processeurs) augmente ainsi que leur taux d’utilisation du bus, il se produit un problème de goulot
(“bottleneck”).
Celui-ci résulte du fait que seulement deux éléments peuvent communiquer entre eux à chaque
instant.
De plus, une défaillance du bus (“failure”) est toujours catastrophique car alors, aucune
communication n’est possible entre les éléments du système.
2.19.2.2 Bus multiples
L’utilisation de bus multiples en parallèle pourrait solutionner partiellement ce problème.
Malheureusement, ceci n’est pas possible facilement car il faut alors utiliser des processeurs et des
mémoires à plusieurs ports, ce qui est difficilement réalisable à un coût raisonnable et qui, de plus,
implique une gestion des modules qui devient rapidement plus complexe.
[Tabak] figure 2.2
Figure 2.69 Bus multiples en parallèle
GIF-3003 Systèmes parallèles et temps réel
133
Les réseaux dynamiques ou configurables
Robert Bergevin (c)
2.19.2.3 Liens directs ou indirects
Il devient alors plus avantageux d’utiliser soit des liens de communication directs (point-à-point)
entre les processeurs avec des circuits spécialisés pour gérer les communications, c’est ce que nous
avons vu avec les réseaux statiques et les routeurs, ou des liens indirects activés par des
commutateurs, donc des réseaux dynamiques plus complexes et flexibles.
2.19.3
Réseaux de commutation matriciels
Un réseau dynamique beaucoup plus flexible et performant est le réseau de commutation matriciel
(“crossbar”). Celui-ci permet de relier simultanément n’importe quelle paire de noeuds inoccupés
après un délai de commutation fixe et indépendant du nombre de noeuds dans le réseau.
La communication la plus simple qui peut être réalisé sur ce réseau est la permutation (n:n) auquel cas
toutes les sources et destinations sont uniques. Des protocoles plus complexes permettent de gérer
assez facilement des communications 1:n ou n:1.
Avec ce réseau, le nombre de liens par noeud reste limité (2 par processeur) mais le nombre de
commutateurs ( N 2 ) est aussi élevé que le nombre de liens d’un réseau statique de connexité totale. Ce
nombre peut être excessif lorsque le réseau est de grande dimension.
[Kumar] figure 2.6
Figure 2.70 Réseau de commutation matriciel
En pratique, avec la technologie actuelle, l’utilisation de ce type de réseau est limitée à des systèmes
ayant autour de 100 noeuds ou processeurs. Ce nombre augmente constamment avec les progrès de la
micro-électronique.
Parfois, on utilise aussi des commutateurs avec un nombre limité d’entrées et de sorties et qui ne
peuvent donc que relier un nombre limité de processeurs entre eux; à plus forte raison lorsque chaque
processeur a plusieurs liens de communication.
Dans les circuits de routage rapides, on utilise un commutateur matriciel pour relier les tampons des
canaux d’entrée aux tampons des canaux de sortie
Des commutateurs optiques ont aussi été développés pour ce type de réseau.
GIF-3003 Systèmes parallèles et temps réel
134
Les réseaux dynamiques ou configurables
Robert Bergevin (c)
Un des problèmes qui demeure est la gestion de la complexité de l’arbitrage des requêtes et du
contrôle du commutateur.
Des contrôleurs distribués ont été proposés pour faire face à cette complexité et pour assurer une
certaine robustesse au réseau.
Les réseaux en bus et de commutation matricielle forment, avec les réseaux statiques, l’ensemble des
réseaux mono-étage (“single-stage”) pour lesquels on a seulement des connexions directes (un ou
plusieurs liens 1:1 permanents, avec routeur, ou temporaires, avec un commutateur à deux états).
Le degré des noeuds est fixe entre les PE des réseaux mono-étage.
[Lawson] figure 3.27
Figure 2.71 Réseaux mono-étage
Lorsque la connexité permanente ou temporaire est incomplète, la transmission entre une source et
une destination données peut se faire en plusieurs étapes (passes ou itérations).
Le dernier type de réseau dynamique mentionné, les réseaux de commutation multi-étages, sont un
intermédiaire pratique entre les réseaux en bus (qui permettent les communications 1:1) et les
commutateurs matriciels (qui permettent toutes les communications n:n). Ces réseaux largement
utilisés permettent, selon leur configuration, un sous-ensemble particulier des communications n:n.
Nous les examinons en détail dans la section qui suit.
2.19.4
Réseaux de commutation multi-étages
Un réseau de commutation multi-étage (MIN: “multi-stage interconnection network”) comprend
plusieurs colonnes de commutateurs qui sont reliés entre eux et avec les noeuds de calcul.
Il se situe entre la connexité minimale des réseaux en bus et la connexité maximale des réseaux de
commutation matricielle.
Certains chemins entre des paires de noeuds auront donc des parties communes. Il peut donc y avoir
conflit et attente.
GIF-3003 Systèmes parallèles et temps réel
135
Les réseaux dynamiques ou configurables
Robert Bergevin (c)
Lorsque n’importe quel noeud d’entrée (source) peut atteindre n’importe quel noeud de sortie
(destination) en une seule passe dans le réseau (pour un seul message i.e. communication 1:1), on
parle d’un réseau avec accès total (FA: “full access”).
Les réseaux de commutation matricielle sont FA.
2.19.4.1 Topologie des réseaux MIN
Un grand nombre de réseaux MIN NXN (de N processeurs d’entrée vers N processeurs ou vers N
mémoires de sortie) sont formés de n = log2N colonnes ayant chacune N/2 commutateurs 2x2 i.e.
avec 2 entrées et 2 sorties.
Le nombre total de commutateurs est donc d’ordre Nlog2N, comparativement à N2 pour les
commutateurs matriciels.
On représente normalement un tel réseau MIN par une matrice de n colonnes de N/2 commutateurs
(rangées) reliant les N noeuds d’entrée (source) placés à gauche de la première colonne aux N noeuds
de sortie (destination) placés à droite de la dernière colonne.
On numérote normalement les colonnes de commutateurs de 0 à n-1 en allant de la première (à
gauche) à la dernière (à droite).
Un étage d’un réseau MIN comprend une colonne de commutateurs et les liens d’entrée de ces
commutateurs. Le numéro d’un étage est le même que celui de la colonne de commutateurs.
Un réseau MIN comprend donc n étages suivis des liens de sortie de la dernière colonne de
commutateurs.
La topologie des réseaux MIN est définie par la façon dont sont agencés les liens à chaque étage et à
la sortie.
2.19.4.2 Construction d’un réseau MIN
Une permutation est une application (“mapping”) biunivoque N:N où chacun des N éléments d’entrée
(source) est relié à un et un seul des N éléments de sortie (destination) et réciproquement.
En assignant à chaque élément d’entrée et de sortie une étiquette ou adresse entre 0 et N-1, la
permutation peut être définie par une modification de l’adresse de chaque élément d’entrée pour
produire l’adresse de l’élément de sortie correspondant.
En général, on utilise une adresse binaire et la permutation correspond à une opération sur les bits
formant l’adresse.
Dans un réseau MIN, les liens à chaque étage et à la sortie sont agencés en fonction d’une
permutation parmi plusieurs types standards.
2.19.4.3 Types de permutations
Plusieurs types de permutations standards sont utilisées pour construire les MIN:
•
•
cube i-ème (“ith cube”): complémente le i-ème bit (LSB = bit 0);
échange (“exchange”): cube 0;
GIF-3003 Systèmes parallèles et temps réel
136
Les réseaux dynamiques ou configurables
•
•
•
•
•
•
Robert Bergevin (c)
décalage (“shift”): déplace des bits vers la gauche ou la droite;
mélange parfait (“perfect-shuffle”): décalage cyclique de tous les bits de 1
position vers la gauche;
ligne de base i-ème (“ith baseline”): décalage cyclique des i+1 bits les
moins significatifs de 1 position vers la droite;
papillon i-ème (“ith butterfly”): échange le bit 0 et le i-ème bit;
inversion des bits (“bit reversal”): inverse tous les bits;
identité (“identity”): papillon 0.
[Lawson] figure 3.25
Figure 2.72 Permutation mélange parfait
Étude
Trouver une explication de l’appellation mélange parfait pour la
permutation ci-dessus.
2.19.4.4 Perfect-shuffle et shuffle-exchange
Dans une permutation perfect-shuffle de N = 2n noeuds, chaque noeud est donc relié au noeud obtenu
par un décalage cyclique de 1 bit vers la gauche, de son adresse binaire.
Un étage de type mélange et échange (“shuffle/exchange”) consiste en une permutation perfectshuffle suivi d’une colonne de commutateurs 2x2.
Cette colonne de commutateurs permet de réaliser la permutation d’échange.
GIF-3003 Systèmes parallèles et temps réel
137
Les réseaux dynamiques ou configurables
Robert Bergevin (c)
[Varma] figure 1
Figure 2.73 Étage mélange et échange
2.19.4.5 Réseau oméga
Le réseau oméga est un exemple important de réseau multi-étage de type “shuffle/exchange”.
Il est formé d’une suite d’étages de type shuffle/exchange terminée par une permutation identité.
Il permet d’obtenir une approximation de la connexité et du débit d’un réseau de commutation
matriciel mais à un coût moindre.
Le réseau oméga de base est FA. Il permet de relier chaque paire de noeuds en une seule passe. De
plus, il existe un chemin unique permettant de relier la paire de noeuds.
Dans le réseau oméga, le mélange est réalisé par des liens et l’échange par des commutateurs.
2.19.4.5.1 Autres réseaux similaires
Plusieurs autres réseaux MIN sont construits de façon similaire.
Un réseau MIN baseline de n étages utilise une permutation mélange parfait à l’entrée du premier
étage (étage 0), une permutation ligne de base (n-i)-ème à l’entrée des étages i=1 à n-1 et une
permutation identité à la sortie.
Un réseau MIN butterfly de n étages utilise une permutation papillon i-ème à l’entrée des étages i=0 à
n-1 et une permutation identité à la sortie.
Un réseau MIN cube de n étages utilise une permutation mélange parfait à l’entrée du premier étage
(étage 0), une permutation papillon (n-i)-ème à l’entrée des étages i=1 à n-1 et une permutation
identité à la sortie.
GIF-3003 Systèmes parallèles et temps réel
138