[0001] La présente invention concerne un procédé d'établissement de routes de communication
entre noeuds d'une grappe d'ordinateurs, un programme d'ordinateur correspondant et
une grappe d'ordinateurs.
[0002] L'invention s'applique plus particulièrement à un procédé d'établissement de routes
de communication entre noeuds d'une grappe d'ordinateurs du type comportant :
- des noeuds,
- un réseau d'interconnexion des noeuds comportant :
- des commutateurs à une partie desquels les noeuds sont connectés,
- des liens de communication entre les commutateurs,
la grappe d'ordinateurs présentant une certaine topologie définissant l'agencement
relatif des noeuds, des commutateurs et des liens de communication,
le procédé comportant :
- l'obtention de la topologie de la grappe d'ordinateurs, avec des premiers numéros
globaux respectivement assignés aux noeuds,
- la mise en oeuvre, pour chaque paire de noeuds, d'un algorithme conçu pour fournir
une route de communication entre les premier et deuxième noeuds de la paire, à partir
de numéros respectifs de ces noeuds et de la topologie de la grappe d'ordinateurs,
l'algorithme étant conçu pour faire passer par un même lien de communication des routes
dont les premiers ou deuxièmes noeuds ont des numéros périodiques suivant une périodicité
supérieure à un.
[0003] Il peut être souhaité de prévoir un procédé du type précité qui permette d'augmenter
les performances de la grappe d'ordinateurs.
[0004] L'invention a donc pour objet un procédé d'établissement de routes de communication
entre noeuds d'une grappe d'ordinateurs du type précité, caractérisé en ce qu'il comporte
en outre :
- la sélection de noeuds,
- la numérotation des noeuds pour leur assigner des deuxièmes numéros globaux, différents
des premiers numéros globaux pour au moins une partie des noeuds sélectionnés, les
deuxièmes numéros globaux des noeuds sélectionnés étant successivement séparés de
valeurs chacune différente de la périodicité de chacun d'au moins une partie des liens
de communication,
et en ce que, pour la mise en oeuvre de l'algorithme, les noeuds sont repérés par
leurs deuxièmes numéros globaux.
[0005] Ainsi, grâce à l'invention, l'algorithme est mis en oeuvre à partir de numéros des
noeuds dans lesquels les numéros des noeuds sélectionnés ne présentent pas la périodicité
d'au moins une partie des liens de communication. Cela permet de s'assurer que des
routes rejoignant ces noeuds sélectionnés ne passent pas toutes par un de ces liens
de communication. Ainsi, on s'assure que l'utilisation des liens de communication
est bien équilibrée pour les noeuds sélectionnés. En sélectionnant des noeuds qui
échangent une grande quantité de données, il est possible, grâce à cet équilibrage,
de réduire les risques qu'un même lien de communication desserve beaucoup de noeuds
sélectionnés et donc que ce lien de communication soit congestionné.
[0006] De façon optionnelle, les noeuds sélectionnés présentent une caractéristique commune,
dont les autres noeuds sont dépourvus.
[0007] De façon optionnelle également, la caractéristique commune est que les noeuds sélectionnés
sont des interfaces réseau optiques.
[0008] De façon optionnelle également, la caractéristique commune est que les noeuds sélectionnés
appartiennent à des ordinateurs de stockage.
[0009] De façon optionnelle également, la caractéristique commune est que les noeuds sélectionnés
appartiennent à des ordinateurs de calcul comportant un processeur graphique.
[0010] De façon optionnelle également, les deuxièmes numéros globaux des noeuds sélectionnés
sont successifs.
[0011] De façon optionnelle également, le procédé comporte en outre :
- la détermination de la périodicité de chacun d'au moins une partie des liens de communication,
- la détermination de valeurs destinées à successivement séparer les deuxièmes numéros
globaux des noeuds sélectionnés, chaque valeur déterminée étant différente de chaque
périodicité déterminée.
[0012] De façon optionnelle également, les noeuds sont connectés à des ports de connexion
d'une partie des commutateurs, ces ports de connexion présentant des numéros locaux
au sein du commutateur auquel ces ports de connexion appartiennent, et dans lequel
les premiers numéros globaux sont obtenus à partir des numéros locaux.
[0013] De façon optionnelle également, les premiers numéros globaux des noeuds connectés
à des ports de connexion d'un commutateur se suivent consécutivement dans le même
ordre que les numéros locaux des ports de connexion auxquels ces noeuds sont respectivement
connectés.
[0014] De façon optionnelle également, le procédé comporte en outre l'étape suivante :
- l'exploration de la grappe d'ordinateurs pour déterminer sa topologie, les noeuds
étant numérotés suivant la première numérotation globale au cours de cette exploration.
[0015] De façon optionnelle également, la grappe d'ordinateurs est conçue pour alterner
des premières phases au cours desquelles les noeuds non sélectionnés échangent des
données entre eux, et des deuxièmes phases au cours desquelles les noeuds non sélectionnés
échangent des données avec les noeuds sélectionnés.
[0016] L'invention a également pour objet un programme d'ordinateur téléchargeable depuis
un réseau de communication et/ou enregistré sur un support lisible par ordinateur
et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions
pour l'exécution des étapes d'un procédé d'établissement de routes de communication
entre noeuds d'une grappe d'ordinateurs tel que défini précédemment, lorsque ledit
programme est exécuté sur un ordinateur.
[0017] L'invention a également pour objet une grappe d'ordinateurs comportant :
- des noeuds,
- un réseau d'interconnexion des noeuds comportant :
- des commutateurs à une partie desquels les noeuds sont connectés,
- des liens de communication entre les commutateurs,
la grappe d'ordinateur présentant une certaine topologie définissant l'agencement
relatif des noeuds, des commutateurs et des liens de communication,
la grappe d'ordinateur comportant :
- des moyens d'obtention de la topologie de la grappe d'ordinateurs, avec des premiers
numéros globaux respectivement assignés aux noeuds,
- des moyens de mise en oeuvre, pour chaque paire de noeuds, d'un algorithme conçu pour
fournir une route de communication entre les premier et deuxième noeuds de la paire,
à partir de numéros respectifs de ces noeuds et de la topologie de la grappe d'ordinateurs,
l'algorithme étant conçu pour faire passer par un même lien de communication des routes
dont les premiers ou deuxièmes noeuds ont des numéros périodiques suivant une périodicité
supérieure à un,
caractérisé en ce qu'elle comporte en outre :
- des moyens de sélection de noeuds,
- des moyens de numérotation des noeuds pour leur assigner des deuxièmes numéros globaux,
différents des premiers numéros globaux pour au moins une partie des noeuds sélectionnés,
les deuxièmes numéros globaux des noeuds sélectionnés étant successivement séparés
de valeurs différentes de la périodicité respective de chacun d'au moins une partie
des liens de communication,
et en ce que, pour la mise en oeuvre de l'algorithme, les noeuds sont repérés par
leurs deuxièmes numéros globaux.
[0018] L'invention sera mieux comprise à l'aide de la description qui va suivre, donnée
uniquement à titre d'exemple et faite en se référant aux dessins annexés dans lesquels
:
- la figure 1 représente schématiquement la structure générale d'une grappe d'ordinateurs,
selon un mode de réalisation de l'invention,
- la figure 2 illustre les étapes successives d'un procédé d'établissement de routes
de communication entre noeuds de la grappe d'ordinateurs de la figure 1, selon un
mode de réalisation de l'invention, et
- la figure 3 illustre les étapes successives d'un procédé d'établissement de routes
de communication entre noeuds de la grappe d'ordinateurs de la figure 1, selon un
autre mode de réalisation de l'invention.
[0019] En référence à la figure 1, une grappe d'ordinateurs 100 (« computer cluster » en
anglais) mettant en oeuvre l'invention va à présent être décrite.
[0020] La grappe d'ordinateurs 100 regroupe des ordinateurs 102, 104 indépendants apparaissant
de l'extérieur comme un calculateur unique à très forte puissance de calcul, dit calculateur
à haute performance de traitement ou calculateur HPC (de l'anglais « High Performance
Computing »). Chaque ordinateur 102, 104 comporte, comme cela est connu en soi, une
unité de traitement centrale (« central processing unit » en anglais), une mémoire
principale (« main memory » en anglais) dans laquelle des instructions pour l'unité
de traitement centrale sont destinées à être enregistrées et au moins une interface
réseau.
[0021] Les interfaces réseau forment respectivement des noeuds 106
0...106
63 de la grappe d'ordinateurs 100. Plusieurs interfaces réseau (et donc plusieurs noeuds
106
0...106
63) peuvent appartenir à un même ordinateur 102, 104, ou bien, comme dans l'exemple
décrit, chaque ordinateur 102, 104 peut ne comporter qu'une seule interface réseau
formant un des noeuds 106
0...106
63.
[0022] Toujours dans l'exemple décrit, les ordinateurs 102, 104 de la grappe d'ordinateurs
100 comportent des ordinateurs de calcul 102 et des ordinateurs de stockage 104, ces
derniers comportant des mémoires de masse telles que des disques durs pour l'enregistrement
de données utilisées et/ou produites par les ordinateurs de calcul 102.
[0023] La grappe d'ordinateurs 100 comporte en outre un serveur d'administration 108. Le
serveur d'administration 108 est en particulier conçu pour dialoguer avec des clients
souhaitant utiliser la grappe d'ordinateurs 100, cette dernière étant alors vue par
les clients comme une machine unique. Le serveur d'administration 108 est en outre
conçu pour ordonnancer, entre les ordinateurs de calcul 102, des tâches reçues des
clients. Le serveur d'administration 108 est en outre conçu pour mettre en oeuvre
un procédé d'établissement de routes de communication entre noeuds 106
0...106
63 de la grappe d'ordinateurs, comme cela sera décrit par la suite. Pour cela, le serveur
d'administration 108 comporte des moyens pour réaliser les étapes qui seront décrites
par la suite. Dans l'exemple décrit, le serveur d'administration 108 comporte, comme
cela est connu en soi, une unité de traitement centrale et une mémoire principale
dans laquelle des instructions pour l'unité de traitement centrale sont destinées
à être enregistrées. Ainsi, dans l'exemple décrit, les moyens sont des moyens logiciels,
sous la forme de programme d'ordinateur téléchargeable depuis un réseau de communication
et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur,
comprenant des instructions pour l'exécution des étapes du procédé lorsque ledit programme
d'ordinateur est exécuté sur le serveur d'administration. Alternativement, tout ou
partie de ces moyens pourraient être des moyens matériels micro programmés ou micro
câblés dans des circuits intégrés dédiés. Ainsi, en variante, le serveur d'administration
108 pourrait être un dispositif électronique composé uniquement de circuits numériques
(sans programme d'ordinateur) pour la réalisation des mêmes actions.
[0024] Dans d'autres modes de réalisation de l'invention, les différentes fonctions du serveur
d'administration 108 pourraient être réparties entre plusieurs dispositifs, par exemple
entre plusieurs ordinateurs.
[0025] Une telle grappe d'ordinateurs 100 permet la répartition de traitements complexes
et/ou de calculs parallèles sur au moins une partie des ordinateurs de calcul 102.
[0026] Par la suite, on appellera « noeuds de calcul », respectivement « noeuds de stockage
», les noeuds formés d'une interface réseau appartenant à un ordinateur de calcul
102, respectivement de stockage 104.
[0027] Dans l'exemple décrit, les interfaces réseau des ordinateurs de stockage 104 sont
des interfaces réseau optiques, tandis que les interfaces réseau des ordinateurs de
calcul 102 sont des interfaces réseau électriques présentant un débit inférieur à
celui des interfaces réseau optiques. En effet, les ordinateurs de stockage 104 échangent
en général plus de données que les ordinateurs de calcul 102.
[0028] La grappe d'ordinateurs 100 comporte en outre un réseau 110 d'interconnexion des
noeuds 106
0...106
63.
[0029] Le réseau 110 comporte des commutateurs 112
1...112
14 et des liens de communication 114 entre les commutateurs 112
1...112
14. Chaque commutateur 112
1...112
14 présente plusieurs ports de connexion (représentés par des petits carrés sur la figure
1) et chaque lien de communication 114 est connecté entre deux ports de connexion
de deux commutateurs 112
1...112
14 respectifs.
[0030] Les noeuds 106
0...106
63 sont respectivement connectés à des ports de connexion d'une partie des commutateurs
112
1...112
14, appelés par la suite commutateurs externes 112
1...112
4, 112
11...112
14. Les autres commutateurs 112
5...112
10 seront appelés par la suite commutateurs internes.
[0031] La grappe d'ordinateurs 100 présente une certaine topologie définissant l'agencement
relatif des noeuds 106
0...106
63, des commutateurs 112
1...112
14 et des liens de communication 114. Dans l'exemple décrit, la topologie est celle
d'un arbre imposant parallèle généralisé (« Parallel Generalized Fat Tree » ou PGFT
en anglais). La topologie d'un PGFT est définie de manière générale par la nomenclature
suivante : PGFT(h ; m
1...m
h ; w
1...w
h ; p
1...p
h), où h est le nombre de niveaux entre lesquels les commutateurs 112
1...112
14 sont répartis, m
n est le nombre de commutateurs de niveau n-1 (ou bien de noeuds pour le premier niveau)
connectés à chaque commutateur de niveau n, w
n est le nombre de commutateurs de niveau n connectés à chaque commutateur de niveau
n-1 (ou bien à chaque noeud pour le premier niveau) et p
n est le nombre de liens de communication parallèles utilisés entre les niveaux n et
n-1 (ou bien entre le niveau n et les noeuds pour le premier niveau).
[0032] Les commutateurs externes 112
1...112
4, 112
11...112
14, auxquels des noeuds 106
0...106
63 sont connectés, forment donc les commutateurs de premier niveau. Par ailleurs, dans
la topologie PGFT, chaque lien de communication 114 est connecté entre deux commutateurs
de niveaux hiérarchiques consécutifs.
[0033] Pour chaque commutateur 112
1...112
14, les ports de connexion donnant sur un niveau inférieur (ou bien sur les noeuds 106
0... 106
63 dans le cas des commutateurs externes 112
1...112
4, 112
11...112
14) seront appelés par la suite « ports de connexion inférieurs », tandis que les ports
de connexion donnant sur un niveau supérieur seront appelés par la suite « ports de
connexion supérieurs ».
[0034] Dans l'exemple décrit, le PGFT est défini par la nomenclature PGFT(3 ; 8, 4, 2 ;
1, 2, 1 ; 1, 1, 4). Ainsi, huit noeuds sont connectés à chaque commutateur externe
112
1...112
4, 112
11...112
14, ce dernier comportant donc huit ports de connexion inférieurs.
[0035] Les ports de connexion inférieurs et les ports de connexion supérieurs de chaque
commutateur 112
1...112
14 sont numérotés, au sein de ce commutateur 112
1...112
14, suivant une numérotation locale. Les numéros locaux des ports de connexion inférieurs
et les numéros locaux des ports de connexion supérieurs sont indiqués sur la figure
1 dans les petits carrés. En particulier, les ports de connexion inférieurs de chaque
commutateur externe 112
1...112
4, 112
11...112
14 sont numérotés à chaque fois suivant une numérotation locale leur assignant respectivement,
dans l'exemple décrit, les numéros locaux de 0 à 7.
[0036] Toujours dans l'exemple décrit, les commutateurs externes 112
1...112
4, 112
11...112
14 sont tous identiques, au moins en ce qui concerne leurs ports de connexion inférieurs.
En outre, dans l'exemple décrit, les ports de connexion inférieurs des commutateurs
externes 112
1...112
4, 112
11...112
14 portant le numéro local 7 sont des ports optiques auxquels les interfaces réseau
optiques (formant les noeuds de stockage 106
7, 106
15, 106
23, 106
31, 106
39, 106
47, 106
55, 106
63) des ordinateurs de stockage 104 sont connectées. Les autres ports de connexion inférieurs
des commutateurs externe 112
1...112
4, 112
11...112
14 sont des ports de connexion électriques auxquels les noeuds de calcul sont connectés.
Les ports de connexion (inférieurs et supérieurs) des commutateurs internes 112
5...112
10 sont également des ports de connexion électriques dans l'exemple décrit.
[0037] Le serveur d'administration 108 est conçu pour mettre en oeuvre un algorithme d'établissement
de routes de communication entre noeuds. Plus précisément, cet algorithme est conçu
pour fournir une route de communication entre un premier noeud 106
0... 106
63 et un deuxième noeud 106
0... 106
63 à partir de numéros respectifs de ces noeuds 106
0...106
63 et de la topologie de la grappe d'ordinateurs 100.
[0038] Dans l'exemple décrit, l'algorithme utilisé est l'algorithme D-mod-k, qui attend
un numéro, noté s, d'un premier noeud, appelé noeud source, et un numéro, noté d,
d'un deuxième noeud, appelé noeud destination, pour définir une route de communication
entre ces deux noeuds.
[0039] En partant du noeud source, la route de communication passe tout d'abord par le commutateur
externe 112
1...112
4, 112
11...112
14 auquel le noeud source est connecté.
[0040] Il est ensuite déterminé, au cours d'une étape de test, s'il est nécessaire de passer
par un commutateur de niveau supérieur pour atteindre le noeud destination.
[0041] Si c'est le cas, la formule suivante est utilisée pour sélectionner un port de connexion
supérieur (et donc le commutateur de niveau supérieur par lequel passer) :

où [ ] représente la partie entre et mod représente le modulo.
[0042] Sinon, le commutateur de niveau inférieur sur le plus court chemin vers le noeud
destination est sélectionné, puis la formule suivante est utilisée pour sélectionner,
dans le cas où plusieurs liens parallèles mènent au commutateur de niveau inférieur
sélectionné, un port de connexion inférieur :

où [ ] représente la partie entière et mod représente le modulo.
[0043] L'algorithme retourne alors à l'étape de test.
[0044] Par exemple, dans l'exemple décrit, lorsqu'il est nécessaire de passer d'un commutateur
de premier niveau 112
1...112
4, 112
11...112
14 à un commutateur de deuxième niveau 112
5, 112
6, 112
9, 112
10, l'algorithme D-mod-k donne la formule [d] mod 2, qui est périodique de période deux.
Pour passer d'un commutateur de deuxième niveau 112
5, 112
6, 112
9, 112
10 à un commutateur de troisième niveau 112
7, 112
8, l'algorithme D-mod-k donne la formule [d/2] mod 4, qui est périodique de période
huit.
[0045] L'algorithme est ainsi conçu pour faire passer par un même lien de communication
des routes dont les noeuds destination ont des numéros périodiques suivant une périodicité
supérieure (dans le sens « strictement supérieure ») à un.
[0046] En variante, l'algorithme S-mod-k pourrait être utilisé. Dans ce cas, des formules
similaires à celles de l'algorithme D-mod-k sont utilisées, en remplaçant le numéro
s par le numéro d. L'algorithme S-mod-k est donc également conçu pour faire passer
par un même lien de communication des routes dont les noeuds source ont des numéros
périodiques suivant une périodicité supérieure (toujours dans le sens « strictement
supérieure ») à un.
[0047] En référence à la figure 2, un premier procédé 200 d'établissement et d'utilisation
de routes de communication entre noeuds 106
0... 106
63 de la grappe d'ordinateurs 100 va à présent être décrit.
[0048] Au cours d'une étape 202, le serveur d'administration 108 met en oeuvre une exploration
(« discovery » en anglais) de la grappe d'ordinateurs 100. L'exploration permet de
déterminer la topologie de la grappe d'ordinateurs 100. En outre, au cours de l'exploration,
les noeuds 106
0...106
63 trouvés sont numérotés suivant une première numérotation globale assignant aux noeuds
106
0... 106
63 des premiers numéros globaux respectifs. Dans l'exemple décrit, les premiers numéros
globaux sont obtenus à partir des numéros locaux. Plus précisément, à chaque fois
qu'un commutateur externe 112
1...112
4, 112
11...112
14 est découvert, les noeuds qui lui sont connectés sont numérotés consécutivement,
à la suite, le cas échéant, des premiers numéros globaux déjà assignés, dans l'ordre
de la numérotation locale des ports de connexion inférieurs auxquels ces noeuds sont
connectés.
[0049] Par exemple, si le commutateur externe 112
1 est découvert en premier, les premiers numéros globaux 0 - 7 seront respectivement
assignés aux noeuds 106
0...106
7. Si le commutateur externe 112
2 est ensuite découvert, les premiers numéros globaux 8 - 15 seront respectivement
assignés aux noeuds 106
8...106
15, et ainsi de suite. Il sera donc apprécié que, dans le cadre de la topologie de l'exemple
décrit, les premiers numéros globaux des noeuds de stockage 106
7, 106
15, 106
23, 106
31, 106
39, 106
47, 106
55, 106
63 sont périodiques de périodicité huit.
[0050] Or, comme indiqué précédemment, la formule [d/2] mod 4 de sélection de ports de connexion
supérieurs pour passer du deuxième niveau au troisième niveau est également périodique
de périodicité huit. Ainsi, si l'algorithme était utilisé à partir des premiers numéros
globaux, toutes les routes partant de n'importe lequel des noeuds dont les premiers
numéros globaux sont 0 - 31 et arrivant aux noeuds de stockage 106
7, 106
15, 106
23, 106
31, 106
39, 106
47, 106
55, 106
63 passeraient par un même lien de communication 114 s'étendant entre les deuxième et
troisième niveaux. Ainsi, ce lien de communication 114 devrait supporter toutes les
routes vers quatre noeuds de stockage 106
39, 106
47, 106
55, 106
63. Or, les noeuds de stockage 106
7, 106
15, 106
23, 106
31, 106
39, 106
47, 106
55, 106
63 sont en général plus sollicités que les noeuds de calcul, de sorte que ce lien de
communication 114 risquerait d'être très congestionné. En outre, le fonctionnement
de la grappe d'ordinateurs 100 pour réaliser une tâche alterne généralement des phases
de calculs au cours desquelles les noeuds de calculs échangent des données entre eux,
et des phases de sauvegarde et/ou de récupération de données au cours desquelles les
noeuds de calculs échangent des données avec les noeuds de stockage pour enregistrer
et/ou lire des données dans les noeuds de stockage. Ainsi, lors des phases des phases
de sauvegarde et/ou de récupération de données, chaque lien de communication 114 emprunté
par plusieurs routes reliant chacune un noeud de calcul à un noeud de stockage serait
fortement sollicité et risquerait d'être très congestionné.
[0051] Suite à l'étape d'exploration 202, le serveur d'administration 108 obtient donc,
au cours d'une étape 204, la topologie de la grappe d'ordinateurs 100, avec les premiers
numéros globaux respectivement assignés aux noeuds 106
0...106
63.
[0052] Au cours d'une étape 206, le serveur d'administration 108 sélectionne des noeuds.
Dans l'exemple décrit, les noeuds de stockage 106
7, 106
15, 106
23, 106
31, 106
39, 106
47, 106
55, 106
63 sont sélectionnés. Les noeuds à sélectionner sont par exemple indiqués au serveur
d'administration 108 par un utilisateur humain au travers d'une interface homme-machine.
Alternativement, le serveur d'administration 108 pourrait être conçu pour déterminer
automatiquement lesquels parmi les noeuds 106
0... 106
63 sont connectés à des ports de connexion optiques.
[0053] De manière générale, les noeuds sélectionnés sont de préférence ceux présentant tous
une caractéristique commune (qui peut être par exemple détectée automatiquement),
tandis que les autres noeuds sont dépourvus de cette caractéristique. Dans l'exemple
décrit, cette caractéristique est que l'interface réseau formant le noeud sélectionné
est une interface réseau optique. Alternativement, d'autres caractéristiques pourraient
être prises en compte. Par exemple, la caractéristique commune pourrait être que le
noeud appartient à un ordinateur de stockage. Par exemple encore, la caractéristique
commune pourrait être la présence d'un processeur graphique (« Graphics Processing
Unit » en anglais) dans l'ordinateur de calcul.
[0054] Au cours d'une étape 208, le serveur d'administration 108 numérote les noeuds 106
0... 106
63 suivant une deuxième numérotation globale, différente de la première numérotation
globale au moins pour une partie des noeuds sélectionnés 106
7, 106
15, 106
23, 106
31, 106
39, 106
47, 106
55, 106
63. Dans cette deuxième numérotation, des deuxièmes numéros globaux sont respectivement
assignés aux noeuds 106
0...106
63, de sorte que les deuxièmes numéros globaux des noeuds sélectionnés 106
7, 106
15, 106
23, 106
31, 106
39, 106
47 soient successivement séparés de valeurs chacune différente de la périodicité de
chacun d'au moins une partie des liens de communication 114, de préférence de tous
les liens de communication 114.
[0055] Dans l'exemple décrit, les deuxièmes numéros globaux des noeuds sélectionnés 106
7, 106
15, 106
23, 106
31, 106
39, 106
47 sont choisis consécutifs, de sorte que les valeurs les séparant sont toutes égales
à un et de ce fait obligatoirement différentes des périodicités de tous les liens
de communication 114.
[0056] Par exemple, l'algorithme suivant (comportant des étapes A à F) peut être utilisé
pour passer de la première numérotation globale à la deuxième numérotation globale.
- A : Un compteur est initialisé à zéro.
- B : Un type de noeud qui n'a pas encore été sélectionné est sélectionné. Si tous les
types de noeud ont été sélectionnés, l'algorithme est terminé.
- C : Le premier noeud du type sélectionné d'après l'ordre de la première numérotation
est pris comme noeud en cours.
- D : La valeur du compteur est assignée au noeud en cours en tant que deuxième numéro
global.
- E : Le compteur est incrémenté.
- F : Le noeud du type sélectionné qui suit d'après l'ordre de la première numérotation
est pris comme noeud en cours et on retourne à l'étape D. Si tous les noeuds du type
sélectionné ont été parcourus, on retourne à l'étape B.
[0057] Cet algorithme est utilisé avec au moins deux types de noeuds : un premier type de
noeud formé par les noeuds sélectionnés et un deuxième type de noeud formé des noeuds
non sélectionnés.
[0058] Ainsi, dans l'exemple décrit, dans la deuxième numérotation globale, les noeuds de
calcul sont numérotés de 0 à 55 et les noeuds de stockage sont numérotés de 56 à 63.
[0059] Au cours d'une étape 210, le serveur d'administration 108 met en oeuvre l'algorithme
en l'exécutant pour chaque paire de noeuds, les noeuds étant repérés par leurs deuxièmes
numéros globaux.
[0060] Au cours d'une étape 212, le serveur d'administration 108 implémente dans le réseau
110 les routes fournies par l'algorithme à l'étape 210. Dans l'exemple décrit, les
routes sont enregistrées dans des tables de routage transmises à chaque commutateur
112
1...112
14.
[0061] Au cours d'une étape 214, le serveur d'administration 108 reçoit, de la part d'un
client, une requête pour l'exécution d'une tâche.
[0062] Au cours d'une étape 216, au moins une partie des ordinateurs 102, 104 exécutent
la tâche requise en communiquant entre eux au travers du réseau 110 utilisant les
routes de communication établies à l'étape 210.
[0063] En référence à la figure 3, un deuxième procédé 300 d'établissement et d'utilisation
de routes de communication entre noeuds 106
0...106
63 de la grappe d'ordinateurs 100 va à présent être décrit.
[0064] Le deuxième procédé 300 comporte les étapes 202, 204, 206 comme pour le premier procédé
200.
[0065] Après l'étape 206, le deuxième procédé 300 comporte les étapes 302 à 306 suivantes.
[0066] Au cours de l'étape 302, le serveur d'administration 108 détermine la périodicité
de chacun d'au moins une partie des liens de communication 114, de préférence tous.
Par exemple, cette périodicité est déterminée à partir des formules de l'algorithme
utilisé.
[0067] Au cours de l'étape 304, le serveur d'administration 108 détermine des valeurs destinées
à successivement séparer les deuxièmes numéros globaux des noeuds sélectionnés 106
7, 106
15, 106
23, 106
31, 106
39, 106
47, 106
55, 106
63, chaque valeur déterminée étant différente de chaque périodicité déterminée.
[0068] Par exemple, dans l'exemple décrit, les liens de communication 114 s'étendant entre
le premier et le deuxième niveau ont une périodicité de deux, tandis que les liens
de communication 114 s'étendant entre le deuxième niveau et le troisième niveau ont
une périodicité de huit. Ainsi, les valeurs destinées à successivement séparer les
deuxièmes numéros globaux des noeuds sélectionnés 106
7, 106
15, 106
23, 106
31, 106
39, 106
47, 106
55, 106
63 sont chacune différentes de deux et de huit. Par exemple, il est possible de prendre
des valeurs valant toutes un, comme dans le procédé 200, ou bien des valeurs différentes
les unes des autres, tant qu'elles sont différentes de deux et huit.
[0069] Au cours de l'étape 306, le serveur d'administration 108 numérote les noeuds 106
0...106
63 suivant une deuxième numérotation globale, différente de la première numérotation
globale au moins pour une partie des noeuds sélectionnés. Dans cette deuxième numérotation,
les deuxièmes numéros globaux des noeuds sélectionnés 106
7, 106
15, 106
23, 106
31, 106
39, 106
47 sont successivement séparés des valeurs déterminées à l'étape 304.
[0070] Le deuxième procédé 300 comporte ensuite les étapes 210 à 216 décrites précédemment.
[0071] Il apparaît clairement qu'un procédé tel que ceux décrits précédemment permet de
s'assurer que l'utilisation des liens de communication est bien équilibrée pour les
noeuds sélectionnés.
[0072] On notera par ailleurs que l'invention n'est pas limitée aux modes de réalisation
décrits précédemment. Il apparaîtra en effet à l'homme de l'art que diverses modifications
peuvent être apportées aux modes de réalisation décrits ci-dessus, à la lumière de
l'enseignement qui vient de lui être divulgué. Dans la présentation détaillée de l'invention
qui est faite précédemment, les termes utilisés ne doivent pas être interprétés comme
limitant l'invention aux modes de réalisation exposés dans la présente description,
mais doivent être interprétés pour y inclure tous les équivalents dont la prévision
est à la portée de l'homme de l'art en appliquant ses connaissances générales à la
mise en oeuvre de l'enseignement qui vient de lui être divulgué.
1. Procédé (200 ; 300) d'établissement de routes de communication entre noeuds (106
0... 106
63) d'une grappe d'ordinateurs (100) comportant :
- des noeuds (1060...10663),
- un réseau (110) d'interconnexion des noeuds (1060...10663) comportant :
• des commutateurs (1121...11214) à une partie desquels les noeuds (1060...10663) sont connectés,
• des liens de communication (114) entre les commutateurs (1121...11214),
la grappe d'ordinateurs (100) présentant une certaine topologie définissant l'agencement
relatif des noeuds (106
0...106
63), des commutateurs (112
1...112
14) et des liens de communication (114),
le procédé (200 ; 300) comportant :
- l'obtention (204) de la topologie de la grappe d'ordinateurs (100), avec des premiers
numéros globaux respectivement assignés aux noeuds (1060... 10663),
- la mise en oeuvre (210), pour chaque paire de noeuds (1060... 10663), d'un algorithme conçu pour fournir une route de communication entre les premier
et deuxième noeuds de la paire, à partir de numéros respectifs de ces noeuds et de
la topologie de la grappe d'ordinateurs (100), l'algorithme étant conçu pour faire
passer par un même lien de communication (114) des routes dont les premiers ou deuxièmes
noeuds ont des numéros périodiques suivant une périodicité supérieure à un,
caractérisé en ce qu'il comporte en outre :
- la sélection (206) de noeuds (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663),
- la numérotation (208) des noeuds (1060...10663) pour leur assigner des deuxièmes numéros globaux, différents des premiers numéros
globaux pour au moins une partie des noeuds sélectionnés (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663), les deuxièmes numéros globaux des noeuds sélectionnés (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663) étant successivement séparés de valeurs chacune différente de la périodicité de
chacun d'au moins une partie des liens de communication (114),
et
en ce que, pour la mise en oeuvre de l'algorithme, les noeuds (106
0...106
63) sont repérés par leurs deuxièmes numéros globaux.
2. Procédé (200 ; 300) selon la revendication 1, dans lequel les noeuds sélectionnés
(1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663) présentent une caractéristique commune, dont les autres noeuds sont dépourvus.
3. Procédé (200 ; 300) selon la revendication 2, dans lequel la caractéristique commune
est que les noeuds sélectionnés (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663) sont des interfaces réseau optiques.
4. Procédé (200 ; 300) selon la revendication 2 ou 3, dans lequel la caractéristique
commune est que les noeuds sélectionnés (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663) appartiennent à des ordinateurs de stockage (104).
5. Procédé (200 ; 300) selon la revendication 2, dans lequel la caractéristique commune
est que les noeuds sélectionnés (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663) appartiennent à des ordinateurs de calcul (102) comportant un processeur graphique.
6. Procédé (200) selon l'une quelconque des revendications 1 à 5, dans lequel les deuxièmes
numéros globaux des noeuds sélectionnés (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663) sont successifs.
7. Procédé (300) selon l'une quelconque des revendications 1 à 6, comportant en outre
:
- la détermination (302) de la périodicité de chacun d'au moins une partie des liens
de communication (114),
- la détermination (304) de valeurs destinées à successivement séparer les deuxièmes
numéros globaux des noeuds sélectionnés (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663), chaque valeur déterminée étant différente de chaque périodicité déterminée.
8. Procédé (200 ; 300) selon l'une quelconque des revendications 1 à 7, dans lequel les
noeuds (1060...10663) sont connectés à des ports de connexion d'une partie des commutateurs, ces ports
de connexion présentant des numéros locaux au sein du commutateur auquel ces ports
de connexion appartiennent, et dans lequel les premiers numéros globaux sont obtenus
à partir des numéros locaux.
9. Procédé (200 ; 300) selon la revendication 8, dans lequel les premiers numéros globaux
des noeuds (1060...10663) connectés à des ports de connexion d'un commutateur se suivent consécutivement dans
le même ordre que les numéros locaux des ports de connexion auxquels ces noeuds (1060...10663) sont respectivement connectés.
10. Procédé (200 ; 300) selon l'une quelconque des revendications 1 à 9, comportant en
outre l'étape suivante :
- l'exploration (202) de la grappe d'ordinateurs (100) pour déterminer sa topologie,
les noeuds (1060...10663) étant numérotés suivant la première numérotation globale au cours de cette exploration.
11. Procédé (200 ; 300) selon l'une quelconque des revendications 1 à 10, dans lequel
la grappe d'ordinateurs (100) est conçue pour alterner des premières phases au cours
desquelles les noeuds non sélectionnés échangent des données entre eux, et des deuxièmes
phases au cours desquelles les noeuds non sélectionnés échangent des données avec
les noeuds sélectionnés.
12. Programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré
sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions pour l'exécution des étapes d'un procédé (200 ; 300)
d'établissement de routes de communication entre noeuds (1060...10663) d'une grappe d'ordinateurs (100) selon l'une quelconque des revendications 1 à 11,
lorsque ledit programme est exécuté sur un ordinateur.
13. Grappe d'ordinateurs (100) comportant :
- des noeuds (1060... 10663),
- un réseau (110) d'interconnexion des noeuds (1060...10663) comportant :
• des commutateurs (1121...11214) à une partie desquels les noeuds (1060... 10663) sont connectés,
• des liens de communication (114) entre les commutateurs (1121...11214),
la grappe d'ordinateurs (100) présentant une certaine topologie définissant l'agencement
relatif des noeuds (106
0...106
63), des commutateurs (112
1...112
14) et des liens de communication (114),
la grappe d'ordinateurs (100) comportant :
- des moyens d'obtention de la topologie de la grappe d'ordinateurs (100), avec des
premiers numéros globaux respectivement assignés aux noeuds (1060...10663),
- des moyens de mise en oeuvre, pour chaque paire de noeuds (1060...10663), d'un algorithme conçu pour fournir une route de communication entre les premier
et deuxième noeuds de la paire, à partir de numéros respectifs de ces noeuds et de
la topologie de la grappe d'ordinateurs (100), l'algorithme étant conçu pour faire
passer par un même lien de communication (114) des routes dont les premiers ou deuxièmes
noeuds ont des numéros périodiques suivant une périodicité supérieure à un,
caractérisé en ce qu'elle comporte en outre :
- des moyens de sélection de noeuds (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663),
- des moyens de numérotation des noeuds (1060...10663) pour leur assigner des deuxièmes numéros globaux, différents des premiers numéros
globaux pour au moins une partie des noeuds sélectionnés (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663), les deuxièmes numéros globaux des noeuds sélectionnés (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663) étant successivement séparés de valeurs chacune différente de la périodicité de
chacun d'au moins une partie des liens de communication (114),
et
en ce que, pour la mise en oeuvre de l'algorithme, les noeuds (106
0...106
63) sont repérés par leurs deuxièmes numéros globaux.