ALLOCATION DE RESSOURCES DOMAINE TECHNIQUE DE L'INVENTION
[0001] L'invention se rapporte à la gestion d'allocations de ressources dans un calculateur, du type calculateur haute performance, aussi appelé HPC (sigle pour High Performance Computing en terminologie anglo-saxonne).
ETAT DE LA TECHNIQUE ANTERIEURE
[0002] Dans un calculateur haute performance, les calculs sont généralement mis en œuvre sur des systèmes de traitement de données appelés clusters. Un cluster comporte un ensemble de nœuds de calcul interconnectés. La connexion entre les nœuds est réalisée à l'aide de liens de communication Ethernet ou Infiniband (Ethernet et Infiniband sont des marques). Ces réseaux d'interconnexion sont généralement connectés dans une architecture pyramidale à plusieurs têtes (CLOS en anglais). Lorsque les paquets sont routés, ils peuvent passer par plusieurs commutateurs et répartir le nombre de route par liens.
[0003] L'allocation de ressources d'un nœud de calcul à un autre, lors du lancement d'un calcul, par le gestionnaire de ressource se fait de façon connue selon différents critères qui peuvent être :
des informations physiques liées aux nœuds de calcul à utiliser (nombre de processeur sur l'équipement, taille de la mémoire...) ;
des informations de localisation dans le réseau d'interconnexion
(nœuds les plus proches dans la topologie, nœuds d'Entrée/Sortie les plus proches...) ;
des informations logiques relatives aux nœuds à utiliser comme par exemple la présence d'un logiciel donné sur le stockage local du nœud ou à travers un montage réseau particulier ;
des informations environnementales comme par exemple la consommation maximale, ou moyenne, des nœuds à utiliser (par exemple en fonction du type de processeur utilisé), de la température de la zone où se trouvent les nœuds à utiliser... ;
une combinaison des critères précédents.
[0004 ] Un réseau est soit non bloquant soit bloquant. Si le réseau est bloquant, cela signifie que le nombre de route par lien physique peut être différent d'un endroit de la topologie d'interconnexion à l'autre. Si le réseau est non bloquant, cela signifie qu'il existe une route par lien physique et dans ce cas toutes les routes se valent et tous les équipements peuvent tirer le maximum du réseau d'interconnexion. Le facteur de blocage peut également apparaître sur une configuration initialement non bloquante par exemple lors de la perte d'un équipement d'interconnexion. Une configuration non bloquante pour un réseau est la plus intéressante d'un point de vue rapidité et réactivité dudit réseau mais son implémentation est extrêmement coûteuse et donc difficilement réalisable financièrement car cela reviendrait à avoir un lien dédié par couple de nœuds. Ainsi la plupart des clusters existants sont bloquants.
[ 0005 ] Cependant l'information selon laquelle un réseau est bloquant ou non, et donc le nombre de route par lien, n'est pas prise en compte au niveau de l'allocation de ressource par le gestionnaire de ressource.
EXPOSE DE L'INVENTION
[0006] L'invention vise à remédier à tout ou partie des inconvénients de l'état de la technique identifiés ci-dessus, et notamment à proposer une méthode permettant de gérer le caractère bloquant ou non bloquant du réseau pour l'allocation de ressources.
[0007 ] Dans ce dessein, un aspect de l'invention se rapporte à un procédé d'allocation, pour l'exécution d'un premier calcul, d'au moins une première ressource d'une pluralité de ressources, ladite première ressource étant reliée à un premier port d'un commutateur, ledit procédé comportant une étape d'acquisition d'un premier poids de ladite première ressource, ledit premier poids correspondant au nombre de ressources de la pluralité de ressources reliées au premier port du commutateur.
[0008 ] Les ressources sont reliées les unes aux autres et aux commutateurs au moyen de liens de communication. Les ressources sont interconnectées au sein d'un cluster, le cluster comporte généralement une pluralité de commutateurs. Chaque ressource est reliée à au moins un port d'au moins un commutateur du cluster. Le premier poids de la première ressource peut être
acquis par recherche dans une base de données, par exemple une base de données de routage. Le poids d'une ressource permet de déterminer si la ressource est un nœud bloquant ou non bloquant.
[0009] Outre les caractéristiques principales qui viennent d'être mentionnées dans le paragraphe précédent, le procédé selon l'invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon les combinaisons techniquement possibles :
le procédé comporte une étape de comparaison du premier poids de ladite première ressource avec une valeur prédéterminée. La valeur prédéterminée avec laquelle le premier poids est comparé dépend du niveau de service choisi par l'utilisateur pour l'exécution d'un calcul ; le procédé comporte une étape d'acquisition d'un deuxième poids d'une deuxième ressource de ladite pluralité de ressources, lorsque le premier poids est différent de la valeur prédéterminée. Lorsque le premier poids de la première ressource ne correspond pas à la valeur prédéterminée, une deuxième ressource est sondée afin d'en acquérir son second poids et de le comparer avec la valeur prédéterminée. Tout dépend, à nouveau, du niveau de service spécifié par l'utilisateur. Si dans son niveau de service, il est considéré que ce critère d'allocation de ressource est moins important que d'autres critères pour l'allocation de ressources, alors la première ressource pourrait tout de même être choisie ;
le procédé comporte une étape d'allocation de la première ressource pour l'exécution du premier calcul lorsque le premier poids est égal à la valeur prédéterminée ;
le procédé comporte une étape préalable de mise à jour du premier poids de ladite première ressource. Cette étape permet de tenir compte du caractère dynamique du premier poids, mais également du poids de chacune des ressources, cette étape pouvant être effectuée de façon préalable pour l'ensemble des ressources de la pluralité de ressources.
En effet, le poids d'une ressource varie dans le temps en fonction de l'état du réseau. Ainsi si certaines ressources, i.e. nœuds de calcul, tombent, un port de commutateur voit son nombre de ressources
connectées à ce commutateur diminuer. Les liens d'interconnexion entre commutateurs ont aussi leur importance dans la mesure où si un tel lien tombe, les routes devront être réparties sur les liens restant, ce qui peut introduire un déséquilibre dans le nombre de routes par lien. Grâce à cette étape préalable, la variation dynamique de l'état du réseau et du nombre de route par lien est prise en compte pour l'allocation de ressources.
BREVE DESCRIPTION DES FIGURES
[0010] D'autres caractéristiques et avantages de l'invention ressortiront à la lecture de la description qui suit, en référence aux figures annexées, qui illustrent :
la figure 1 , une vue schématique d'un exemple de configuration d'un réseau d'interconnexion pour l'exécution d'un procédé selon un mode de réalisation de l'invention ;
la figure 2, une vue schématique des ports d'un commutateur du réseau d'interconnexion de la figure 1 ;
la figure 3, une vue schématique des liens physiques au sein du réseau d'interconnexion de la figure 1 ;
la figure 4 illustre de façon schématique un exemple de réalisation des étapes d'un procédé d'allocation d'une première ressource pour l'exécution d'un calcul selon un mode de réalisation de l'invention.
[0011] Pour plus de clarté, les éléments identiques ou similaires sont repérés par des signes de référence identiques sur l'ensemble des figures.
DESCRIPTION DETAILLEE D'UN MODE DE REALISATION
[0012] A la figure 1 est illustré un exemple de configuration d'un réseau d'interconnexion, dans lequel la connexion entre les nœuds de calcul Rn, i.e. les ressources d'un cluster, est réalisée à l'aide de liens de communication Infiniband. Les nœuds de calcul sont reliés les uns aux autres au moyen de commutateurs (appelés switch en terminologie anglo-saxonne). Ces commutateurs comportent des ports de connexion.
[0013] Dans cet exemple, la topologie du réseau est dite all-to-all (tous-vers- tous). Cinq commutateurs 2 InfiniBand (un des types de réseau d'interconnexion), ayant chacun 1 8 ports entrée et sortie, sont chacun reliés à 18 nœuds de calculs.
En outre, chacun des commutateurs InfiniBand est relié vers chacun des autres commutateurs par un lien InfiniBand, i.e. au total quatre liens partent d'un commutateur.
[0014 ] Dans cette configuration, on choisit de relier chacun des commutateurs à chacun des autres commutateurs de la topologie au moyen de trois liens 3 (représenté par un seul trait sur la figure 1 ). Ainsi au total, douze liens sortent d'un commutateur dans cette topologie vers les autres commutateurs et dix-huit sortent vers les dix-huit nœuds de calcul.
[0015] La figure 2 illustre les ports d'un commutateur Infiniband de la topologie de la figure 1 . Ce commutateur dispose au total de 36 ports : 18 vers les nœuds de calcul (Ri à R-is) et 18 destinés aux autres commutateurs de la topologie. Sur les 18 ports destinés aux autres commutateurs de la topologie, seuls 12 sont utilisés dans cet exemple de réalisation. Un lien physique est partagé entre deux nœuds, i.e. entre un nœud destiné aux nœuds de calcul et un nœud destiné aux autres commutateurs de la topologie, i.e. entre un nœud d'entrée et un nœud de sortie. On observe sur la figure 2 que dans cette configuration six liens vers les commutateurs Infiniband sont utilisés de manière exclusive par six nœuds de calcul et douze liens vers les commutateurs Infiniband sont utilisés par douze nœuds de calcul de manière partagée. Cette configuration est définie par l'algorithme de routage qui définit comment les paquets de données passent d'un commutateur à un autre, et donc qui définit les liens utilisés pour atteindre une destination à partir d'une source. On observe ainsi que certains nœuds sont privilégiés et que d'autres doivent partager leurs ressources avec au moins un autre nœud (on pourrait avoir des cas « pires », avec certains liens en usage unique et d'autres liens partagés avec plus de deux nœuds).
[0016] L'information du nombre de routes par liens physique est une information disponible au niveau du gestionnaire de routage de l'infrastructure d'interconnexion, c'est-à-dire qu'il est possible de savoir combien de routes passent par un lien physique donné et également à quels « nœuds » ces routes correspondent. Il est ainsi possible de connaître de manière précise quels sont les nœuds « privilégiés » (i.e. avec le plus petit nombre de route par lien physique) versus les nœuds moins privilégiés. Cette information est ainsi apportée au niveau
du gestionnaire de ressources en charge d'allouer des ressources (en général des nœuds de calcul) selon des critères donnés.
[0017 ] L'objectif est donc de passer cette information de niveau de privilège d'un nœud en fonction du nombre de routes présentes sur les liens du réseau d'interconnexion permettant de l'accéder. Ce critère peut également être utilisé pour définir des « privilèges » entre les nœuds de calcul et certains composants du calculateur comme par exemple la partie où se trouve le stockage (entrées/sorties - E/S) et ainsi favoriser les nœuds qui auront le moins à partager des liens physiques pour accéder aux données.
[0018] La figure 3 illustre un exemple de câblage physique du réseau d'interconnexion comportant les cinq commutateurs Infiniband (Ci à Cs) illustré en figure 1 . Chacun des commutateurs est relié à un autre commutateur du réseau au moyen de trois liens partant d'un nœud Ib Link d'un commutateur vers un nœud Ib link d'un autre commutateur. Dans cette configuration, neuf nœuds (Ni à N9) ont un plus petit nombre de route par lien physique comparé aux autres nœuds de la topologie. Ces neuf nœuds se voient ainsi attribués un poids représentatif de cette caractéristique, par exemple un poids nul, afin d'indiquer au gestionnaire de ressource pour l'allocation de ressource pour la réalisation d'un calcul qu'il conviendrait de privilégier ces neuf nœuds pour lancer un travail.
[0019] La figure 4 illustre de façon schématique un exemple de réalisation des étapes d'un procédé d'allocation d'une première ressource pour l'exécution d'un calcul.
[0020] Le procédé comporte une étape préalable E0 de mise à jour du premier poids de la première ressource. Le premier poids correspond au nombre de ressources connectées au premier port du commutateur auquel est relié la première ressource au sein d'un réseau d'interconnexion. La mise à jour se fait par réécriture par exemple dans la table de routage du réseau qui recense le nombre de routes par lien physique du réseau une fois que ce réseau a été parcouru.
[0021] Le procédé comporte également une étape E1 qui correspond à l'acquisition du premier poids de la première ressource. Cette étape d'acquisition peut se faire par lecture au sein d'une base de données de routage du réseau. Le
procédé comporte ensuite une étape E2 de comparaison du premier poids avec une valeur prédéterminée qui correspond au niveau de service par exemple.
[0022 ] En fonction du résultat de l'étape E2 de comparaison du premier poids avec la valeur prédéterminée, le procédé comporte soit :
une étape E3 d'allocation de la première ressource pour l'exécution du premier calcul lorsque le premier poids est égal à la valeur prédéterminée ;
une étape E4 d'acquisition d'un deuxième poids d'une deuxième ressource de ladite pluralité de ressources, lorsque le premier poids est différent de la valeur prédéterminée. Cette étape E4 d'acquisition du deuxième poids d'une deuxième ressource vise à permettre de parcourir si besoin l'ensemble des ressources de la pluralité de ressources afin de trouver une ressource ayant un poids égal à la valeur prédéterminée.
[ 0023 ] L'invention n'est pas limitée aux modes de réalisation précédemment décrits en référence aux figures et des variantes pourraient être envisagées sans sortir du cadre de l'invention.