FR 3025905 A1 20160318 FR 1458596 A 20140912 1 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 oeuvre sur des systèmes de traitement de données appelés clusters. Un cluster comporte un ensemble de noeuds de calcul interconnectés. La connexion entre les noeuds 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 noeud 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 noeuds de calcul à utiliser (nombre de processeur sur l'équipement, taille de la mémoire...) ; - des informations de localisation dans le réseau d'interconnexion (noeuds les plus proches dans la topologie, noeuds d'Entrée/Sortie les plus proches...) ; - des informations logiques relatives aux noeuds à utiliser comme par exemple la présence d'un logiciel donné sur le stockage local du noeud ou à travers un montage réseau particulier ; - des informations environnementales comme par exemple la consommation maximale, ou moyenne, des noeuds à utiliser (par exemple en fonction du type de processeur utilisé), de la température de la zone où se trouvent les noeuds à utiliser... ; - une combinaison des critères précédents. 3025905 2 [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 5 toutes les routes se valent et tous les équipements peuvent tirer le maximum du réseau d'interconnexion. Le facteur de blocage peut également apparaitre 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 10 implémentation est extrêmement couteuse et donc difficilement réalisable financièrement car cela reviendrait à avoir un lien dédié par couple de noeuds. 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 15 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 20 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 25 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 30 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 3025905 3 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 noeud bloquant ou non bloquant. [0009] Outre les caractéristiques principales qui viennent d'être mentionnées 5 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 10 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 15 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 20 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 25 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 30 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. noeuds de calcul, tombent, un port de commutateur voit son nombre de ressources 3025905 4 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. 5 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 10 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 15 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 20 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 25 d'interconnexion, dans lequel la connexion entre les noeuds de calcul Rn, i.e. les ressources d'un cluster, est réalisée à l'aide de liens de communication Infiniband. Les noeuds 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. 30 [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 18 ports entrée et sortie, sont chacun reliés à 18 noeuds de calculs. 3025905 5 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 5 à 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 noeuds de calcul. [0015] La figure 2 illustre les ports d'un commutateur Infiniband de la topologie 10 de la figure 1. Ce commutateur dispose au total de 36 ports : 18 vers les noeuds de calcul (Ri à Ris) 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 noeuds, i.e. entre un noeud destiné aux noeuds de calcul et un noeud destiné aux 15 autres commutateurs de la topologie, i.e. entre un noeud d'entrée et un noeud 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 noeuds de calcul et douze liens vers les commutateurs Infiniband sont utilisés par douze noeuds de calcul de manière partagée. Cette configuration est définie par 20 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 noeuds sont privilégiés et que d'autres doivent partager leurs ressources avec au moins un autre noeud (on pourrait avoir des cas « pires », avec certains liens en usage 25 unique et d'autres liens partagés avec plus de deux noeuds). [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 « noeuds » ces routes 30 correspondent. Il est ainsi possible de connaître de manière précise quels sont les noeuds « privilégiés » (i.e. avec le plus petit nombre de route par lien physique) versus les noeuds moins privilégiés. Cette information est ainsi apportée au niveau 3025905 6 du gestionnaire de ressources en charge d'allouer des ressources (en général des noeuds de calcul) selon des critères donnés. [0017] L'objectif est donc de passer cette information de niveau de privilège d'un noeud en fonction du nombre de routes présentes sur les liens du réseau 5 d'interconnexion permettant de l'accéder. Ce critère peut également être utilisé pour définir des « privilèges » entre les noeuds 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 noeuds qui auront le moins à partager des liens physiques pour accéder aux données. 10 [0018] La figure 3 illustre un exemple de câblage physique du réseau d'interconnexion comportant les cinq commutateurs Infiniband (Ci à C5) illustré en figure 1. Chacun des commutateurs est relié à un autre commutateur du réseau au moyen de trois liens partant d'un noeud lb Link d'un commutateur vers un noeud lb link d'un autre commutateur. Dans cette configuration, neuf noeuds (Ni à 15 N9) ont un plus petit nombre de route par lien physique comparé aux autres noeuds de la topologie. Ces neuf noeuds 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 noeuds pour lancer un travail. 20 [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 EO de mise à jour du premier poids de la première ressource. Le premier poids correspond au nombre de 25 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. 30 [0021] Le procédé comporte également une étape El 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 3025905 7 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 : 5 - 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 10 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. 15 [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. 20 25 REVENDICATIONS1. Procédé d'allocation, pour l'exécution d'un calcul, d'au moins une première ressource (Ri) d'une pluralité de ressources (Ri,...,Rn) interconnectées, ladite première ressource (Ri) étant reliée à un premier port d'un commutateur (2), 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. 2. Procédé selon la revendication 1 caractérisé en ce qu'il comporte une étape de comparaison du premier poids de ladite première ressource avec une valeur prédéterminée. 3. Procédé selon la revendication 2 caractérisé en ce qu'il 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. 4. Procédé selon la revendication 2 caractérisé en ce qu'il 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. 5. Procédé selon l'une quelconque des revendications précédentes caractérisé en ce qu'il comporte une étape préalable de mise à jour du premier poids de ladite première ressource. 30