(19)
(11) EP 3 531 641 A1

(12) DEMANDE DE BREVET EUROPEEN

(43) Date de publication:
28.08.2019  Bulletin  2019/35

(21) Numéro de dépôt: 19155891.5

(22) Date de dépôt:  07.02.2019
(51) Int. Cl.: 
H04L 12/931(2013.01)
H04L 12/753(2013.01)
H04L 12/751(2013.01)
(84) Etats contractants désignés:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR
Etats d'extension désignés:
BA ME
Etats de validation désignés:
KH MA MD TN

(30) Priorité: 22.02.2018 FR 1851558

(71) Demandeur: BULL SAS
78340 Les Clayes Sous Bois (FR)

(72) Inventeurs:
  • QUINTIN, Jean-Noël
    78340 Les Claye-sous-Bois (FR)
  • GLIKSBERG, John
    78340 Les Claye-sous-Bois (FR)

(74) Mandataire: Bonnet, Michel 
Cabinet Bonnet 93, rue Réaumur
75002 Paris
75002 Paris (FR)

   


(54) PROCÉDÉ D ÉTABLISSEMENT DE ROUTES DE COMMUNICATION ENTRE NOEUDS D'UNE GRAPPE D' ORDINATEURS, PROGRAMME D'ORDINATEUR ET GRAPPE D'ORDINATEURS CORRESPONDANTS


(57) Ce procédé comporte : l'obtention de la topologie d'une grappe d'ordinateurs (100), avec des premiers numéros globaux respectivement assignés à ses noeuds (1060...10663), et la mise en oeuvre, pour chaque paire de noeuds (1060...10663), d'un algorithme conçu pour fournir une route de communication entre ces noeuds, à partir de numéros respectifs de ces noeuds et de la topologie de la grappe d'ordinateurs (100).
Le procédé comporte en outre : la sélection de noeuds (1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663) et la 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). En outre, pour la mise en oeuvre de l'algorithme, les noeuds (1060... 10663) sont repérés par leurs deuxièmes numéros globaux.




Description


[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 1060...10663 de la grappe d'ordinateurs 100. Plusieurs interfaces réseau (et donc plusieurs noeuds 1060...10663) 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 1060...10663.

[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 1060...10663 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 1060...10663.

[0029] Le réseau 110 comporte des commutateurs 1121...11214 et des liens de communication 114 entre les commutateurs 1121...11214. Chaque commutateur 1121...11214 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 1121...11214 respectifs.

[0030] Les noeuds 1060...10663 sont respectivement connectés à des ports de connexion d'une partie des commutateurs 1121...11214, appelés par la suite commutateurs externes 1121...1124, 11211...11214. Les autres commutateurs 1125...11210 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 1060...10663, des commutateurs 1121...11214 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 ; m1...mh ; w1...wh ; p1...ph), où h est le nombre de niveaux entre lesquels les commutateurs 1121...11214 sont répartis, mn est le nombre de commutateurs de niveau n-1 (ou bien de noeuds pour le premier niveau) connectés à chaque commutateur de niveau n, wn 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 pn 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 1121...1124, 11211...11214, auxquels des noeuds 1060...10663 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 1121...11214, les ports de connexion donnant sur un niveau inférieur (ou bien sur les noeuds 1060... 10663 dans le cas des commutateurs externes 1121...1124, 11211...11214) 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 1121...1124, 11211...11214, 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 1121...11214 sont numérotés, au sein de ce commutateur 1121...11214, 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 1121...1124, 11211...11214 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 1121...1124, 11211...11214 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 1121...1124, 11211...11214 portant le numéro local 7 sont des ports optiques auxquels les interfaces réseau optiques (formant les noeuds de stockage 1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663) des ordinateurs de stockage 104 sont connectées. Les autres ports de connexion inférieurs des commutateurs externe 1121...1124, 11211...11214 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 1125...11210 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 1060... 10663 et un deuxième noeud 1060... 10663 à partir de numéros respectifs de ces noeuds 1060...10663 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 1121...1124, 11211...11214 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 1121...1124, 11211...11214 à un commutateur de deuxième niveau 1125, 1126, 1129, 11210, 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 1125, 1126, 1129, 11210 à un commutateur de troisième niveau 1127, 1128, 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 1060... 10663 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 1060...10663 trouvés sont numérotés suivant une première numérotation globale assignant aux noeuds 1060... 10663 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 1121...1124, 11211...11214 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 1121 est découvert en premier, les premiers numéros globaux 0 - 7 seront respectivement assignés aux noeuds 1060...1067. Si le commutateur externe 1122 est ensuite découvert, les premiers numéros globaux 8 - 15 seront respectivement assignés aux noeuds 1068...10615, 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 1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663 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 1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663 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 10639, 10647, 10655, 10663. Or, les noeuds de stockage 1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663 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 1060...10663.

[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 1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663 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 1060... 10663 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 1060... 10663 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 1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663. Dans cette deuxième numérotation, des deuxièmes numéros globaux sont respectivement assignés aux noeuds 1060...10663, de sorte que les deuxièmes numéros globaux des noeuds sélectionnés 1067, 10615, 10623, 10631, 10639, 10647 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 1067, 10615, 10623, 10631, 10639, 10647 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.
  1. A : Un compteur est initialisé à zéro.
  2. 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é.
  3. 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.
  4. D : La valeur du compteur est assignée au noeud en cours en tant que deuxième numéro global.
  5. E : Le compteur est incrémenté.
  6. 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 1121...11214.

[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 1060...10663 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 1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663, 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 1067, 10615, 10623, 10631, 10639, 10647, 10655, 10663 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 1060...10663 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 1067, 10615, 10623, 10631, 10639, 10647 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é.


Revendications

1. Procédé (200 ; 300) d'établissement de routes de communication entre noeuds (1060... 10663) 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 (1060...10663), des commutateurs (1121...11214) 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 (1060...10663) 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 (1060...10663), des commutateurs (1121...11214) 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 (1060...10663) sont repérés par leurs deuxièmes numéros globaux.
 




Dessins










Rapport de recherche












Rapport de recherche