Brevet FR3072236A1 — publié le 20190412

DISPOSITIF ET PROCEDE D'ACQUISITION DE VALEURS DE COMPTEURS ASSOCIES A UNE TACHE DE CALCUL [0001] L'invention concerne le domaine des réseaux d'interconnexion, et plus particulièrement de la surveillance de la performance d'un réseau d'interconnexion lors de la réalisation d'une tâche de calcul. L'invention propose un dispositif d'acquisition de valeurs de compteurs associées à une tâche de calcul mise en oeuvre sur un réseau d'interconnexion, un procédé d'acquisition de valeurs pouvant être mis en oeuvre par un tel dispositif ainsi qu'un procédé de planification de tâche de calcul mis en oeuvre par un tel dispositif. [Art antérieur [0002] Le calcul haute performance, aussi appelé HPC (High Performance Computing en terminologie anglo-saxonne) se développe pour la recherche universitaire comme pour l'industrie, notamment dans des domaines techniques tels que l'aéronautique, l'énergie, la climatologie et les sciences de la vie. Ces calculs sont généralement mis en oeuvre par des clusters. L'objectif de ces clusters est de dépasser les limites du matériel existant en mutualisant des ressources pour permettre l'exécution parallélisée d'instructions et l'agrégation de capacité mémoire et de disque. [0003] Un cluster, est un ensemble de moyens de calcul (aussi appelés noeuds) interconnectés par un réseau d'interconnexion pouvant réaliser des opérations communes. Les clusters sont constitués d'un grand nombre de noeuds (typiquement plusieurs milliers), ces derniers étant interconnectés, par exemple de façon hiérarchique, par des commutateurs (typiquement plusieurs centaines), appelés switch en terminologie anglo-saxonne. Les réseaux ainsi constitués peuvent comprendre plusieurs dizaines milliers de ports. Chaque noeud est par exemple un serveur, un ordinateur ou plus généralement une machine. [0004] En outre, chacun de ces ports peut présenter plus d'une centaine de compteurs (e.g. 186) dont l'objectif est de suivre de nombreuses caractéristiques du port telles que la performance ou les erreurs, notamment lors d'une tâche de calcul. La surveillance et le contrôle d'un cluster, en particulier des commutateurs, sont typiquement réalisés de façon centralisée via un noeud dédié, appelé noeud d'administration. Un gestionnaire réseau (aussi appelé « Subnet Manager ») peut surveiller le réseau via ce noeud d'administration (cf. « InfinibandTM Architecture Volume 1 Release 1.3 »). Cette surveillance comporte notamment [0555-BULL14] 2 la surveillance de l'état de fonctionnement des composants du cluster pour, le cas échéant, alerter un administrateur d'un problème potentiel de matériel. Ainsi, étant donné qu'un réseau d'interconnexion peut comporter plusieurs centaines de commutateurs (e.g. 500) entrainant la présence de plusieurs milliers de ports (e.g. 30 000), le nombre de compteur à surveiller au 5 niveau du gestionnaire réseau est extrêmement élevé. [0005] Les outils actuels permettent d'enregistrer, au sein d'une base de données, les valeurs des différents compteurs de l'ensemble des ports d'un réseau d'interconnexion ou d'un ilot de calcul. Ainsi, un utilisateur peut consulter individuellement les valeurs de chacun de ces compteurs et afficher les variations en fonction du temps. Néanmoins, il n'est pas 10 possible avec les outils actuels d'aisément identifier des défaillances d'équipement du réseau d'interconnexion dans le cadre d'une tâche de calcul particulière. En effet, en parallèle, un réseau d'interconnexion peut permettre la réalisation de plusieurs dizaines de tâche de calcul. En outre, une tâche de calcul va généralement nécessiter l'intervention de plusieurs dizaines ou centaines de noeuds et donc l'implication de plusieurs centaines ou milliers de ports 15 lorsque l'ensemble des commutateurs impliqués dans la tâche sont pris en considération. [0006] Lorsqu'un utilisateur a une tâche de calcul plus longue que prévu ou fait face à des problématiques de reproductibilité, il peut être nécessaire d'en identifier la cause. Habituellement, un tel utilisateur n'a pas la possibilité de faire rapidement ces vérifications. En effet, actuellement, un utilisateur peut identifier les noeuds impliqués dans une tâche de calcul 20 qu'il vient de mener et suivre individuellement les compteurs de ces noeuds. Les valeurs des compteurs doivent, par exemple, être explorées manuellement en choisissant d'une part le port et d'autre part le compteur à étudier. Ainsi, il n'est pas possible de réaliser aujourd'hui rapidement une analyse de la performance d'un réseau d'interconnexion lors d'une tâche de calcul au regard des compteurs des ports impliqués dans ladite tâche. En effet, le 25 gestionnaire de ressources a accès aux données de compteurs mais ne peut opérer de sélection relative à la tâche de calcul. [0007] Ainsi, il existe un besoin pour de nouveaux dispositifs et méthodes permettant de suivre la performance d'un réseau d'interconnexion lors de la mise en oeuvre d'une tâche de calcul de façon à rapidement identifier des erreurs pouvant impacter la tâche de calcul. 30 [0555-BULL14] 3 1Problème technique] [0008] L'invention a donc pour but de remédier aux inconvénients de l'art antérieur. En particulier, l'invention a pour but de proposer un dispositif d'acquisition de valeurs de compteurs associés à une tâche de calcul, ledit dispositif permettant d'accéder rapidement à 5 des indicateurs de défaillances des équipements spécifiquement impliqués dans la tâche de calcul monitorée. [0009] L'invention a également pour but de proposer un procédé d'acquisition de valeurs de compteurs associés à une tâche de calcul, ledit procédé étant rapide et simple à mettre en oeuvre et permettant à un utilisateur, dans le cadre de l'épilogue d'une tâche de calcul, de 10 facilement naviguer au sein d'indicateurs pertinents de performance pour une tâche de calcul spécifique et de visualiser rapidement d'éventuels dysfonctionnements dans un sous ensemble de réseau d'interconnexion utilisé pour cette tâche de calcul. Un tel procédé permet de réduire le temps consacré à la recherche d'un éventuel problème dans les équipements associés à cette tâche de calcul, en prenant en compte aussi bien les noeuds que les 15 commutateurs impliqués dans la tâche de calcul. JBrève description de I'inventionl 20 [0010] A cet effet, l'invention porte sur un dispositif d'acquisition de valeurs de compteurs associées à une tâche de calcul mise en oeuvre sur un réseau d'interconnexion, ledit réseau d'interconnexion comportant une pluralité de noeuds interconnectés par l'intermédiaire de commutateurs, lesdits noeuds et commutateurs comportant une pluralité de ports associés à des compteurs, les valeurs desdits compteurs étant enregistrées au cours du temps, ladite 25 tâche de calcul impliquant un sous ensemble de ports associé à des sous-ensembles de noeuds et de commutateurs, et ledit dispositif comprenant : - un module d'acquisition de routage, apte à acquérir une table de routage comportant toutes les connexions du réseau d'interconnexion, - un module d'acquisition de noeuds impliqués, apte à acquérir une liste des noeuds 30 impliqués dans la tâche de calcul, - un module d'extraction de ports, apte à extraire une liste des ports impliqués dans la tâche de calcul à partir de la liste de noeuds impliqués et de la table de routage, et [0555-BULL14] 4 un module d'extraction de compteurs, apte à extraire les valeurs des compteurs des ports impliqués dans la tâche de calcul à partir de la liste de ports impliqués et des valeurs enregistrées desdits compteurs. 5 [0011] Cette invention permet notamment, par une succession d'étapes d'acquisition de données et d'extractions, de générer un ensemble de données relatives aux équipements impliqués dans une tâche de calcul. Cette invention permet notamment la génération d'une liste des ports impliqués dans une tâche de calcul en corrélant la liste des noeuds impliqués dans une tâche de calcul avec le routage utilisé par le réseau d'interconnexion. Cela permet 10 de déterminer la liste complète de ports de noeuds et de commutateurs à inclure de façon à obtenir les valeurs de tous les compteurs pouvant expliquer un éventuel dysfonctionnement lors d'une tâche de calcul, sans se limiter aux extrémités du réseau impliqué (i.e. noeuds). [0012] Ainsi, un tel dispositif communique avec plusieurs bases de données, ou sources d'informations, de façon à générer un nouveau jeu de données restreint aux données pouvant 15 intéresser un utilisateur dans le cadre d'une tâche de calcul spécifique. L'utilisateur gagnera de nombreuses heures de recherche de défaillance par rapport à une recherche réalisée dans une liste de données soit trop volumineuse (i.e. l'ensemble des ports du réseau d'interconnexion) soit parcellaire (i.e. l'ensemble des ports des noeuds impliqués dans la tâche de calcul). 20 [0013] Ce dispositif permet également, lors de sa mise en oeuvre, d'organiser et de filtrer des grands volumes de données aboutissant à l'extraction de valeurs essentiellement pertinentes pouvant ensuite être enregistrées dans un ou plusieurs fichiers (e.g. bases de données). 25 [0014] Selon d'autres caractéristiques optionnelles du dispositif : la tâche de calcul comporte une date de début et une date de fin, et le module d'extraction de compteurs est apte à comparer des valeurs des compteurs à la date de début et à la date de fin de la tâche, et à sélectionner des compteurs dont la valeur a 30 augmenté entre le début et la fin de la tâche de calcul. Ainsi cela consiste à évaluer la différence entre la valeur du compteur à la fin de la tâche et la valeur du compteur au début de la tâche. Si la différence est nulle ou non significative alors les valeurs de compteur ne sont pas extraites. C'est-à-dire qu'un compteur dont la valeur reste constante au cours du temps ne sera pas sélectionné ou extrait. Cela permet de gagner en rapidité de traitement. En effet, le volume de données étant moindre, leur traitement [0555-BULL14] 5 est plus rapide, le volume de stockage de données nécessaire est plus faible et cela constitue également un gain de temps pour l'utilisateur qui n'a pas à parcourir des données sans intérêt (i.e. valeurs constantes). 5 - Il comporte en outre un module de génération de rapport apte à générer au moins un rapport d'analyse de performance à partir des valeurs des compteurs des ports impliqués dans la tâche de calcul, ledit rapport comprenant avantageusement des indicateurs de performance du réseau d'interconnexion pour ladite tâche de calcul. Ainsi, un utilisateur pourra accéder à un rapport comportant des informations sur les équipements ayant 10 potentiellement ralenti ou perturbé la tâche de calcul. - Le module de génération de rapport est apte à recevoir une instruction, ladite instruction comportant la désignation d'une ou de plusieurs catégories de compteurs et ledit module de génération de rapport est alors apte à générer un rapport d'analyse de performance 15 comportant une liste de ports impliqués et les valeurs du ou des compteurs désignés pour ces ports. Dans ce cas, le dispositif peut générer des informations ciblées à partir d'une instruction comportant une identification d'un compteur spécifique. - Le module de génération de rapport est apte à recevoir une instruction, ladite instruction 20 comportant la désignation d'un ou plusieurs niveaux du réseau d'interconnexion et ledit module de génération de rapport est alors apte à générer un rapport d'analyse de performance portant sur lesdits un ou plusieurs niveaux du réseau d'interconnexion, de préférence un seul niveau. Ainsi, comme cela sera présenté dans la suite de la description, le dispositif est apte à permettre rapidement l'identification de la zone de 25 perturbation éventuelle dans le réseau d'interconnexion. - Le module de génération de rapport comporte des moyens pour réaliser une agrégation des valeurs de compteurs impliqués, ledit module de génération de rapport est alors apte à générer un rapport d'analyse de performance comportant des valeurs agrégées des 30 compteurs impliqués. - Il comprend en outre un module de mémorisation apte à enregistrer des tables de routage, des listes de noeuds impliqués dans une tache de calcul, des listes de ports impliqués dans une tache de calcul, des rapports d'analyse de performance et/ou les 35 valeurs des compteurs des ports impliqués dans une tâche de calcul, de préférence sous la forme d'une base de type round-robin. [0555-BULL14] 6 - Le module d'acquisition de routage est apte à réaliser une exploration du réseau d'interconnexion de façon à collecter les tables de routage, de préférence en temps réel. Avantageusement, les tables de routages sont acquises à partir d'une mémoire apte à 5 stocker des informations de routage telles que des tables de routage. [0015] L'invention porte en outre sur un procédé d'acquisition, par un dispositif, de valeurs de compteurs associées à une tâche de calcul commandée par un client et mise en oeuvre sur un réseau d'interconnexion, ledit réseau d'interconnexion comportant une pluralité de noeuds 10 interconnectés par l'intermédiaire de commutateurs, lesdits noeuds et commutateurs comportant une pluralité de ports associés à des compteurs, les valeurs desdits compteurs étant enregistrées au cours du temps, ladite tâche de calcul impliquant un sous ensemble de ports associé à des sous-ensembles de noeuds et de commutateurs, et ledit procédé comprenant les étapes suivantes : 15 - Acquisition, par un module d'acquisition de routage, d'une table de routage comportant toutes les connections du réseau d'interconnexion, - Acquisition, par un module d'acquisition de noeuds impliqués, d'une liste des noeuds impliqués dans la tâche de calcul, ladite liste de noeuds impliqués étant enregistrée sur le client, 20 - Extraction, par un module d'extraction de ports, d'une liste des ports impliqués dans la tâche de calcul à partir de la liste de noeuds impliqués et de la table de routage, - Extraction, par un module d'extraction de compteurs, des valeurs des compteurs des ports impliqués dans la tâche de calcul à partir de la liste de ports impliqués et des valeurs enregistrées desdits compteurs. 25 Un tel procédé permet de générer un ensemble de valeurs de compteurs des ports impliqués dans une tâche de calcul et donc de pouvoir ensuite rapidement traiter ou visualiser ces valeurs de façon à identifier d'éventuels dysfonctionnement dans des équipements du sous ensemble du réseau d'interconnexion ayant été impliqué dans la tâche de calcul. 30 [0016] L'invention porte en outre sur un procédé de planification, par un client, d'une tâche de calcul mise en oeuvre sur un réseau d'interconnexion, ledit réseau d'interconnexion comportant une pluralité de noeuds interconnectés par l'intermédiaire de commutateurs, lesdits noeuds et commutateurs comportant une pluralité de ports associés à des compteurs, les valeurs desdits compteurs étant enregistrées au cours du temps, ladite tâche de calcul [0555-BULL14] 7 impliquant un sous ensemble de ports associé à des sous-ensembles de noeuds et de commutateurs, et ledit procédé comprenant les étapes suivantes : - Réception, par exemple par le client, d'une instruction de mise en place d'une tâche de calcul, ladite tâche de calcul comportant une liste de ressources nécessaires à sa 5 réalisation, - Identification d'un sous-ensemble de noeuds correspondant à la liste de ressources nécessaires à la réalisation de la tâche de calcul, - Initiation de la tâche de calcul sur le sous-ensemble de noeuds identifiés, - Réception, par exemple par le client, du rapport de tâche de calcul finalisée, 10 - Envoi d'une instruction à un dispositif d'acquisition de valeurs selon l'invention, et - Réception d'un ou plusieurs rapports d'analyse de performance à partir des valeurs des compteurs des ports impliqués dans la tâche de calcul. Cela permet dans le cadre de la planification d'une tâche de calcul, par un utilisateur, de directement recevoir un rapport d'analyse de performance ciblé par exemple lors de l'épilogue 15 de la planification de ladite tâche de calcul. Ce rapport d'analyse de performance ciblé concerne spécifiquement les équipements, et plus particulièrement les ports impliqués dans la tâche de calcul. [0017] D'autres avantages et caractéristiques de l'invention apparaitront à la lecture de la 20 description suivante donnée à titre d'exemple illustratif et non limitatif, en référence aux Figures annexées qui représentent : - Figure 1, un exemple de topologie de cluster associé à un dispositif d'acquisition de valeurs de compteurs selon l'invention ; - Figure 2, une représentation schématique d'un procédé d'acquisition de valeurs de 25 compteurs selon l'invention ; - Figures 3A à 3D, des représentations graphiques des valeurs de compteurs associés à une tâche de calcul en fonction du temps. Les compteurs représentés étant représentatifs des données transmises par les ports considérés à savoir les ports des noeuds de calcul (Fig. 3A), les ports de l'ensemble des noeuds et commutateurs 30 impliqués dans la tâche de calcul (Fig. 3B), les ports des commutateurs de premier niveau (Fig. 3C) et les ports des commutateurs de second niveau (Fig. 3D). [0555-BULL14] 8 - Figure 4, une représentation schématique d'un procédé de planification d'une tâche de calcul selon l'invention. JDescription de I'inventionl 5 [0018] Dans la suite de la description, on entend par « réseau d'interconnexion », tout réseau de calcul dédié (tel qu'un réseau InfiniBand - InfiniBand est une marque), ou plus généralement toute collection d'éléments informatiques, notamment des processeurs distribués, avec des liaisons de communication physiques entre eux. Un réseau d'interconnexion, est généralement au sens de l'invention un ensemble de moyens de calcul 10 (aussi appelés noeuds) interconnectés pouvant réaliser des opérations communes. Les clusters sont généralement constitués de milliers de noeuds interconnectés par des centaines commutateurs. Les réseaux ainsi constitués peuvent comprendre plusieurs dizaines milliers de ports. Ces ports sont associés à des compteurs permettant par exemple de suivre la performance de l'équipement. 15 [0019] On entend, ici, par « compteurs » un moyen permettant de suivre les paquets ou données et les erreurs qui se produisent sur un port ou une interface d'un commutateur ou d'un noeud. Ainsi, les compteurs sont plus particulièrement des compteurs de performance associés à des ports et sont généralement utilisés pour surveiller les données transmises, les caractéristiques du transport et les erreurs générées par l'équipement. Par exemple, les 20 compteurs peuvent suivre, le volume des données transmises, le nombre de fois où une collision s'est produite avant que l'interface ne transmette une donnée avec succès, le nombre de paquets ignorés, le nombre de paquets reçus rejetés car il n'y avait pas d'espace tampon, etc. Ces compteurs permettent ainsi de produire des données relatives au trafic sur le sous ensemble du réseau d'interconnexion considéré. Ces compteurs sont généralement des 25 compteurs incrémentaux n'ayant pas besoin d'être remis à zéro entre chaque tâche de calcul. [0020] Par « tâche de calcul », on entend au sens de l'invention un ensemble de calculs pouvant par exemple se décomposer en une répétition d'un calcul élémentaire effectué sur des données ayant une même structure ou une succession de calculs différents où des calculs sont appliqués aux résultats de calculs précédents. Une tâche de calcul dans le cadre 30 de l'invention peut se référer par exemple à une modélisation moléculaire, à des prévisions météorologiques, à des opérations mathématiques complexes par exemple de type simulations Monte Carlo pour l'analyse des risques financiers, à des conceptions assistées par ordinateur ou encore à des millions de balayages paramétriques parallèles pour l'optimisation de conditions. [0555-BULL14] 9 [0021] Par ailleurs, on entend au sens de l'invention par « topologie d'interconnexion », l'architecture définissant l'intégralité des liaisons, des connexions (ou interconnexions) entre tous les noeuds de service d'un réseau d'interconnexion. Il peut s'agir d'un graphique non orienté où les sommets représentent, par exemple, des commutateurs et des noeuds, et les 5 arcs représentent les liaisons (ou câbles). On notera qu'il existe plusieurs topologies telles que celles dites hiérarchiques, celles en anneau ou celles à maillage. Parmi ces topologies, il peut notamment être cité celles appelées en terminologie anglo-saxonne « Fat-tree », « Generalized Fat Tree », « Hypercube », « Generalized Hypercube », 2D/3D Torus, et Mesh, certains de ces termes sont également des marques. 10 [0022] Au sens de l'invention, une « table de routage » correspond à un ensemble de données, par exemple des règles, permettant de déterminer où seront acheminées les données circulant sur un réseau d'interconnexion. Cet ensemble de règles pouvant être enregistrées dans une ou plusieurs tables de routage, par exemple sous la forme d'un ou de plusieurs fichiers. Une table de routage permet d'enregistrer la topologie du réseau 15 d'interconnexion. La table de routage peut être utilisée dans le cadre d'un routage déterministe et/ou adaptatif. Lors d'un routage déterministe, le routage est basé sur la destination, ce qui signifie que lorsqu'un paquet est dans un noeud ou un commutateur, le reste du chemin à parcourir sera déterminé par sa destination. Une table de routage peut par exemple prendre la forme d'une base de données relationnelle constituée d'éléments de 20 données dotés d'une relation prédéfinie entre eux. Par exemple, ces éléments peuvent être organisés en tableaux composés de colonnes et de rangées permettant de répertorier les informations sur les routes entre différents noeuds représentés dans la base de données. De façon préférée, la table de routage est une table de routage statique distribuée. [0023] On entend par « agrégation » la mise en oeuvre d'une ou de plusieurs opérations 25 mathématiques permettant par exemple de générer un sous ensemble réduit de valeurs à partir d'un ensemble plus volumineux de valeurs. Par exemple, une agrégation peut correspondre à la sélection des dix valeurs de compteurs les plus élevées, ou les plus faibles parmi les valeurs de compteurs des ports impliqués. Une agrégation au sens de l'invention peut également comporter la génération d'une valeur transformée telle que : une valeur de 30 progression (via une soustraction de la valeur à la fin de la tâche de calcul par la valeur au début de la tâche de calcul, une valeur dans le temps (la division des valeurs de volume de donné échangé par le temps de façon à obtenir des valeurs de débit), une valeur moyenne, une valeur médiane ou encore une valeur de variance. L'agrégation peut également permettre de sélectionner une valeur extrême faible d'un compteur par exemple via le calcul d'un 35 percentile inférieur ou égale à dix tandis qu'une valeur extrême élevée de compteur peut par [0555-BULL14] 10 exemple être sélectionnée parmi les percentiles supérieurs ou égaux à 90. Cela peut par exemple être utile de façon à identifier des débits très élevés ou au contraire très faibles. L'agrégation peut aussi consister à sélectionner les valeurs les plus élevées ou les plus faibles pour des catégories de compteurs données. 5 [0024] On entend par « fichier de configuration » au sens de l'invention, un fichier comprenant les informations nécessaires notamment à la mise en oeuvre du procédé selon l'invention. Les fichiers sont accessibles aux différents modules du dispositif selon l'invention. [0025] On entend par «traiter», «calculer», «déterminer», «afficher», «comparer» ou plus largement « opération exécutable », au sens de l'invention, une action effectuée par un 10 dispositif ou un processeur sauf si le contexte indique autrement. À cet égard, les opérations se rapportent à des actions et / ou des processus d'un système de traitement de données, par exemple un système informatique ou un dispositif informatique électronique, qui manipule et transforme les données représentées en tant que quantités physiques (électroniques) dans les mémoires du système informatique ou d'autres dispositifs de stockage, de transmission ou 15 d'affichage de l'information. Ces opérations peuvent se baser sur des applications ou des logiciels. [0026] Les termes ou expressions « application », « logiciel », « code de programme », et « code exécutable » signifient toute expression, code ou notation, d'un ensemble d'instructions destinées à provoquer un traitement de données pour effectuer une fonction 20 particulière directement ou indirectement (e.g. après une opération de conversion vers un autre code). Les exemples de code de programme peuvent inclure, sans s'y limiter, un sous-programme, une fonction, une application exécutable, un code source, un code objet, une bibliothèque et/ou tout autre séquence d'instructions conçues pour l'exécution sur un système informatique. 25 [0027] On entend par « processeur », au sens de l'invention, au moins un circuit matériel configuré pour exécuter des opérations selon des instructions contenues dans un code. Le circuit matériel peut être un circuit intégré. Des exemples d'un processeur comprennent, sans s'y limiter, une unité de traitement central, un processeur graphique, un circuit intégré spécifique à l'application (ASIC) et un circuit logique programmable. 30 [0028] On entend par « couplé », au sens de l'invention, connecté, directement ou indirectement avec un ou plusieurs éléments intermédiaires. Deux éléments peuvent être couplés mécaniquement, électriquement ou liés par un canal de communication. [0555-BULL14] 11 [0029] L'expression « interface homme-machine » au sens de l'invention correspond à tout élément permettant à un être humain de communiquer avec un ordinateur en particulier et sans être exhaustif, un clavier et des moyens permettant en réponse aux ordres entrés au clavier d'effectuer des affichages et éventuellement de sélectionner à l'aide de la souris ou 5 d'un pavé tactile des éléments affichés sur l'écran. [0030] Le terme « dysfonctionnement » au sens de l'invention correspond à la survenue d'un incident matériel ou d'une congestion sur le réseau d'interconnexion. [0031] On entend par « client » au sens de la présente invention, tout matériel et/ou logiciel susceptible d'accéder au dispositif d'acquisition de valeurs de compteurs. 10 [0032] Dans la suite de la description, les mêmes références sont utilisées pour désigner les mêmes éléments. [0033] Généralement, dans le cadre de la mise en place d'un réseau d'interconnexion, au moment de l'initialisation, un gestionnaire réseau 500 initie une phase de découverte où il réalise, via un noeud d'administration 111, un balayage du réseau d'interconnexion afin de 15 découvrir tous les commutateurs 120 et les noeuds 110. Ensuite, il procède à l'affectation d'identifiant par exemple de type LID ou GID, à la configuration des commutateurs 120, aux calculs d'une table de routage et à la configuration des ports 130. À ce stade, un réseau d'interconnexion 100 est prêt à l'emploi. Une fois que le réseau est configuré, le gestionnaire réseau 500 peut surveiller tout changement sur le réseau d'interconnexion 100 (e.g. un 20 périphérique est ajouté ou un lien est supprimé). Le gestionnaire réseau 500 peut également être couplé à une mémoire 510 apte à stocker des informations de routage telles que des tables de routage. [0034] Dans l'exemple illustré sur la figure 1, le réseau d'interconnexion 100 comprend ici un ensemble de noeuds référencés 110 dont un noeud d'administration 111, ainsi qu'un 25 ensemble de commutateurs référencés 120. Chaque commutateur a ici six ports bidirectionnels 130 numérotés 1 à 6. Les noeuds 110 sont connectés à des commutateurs de premier niveau 121 qui sont eux-mêmes reliés à des commutateurs de deuxième niveau 122 qui sont à leur tour reliés à deux commutateurs de troisième niveau 123. Les commutateurs 120, c'est-à-dire 121, 122 et 123, routent des messages de leurs sources vers leurs 30 destinations notamment selon des règles inscrites dans des tables de routages. Les commutateurs 121 sont chacun connectés à trois noeuds 110 différents. Chaque noeud 110 est donc ici connecté à chacun des autres noeuds 110 via au plus cinq commutateurs 120. [0555-BULL14] 12 [0035] Selon un aspect, l'invention porte sur un dispositif 1 d'acquisition de valeurs de compteurs associées à une tâche de calcul mise en oeuvre sur un réseau d'interconnexion 100. Le réseau d'interconnexion 100 comporte généralement une pluralité de noeuds 110 interconnectés par l'intermédiaire de commutateurs 120, lesdits noeuds et commutateurs 5 comportant une pluralité de ports 130 associés à des compteurs. Sur un tel réseau, des valeurs de compteurs sont généralement enregistrées au cours du temps. Cet enregistrement au cours du temps peut par exemple être un enregistrement en continu (e.g. toutes les 30 secondes ou moins, de préférence toutes les 10 secondes ou moins) de la valeur de chaque compteur de port de chaque équipement concerné. Cela peut représenter près de deux cent 10 compteurs à enregistrer périodiquement par port. Cet enregistrement peut être fait dans un ou plusieurs fichiers sous différents formats tels que : OpenTSDB, InfluxDB, collectd, ou csv. Cet enregistrement peut être réalisé par un agent situé sur les noeuds 110, des commutateurs 120 et/ou par un gestionnaire réseau 500. Par exemple, les valeurs des compteurs peuvent être enregistrées au cours du temps dans une mémoire 520 apte à stocker des valeurs de 15 compteurs, ladite mémoire 520 étant de préférence une base de type round-robin. [0036] La tâche de calcul implique généralement un sous ensemble de ports associé à des sous-ensembles de noeuds et de commutateurs. En effet, un réseau d'interconnexion 100 est en mesure de mettre en oeuvre en parallèle plusieurs dizaines ou centaines de tâches de calcul. Ainsi, une tâche de calcul n'implique pas tous les ports 130 d'un réseau 20 d'interconnexion mais seulement un sous ensemble de noeuds et un sous ensemble de ports. Un sous ensemble de noeuds peut aussi être appelé noeuds impliqués 115 (i.e. impliqués dans la tâche de calcul) tandis qu'un sous ensemble de ports peut aussi être appelé ports impliqués 135. Pour illustrer cela, dans la figure 1, les ports impliqués 135 dans une tâche de calcul ont été signalés par une mise en forme « en gras » tandis que les noeuds impliqués 115 25 sont hachurés. [0037] Comme représenté sur la figure 1, le dispositif 1 d'acquisition selon l'invention comprend un module d'acquisition de routage 10. Ce module est apte à acquérir une table de routage comportant toutes les connexions du réseau d'interconnexion 100. [0038] La table de routage peut par exemple être obtenue par l'intermédiaire du gestionnaire 30 de réseau 500 ou des noeuds 110 et des commutateurs 120. En effet, au démarrage ou lors d'une modification de la topologie du réseau, le gestionnaire de réseau 500 procède généralement à une découverte de la topologie, au calcul d'une table de correspondance pour chacun des commutateurs 120, et à une transmission de celle-ci aux commutateurs 120. [0555-BULL14] 13 [0039] De façon préférée, le module d'acquisition de routage 10 est apte à acquérir la table de routage comportant les données sur toutes les connexions du réseau d'interconnexion à partir d'une mémoire 510 apte à stocker des informations de routage telles que des tables de routage. Avantageusement, l'acquisition est réalisée en temps réel. C'est-à-dire que la 5 découverte est réalisée périodiquement au cours du temps, par exemple en continue (e.g. toutes les 30 secondes ou moins, de préférence toutes les 10 secondes ou moins). Le module d'acquisition de routage 10 peut également être apte à réaliser une exploration du réseau d'interconnexion 100 avant, au cours et/ou après la mise en oeuvre de la tâche de calcul. Alternativement, le module d'acquisition de routage 10 est apte à réaliser une exploration du 10 réseau d'interconnexion 100 de façon à identifier l'ensemble des commutateurs du réseau d'interconnexion. Le module d'acquisition de routage 10 est ensuite apte à télécharger les tables de routage depuis les commutateurs du réseau d'interconnexion. Ainsi, le dispositif selon l'invention pourrait générer l'ensemble de valeurs de compteurs impliqués sans dépendances aux gestionnaires ou aux applications installées sur le réseau d'interconnexion. 15 Cela offre une flexibilité plus importante au dispositif. [0040] La table de routage peut être enregistrée dans un ou plusieurs fichiers et par exemple sous la forme d'une base de données relationnelle comportant des informations relatives à tous les équipements avec tous les ports et toutes les connexions entre les ports. La table de routage peut par exemple être enregistrée à intervalle régulier par exemple une 20 fois par jour, de préférence au moins une fois toutes les heures, de façon plus préférée au moins deux fois toutes les heures. Ainsi, avantageusement, le module d'acquisition de routage 10 est apte à enregistrer un historique de la topologie du réseau d'interconnexion 100. [0041] En outre, le module de routage 10 peut être configuré pour réaliser une étape 25 d'analyse des tables de routage de façon à identifier, au cours de la durée de la tâche de calcul, une éventuelle modification de la table de routage tel qu'un re-routage. Le module de routage 10 est apte à générer une alerte dans le cas d'une telle modification de la table de routage. 30 [0042] Comme représenté sur la figure 1, le dispositif 1 d'acquisition selon l'invention comprend un module d'acquisition de noeuds impliqués 20. Ce module est apte à acquérir une liste des noeuds impliqués 115 dans la tâche de calcul. [0555-BULL14] 14 [0043] La Figure 1 schématise un client 400. Le dispositif d'acquisition 1 peut accéder au client 400 de même que ce dernier peut accéder au dispositif d'acquisition 1. Par exemple, le dispositif d'acquisition 1 peut accéder au client 400 de façon à extraire la liste des noeuds impliqués 115 dans la tâche de calcul. Une telle liste des noeuds impliqués 115 peut par 5 exemple être enregistrée dans une mémoire 410. [0044] En effet, le client 400 peut permettre la mise en oeuvre d'au moins un gestionnaire de tâche et de ressources par exemple sélectionné parmi : LSF, PBSpro, Moab, Slurm, ou Torque/Maui. Ces gestionnaires de ressources sont capables de gérer la mise en oeuvre d'une tâche de calcul sur un réseau d'interconnexion. Plus spécifiquement, le gestionnaire de 10 ressource est apte à assigner un identifiant unique à une tâche de calcul, préciser les paramètres nécessaire à la réalisation de la tâche de calcul, éventuellement spécifier des noeuds à assigner à la tâche de calcul et mémoriser les noeuds étant utilisé par la tâche de calcul. Ainsi, un gestionnaire de ressource est capable de recevoir les soumissions de tâches de calcul d'utilisateurs et de gérer leur mise en oeuvre dans le temps et dans l'espace sur le 15 cluster. Les gestionnaires de ressources permettent ainsi un ordonnancement des tâches de calcul. Plus particulièrement, dans le processus d'allocation de tâches, le gestionnaire de ressource affecte non seulement le noeud de calcul pour l'exécution du travail, mais aussi la période de temps dans laquelle le travail peut utiliser le noeud de calcul. [0045] Ainsi, le client 400 comporte avantageusement des données permettant d'identifier 20 les noeuds utilisés par une tâche de calcul donnée. En effet, une tâche de calcul utilise un sous-ensemble de noeuds et de commutateurs du réseau d'interconnexion 100. Ce sous-ensemble est alloué par un gestionnaire de ressources qui peut être hébergé sur le client 400. Afin d'analyser les performances d'un réseau d'interconnexion dans le cadre d'une tâche de calcul spécifique, il est avantageux de pouvoir analyser les compteurs de ports utilisés par ce 25 dernier et seulement ces compteurs. Ainsi, l'acquisition des noeuds impliqués 115 peut par exemple être réalisé par l'intermédiaire d'un gestionnaire de ressources. [0046] De façon préférée, le module d'acquisition de noeuds impliqués 20 est apte à générer une instruction comportant un identifiant unique de la tâche de calcul, l'envoyer à un client 400 et recevoir en réponse une liste des noeuds impliqués 115 dans la tâche de calcul. 30 [0047] Avantageusement, outre la liste des noeuds impliqués 115 dans la tâche de calcul, le module d'acquisition de noeuds impliqués 20 est apte à recevoir la date de début et la date de fin de la tâche de calcul. [0555-BULL14] 15 [0048] Comme représenté sur la figure 1, le dispositif 1 d'acquisition selon l'invention comprend un module d'extraction de ports 30. Ce module est apte à extraire une liste des ports impliqués 135 dans la tâche de calcul à partir d'une liste de noeuds impliqués 115 et d'une table de routage. La liste des ports impliqués 135 comporte avantageusement les ports 5 des noeuds 115 impliqués dans la tâche de calcul ainsi que les ports des commutateurs impliqués. [0049] Avantageusement, une liste des ports impliqués 135 dans la tâche de calcul comporte seulement les ports 135 impliqués dans la tâche de calcul. Ainsi, contrairement à des dispositifs ou des procédés de l'art antérieur, il n'y a pas prise en considération des ports 10 qui ne sont pas impliqués dans la réalisation de la tâche de calcul. Cela permet de réduire drastiquement le volume de données à traiter et donc améliorer significativement la rapidité de mise en oeuvre de l'invention. En outre, cela ne permet de considérer que les seules valeurs des compteurs relatifs aux ports impliqués dans la tâche de calcul. C'est-à-dire que la liste de valeurs extraites ne comportera pas de valeurs de compteurs pour des ports ne sont pas 15 impliqués dans la tâche de calcul. [0050] Comme représenté sur la figure 1, le dispositif 1 d'acquisition selon l'invention comprend un module d'extraction de compteurs 40. Ce module est apte à extraire les valeurs des compteurs des ports impliqués dans la tâche de calcul à partir de la liste de ports 20 impliqués 135 et des valeurs enregistrées desdits compteurs. [0051] De façon préférée, les compteurs considérés dans le cadre de l'invention sont des compteurs de performance associés aux ports et sont généralement utilisés pour surveiller les données transmises, les caractéristiques du transport et les erreurs générées par l'équipement. Les compteurs suivent avantageusement le volume des données transmises ou 25 reçues, le nombre de paquets reçus ou envoyés, les erreurs comme par exemple le nombre de fois où une collision s'est produite avant que l'interface ne transmette une donnée avec succès ou le nombre de paquets ignorés et/ou le nombre de paquets reçus rejetés car il n'y avait pas d'espace tampon. [0052] Le module d'extraction de compteurs 40 est en outre apte à acquérir au préalable les 30 valeurs enregistrées desdits compteurs. Les valeurs enregistrées des compteurs des ports peuvent par exemple être enregistrées au niveau des commutateurs ou des noeuds. Ces valeurs correspondent donc à toutes les valeurs de compteurs de tous les ports de l'ensemble du réseau d'interconnexion. Dans ce cas, le module d'extraction de compteurs 40 est apte à acquérir les valeurs au niveau des commutateurs 120 et des noeuds 110. Les valeurs des [0555-BULL14] 16 compteurs des ports de l'ensemble du réseau d'interconnexion peuvent aussi être enregistrées, par exemple par un gestionnaire réseau 500, dans un ou plusieurs fichiers 520 dédiés aux valeurs des compteurs des ports impliqués 135. Ces données peuvent être enregistrées sous différents formats tels que : OpenTSDB, InfluxDB, collectd, ou csv. Dans ce 5 cas, le module d'extraction de compteurs 40 est apte à acquérir les valeurs au niveau d'un ou de plusieurs fichiers, de préférence plusieurs, de sauvegarde des valeurs de compteurs de ports. [0053] Une tâche de calcul comporte une date de début et une date de fin. Partant, de façon avantageuse, le module d'extraction de compteurs est apte à comparer des valeurs des 10 compteurs à la date de début et à la date de fin de la tâche, et à extraire des compteurs dont la valeur a augmenté entre le début et la fin de la tâche de calcul. [0054] De façon plus particulière, si la différence est nulle ou non significative alors le compteur n'est pas extrait. Ainsi, un compteur dont la valeur reste constante au cours du temps ne sera pas extrait. Par non significatif, il faut comprendre que la différence est 15 inférieure à un seuil prédéterminé. Par exemple, un compteur d'erreur ne sera pas sélectionné/extrait si la différence est inférieure à un seuil prédéterminé. Les seuils prédéterminés peuvent être fixés lors d'une étape de configuration du dispositif 1 selon l'invention et enregistrés dans un fichier de configuration. [0055] En outre, le module d'extraction de compteurs 40 est apte à soustraire, pour chaque 20 compteur, sa valeur à la date de début à sa valeur à la date de fin de façon à obtenir la progression de la valeur du compteur lors de la tâche de calcul. [0056] De façon avantageuse, le dispositif 1 d'acquisition est apte à enregistrer, sur un ou plusieurs fichiers, les valeurs des compteurs des ports impliqués 135 dans la tâche de calcul. Ainsi, le dispositif peut accéder ou permettre l'accès aux différentes métriques sur chaque port 25 impliqué 135 du réseau d'interconnexion 100. Ces données peuvent par exemple être enregistrées sous la forme d'une base de données RRD (terminologie anglo-saxonne Round-Robin database). Une telle base présente avantageusement une taille fixe. [0057] Le dispositif 1 peut comprendre un module de mémorisation 60 apte à enregistrer les valeurs des compteurs des ports impliqués 135 dans la tâche de calcul, de préférence sous la 30 forme d'une base de type round-robin. Le module de mémorisation 60 peut également être apte à enregistrer la topologie du réseau d'interconnexion 100. [0058] Comme représenté sur la figure 1, le dispositif 1 d'acquisition selon l'invention peut également comprendre un module de génération de rapport 50. Ce module est apte à générer [0555-BULL14] 17 au moins un rapport d'analyse de performance à partir des valeurs des compteurs des ports impliqués dans la tâche de calcul. [0059] Ce rapport d'analyse de performance permet d'évaluer la performance du réseau d'interconnexion 100 lors d'une tâche de calcul. 5 [0060] Le module de génération de rapport 50 peut par exemple être configuré pour recevoir une instruction comportant la désignation d'une ou plusieurs catégorie de compteurs. Dans ce cas, le module de génération de rapport 50 est alors apte à générer un rapport d'analyse de performance comportant une liste de ports impliqués 135 et les valeurs du ou des compteurs désignés pour ces ports impliqués 135. Le module de génération de rapport 50 peut aussi 10 être apte à recevoir une instruction comportant la désignation d'un ou plusieurs niveaux du réseau d'interconnexions. Dans ce cas, le module de génération de rapport est alors apte à générer un rapport d'analyse de performance portant sur, ou limité aux, un ou plusieurs niveau du réseau d'interconnexion 100. Les instructions peuvent par exemple être transmises depuis une interface homme machine (IHM). De façon plus générale, le dispositif 1 est apte à 15 recevoir, par exemple via une interface IHM, des identifiants de tâche de calcul, des identifiants de compteurs et/ou les niveaux du réseau d'interconnexion de façon à générer les rapports adéquats. [0061] Le module de génération de rapport 50 peut être apte à réaliser une agrégation des valeurs de compteurs impliqués. Le module de génération de rapport est alors apte à générer 20 un rapport d'analyse de performance comportant des valeurs agrégées des compteurs impliqués. [0062] Le rapport d'analyse de performance peut avantageusement prendre une forme sélectionnée parmi : une ou plusieurs listes de valeurs associées à des ports par exemple sous la forme d'un tableau, des liens vers des valeurs de compteurs associées à des ports, un 25 ou plusieurs graphiques représentant l'évolution desdits compteurs pendant ladite tâche de calcul. [0063] En outre, comme cela est présenté en figure 1, le dispositif 1 d'acquisition peut comporter un module de communication 70 apte à émettre une instruction identifiant une 30 tâche de calcul. Le module de communication 70 est configuré pour recevoir et transmettre des informations à des systèmes distants tels que des tablettes, des téléphones, des ordinateurs ou des serveurs et est ainsi apte à permettre la communication entre le dispositif 1 et un terminal distant, dont un client 400. Le module de communication 70 permet de transmettre les données sur au moins un réseau de communication et peut comprendre une 35 communication filaire ou sans fil. L'interaction peut impliquer un logiciel applicatif utilisé par l'opérateur pour interagir avec le dispositif selon l'invention. Le logiciel applicatif peut [0555-BULL14] 18 comporter une interface graphique permettant de faciliter une interaction avec un opérateur. Un opérateur peut alors agir sur le terminal distant de façon à générer une instruction apte à être mise en oeuvre par le dispositif 1. [0064] Dans l'exemple représenté sur la Fig. 1, un client 400 accède au dispositif 5 d'acquisition 1. Par exemple, le client 400 peut exécuter une application cliente qui est configurée pour communiquer avec le dispositif d'acquisition 1. L'application cliente peut être un navigateur ou une autre application de communication basée sur le client. En réponse à l'accès par le client 400, le dispositif d'acquisition 1 peut générer une interface utilisateur qui peut être envoyée au client 400. 10 [0065] Comme cela vient d'être présenté, le dispositif 1 d'acquisition selon l'invention comprend une pluralité de modules. Ces modules 10, 20, 30, 40, 50, 60, 70 sont distincts sur la figure 1 mais l'invention peut prévoir divers types d'agencement comme par exemple un seul module cumulant l'ensemble des fonctions décrites ici. De même, ces moyens peuvent être divisés en plusieurs cartes électroniques ou bien rassemblés sur une seule carte 15 électronique. De même, lorsque l'on prête une action à un dispositif ou un module celle-ci est en fait effectuée par un microprocesseur du dispositif ou module commandé par des codes instructions enregistrés dans une mémoire. Si l'on prête une action à une application, celle-ci est en fait effectuée par un microprocesseur du dispositif dans une mémoire duquel les codes instructions correspondant à l'application sont enregistrés. Lorsqu'un dispositif ou module 20 émet ou reçoit un message, ce message est émis ou reçu par une interface de communication. Les mémoires évoquées dans cette invention peuvent correspondre à une mémoire vive et/ou une mémoire de masse. La mémoire de masse peut- être un support tel qu'une carte mémoire, ou un disque dur hébergé par un serveur distant. 25 [0066] Selon un autre aspect, l'invention porte sur un procédé d'acquisition 200 de valeurs de compteurs associées à une tâche de calcul selon l'invention. La tâche de calcul est généralement commandée par un client 400 et mise en oeuvre sur un réseau d'interconnexion 100. Ce procédé est mis en oeuvre par un dispositif et de façon préférée par un dispositif 1 d'acquisition selon l'invention. 30 [0067] Comme présenté en figure 2, le procédé comporte une étape d'acquisition 210, par un module d'acquisition de routage, d'une table de routage comportant toutes les connections du réseau d'interconnexion, un étape d'acquisition 220, par un module d'acquisition de noeuds impliqués, d'une liste des noeuds impliqués dans la tâche de calcul, ladite liste de noeuds impliqués étant enregistrée sur le client, une étape d'extraction 230, par un module [0555-BULL14] 19 d'extraction de ports, d'une liste des ports impliqués dans la tâche de calcul à partir de la liste de noeuds impliqués et de la table de routage, et une étape d'extraction 240, par un module d'extraction de compteurs, des valeurs des compteurs des ports impliqués dans la tâche de calcul à partir de la liste de ports impliqués et des valeurs enregistrées desdits compteurs. 5 [0068] Ainsi, un utilisateur peut extraire les valeurs des compteurs des ports impliqués dans la tâche de calcul à partir par exemple d'une instruction comportant un identifiant unique de la tâche de calcul. [0069] Lors de l'étape d'extraction 240 des valeurs des compteurs des ports impliqués dans la tâche de calcul, le procédé peut comprendre avantageusement des sous-étapes suivantes : 10 - comparer 241 des valeurs des compteurs à la date de début et à la date de fin de la tâche, et - sélectionner 242 des compteurs dont la valeur a augmenté entre le début et la fin de la tâche de calcul [0070] En outre, le procédé peut comprendre une étape de génération 250, par un module 15 de génération de rapport, d'au moins un rapport d'analyse de performance à partir des valeurs des compteurs des ports impliqués dans la tâche de calcul. [0071] En outre, avantageusement, le procédé selon l'invention peut comporter une étape de génération d'instruction permettant une représentation graphique des valeurs de compteurs de ports impliqués dans la tâche de calcul. Ces graphiques peuvent présenter les 20 principaux compteurs ayant évolué lors de la tâche de calcul. De façon préférée, au moins un graphique est généré automatiquement à la fin de chacune des tâches de calcul. De façon encore plus préférée, le procédé comporte la sélection avec la tâche de calcul d'un ou plusieurs compteurs qui feront l'objet de la génération de graphique. 25 [0072] Les figures 3 représentent le suivi des valeurs du compteur « données transmises » en fonction du temps. Ces figures, de la figure 3B à la figure 3D illustrent la mise en oeuvre de l'invention et son utilisation dans le cadre de la génération de rapports d'analyse de performance Ces rapports d'analyse de performance peuvent être représentés sous la forme de graphiques pour identifier une source de ralentissement dans une tâche de calcul. 30 [0073] La figure 3A présente un exemple de graphique pouvant être généré classiquement lorsque l'utilisateur sélectionne manuellement tous les ports des noeuds impliqués dans sa tâche de calcul. L'étude de la figure 3A montre que la tâche de calcul a nécessité sur les [0555-BULL14] 20 noeuds impliqués une bande passante de l'ordre de 300 MB/s. Or cette valeur est loin d'une saturation des équipements, ladite saturation pouvant par exemple apparaitre lorsque la bande passante utilisée est supérieure à 1500 MB/s. [0074] Dans le cadre de l'invention, l'utilisateur met en oeuvre le dispositif selon l'invention 5 pour générer un second graphique représenté en figure 3B. Le graphique de la figure 3B comporte les valeurs de bandes passantes en fonction du temps de tous les ports impliqués dans la tâche de calcul. Ainsi, cela comporte les ports des noeuds impliqués dans la tâche de calcul mais également les ports impliqués dans la tâche de calcul des commutateurs du réseau d'interconnexion. L'étude de la figure 3B montre que la tâche de calcul a nécessité sur 10 certains ports une bande passante de l'ordre de 1000 MB/s, normalement non saturante, mais également sur d'autres ports une bande passante supérieure à 2000 MB/s et donc susceptible de générer une saturation des équipements. [0075] Toujours dans le cadre de l'invention, l'utilisateur peut avantageusement spécifier au dispositif qu'il souhaite limiter la génération de rapport aux ports situés sur le premier niveau 15 du réseau d'interconnexion. Le rapport d'analyse de performance fait alors l'objet d'une représentation graphique tel que présenté en figure 3C. L'étude de la figure 3C montre que la tâche de calcul n'a pas nécessité sur les ports impliqués du premier niveau du réseau de bande passante supérieure à 1500 MB/s. [0076] La même analyse réalisée sur les ports du second niveau du réseau d'interconnexion 20 et présentée en figure 3D montre au contraire que ces ports présentent une bande passante supérieure à 2000 MB/s et ont donc été susceptibles de générer une saturation des équipements. [0077] Dans ce contexte, par exemple selon une instruction transmise par le client de l'utilisateur, le dispositif selon l'invention peut agréger les valeurs de compteurs de façon à 25 générer une information directement interprétable par l'utilisateur telle que le tableau 1 ci - dessous. Tableau 1 : Top 5 des valeurs des compteurs de données transmises Position ID port Valeur compteur 1 /switch/mib101/1ine12/chip1/port18 1 576 634 571,25 2 /switch/mib102/1ine12/chip1/port18 1 534 297 271,47 3 /switch/mc1032-isw/board0/chip1/port7 1 074 122 538,67 4 /switch/mc1032-isw/board0/chip1/port15 1 055 855 343,27 [0555-BULL14] 21 5 /switch/mc1032-isw/boardO/chip1/port1 1 055 269 874,99 [0078] Ainsi, il est possible que la tâche de calcul ait été impactée par d'autres tâches de calcul ayant utilisé des ports impliqués dans la tâche de calcul utilisée comme les ports 18 et 7 mentionnés dans le tableau 1. 5 [0079] Selon un autre aspect, l'invention porte sur un procédé de planification 300 d'une tâche de calcul mise en oeuvre sur un réseau d'interconnexion 100. Ce procédé peut par exemple être mis en oeuvre par un client 400. [0080] Comme cela a déjà été abordé, les tâches de calcul sont généralement planifiées par 10 des gestionnaires de ressources et de tâches. Ainsi, le client permet la mise en oeuvre d'au moins un gestionnaire de tâche et de ressources (e.g. LSF, PBSpro, Moab, Slurm ou Torque/Maui) capable de gérer la mise en oeuvre d'une tâche de calcul sur un réseau d'interconnexion. Le gestionnaire de tâche peut assigner un identifiant unique à une tâche de calcul, préciser les paramètres nécessaires à la tâche de calcul, éventuellement spécifier des 15 noeuds à assigner à la tâche de calcul et mémoriser les noeuds étant utilisé par la tâche de calcul. [0081] Comme présenté en figure 4, le procédé de planification selon l'invention comporte généralement une étapes de réception 310 d'une instruction de mise en place d'une tâche de calcul, ladite tâche de calcul comportant une liste de ressources nécessaires à sa réalisation, 20 Le gestionnaire de ressource est capable de recevoir les soumissions de tâches de calcul d'utilisateurs et de gérer leur mise en oeuvre dans le temps et dans l'espace du réseau d'interconnexion. [0082] Il y a alors une identification 320 d'un sous-ensemble de noeuds correspondant à la liste de ressources nécessaires à la réalisation de la tâche de calcul, puis une initiation 330 de 25 la tâche de calcul sur le sous-ensemble de noeuds identifiés. Les gestionnaires permettent ainsi un ordonnancement des tâches de calcul et de façon à ce qu'un système puisse choisir les ressources (i.e. noeuds) à attribuer aux tâches et les dates de lancement. L'ordonnancement est défini suivant une politique qui se traduit par l'utilisation d'algorithmes d'ordonnancement et de nombreux critères et paramètres permettant de guider et cadrer les 30 allocations et les priorités. [0555-BULL14] 22 [0083] Lorsque la tâche de calcul est finalisée, le gestionnaire de ressources réalise un « épilogue de la tâche de calcul » lors duquel il y aura réception 340 du rapport de tâche de calcul finalisée. C'est durant cet épilogue que le client pourra envoyer 350 une instruction au dispositif d'acquisition de valeurs, et plus particulièrement au module de communication 70, 5 selon l'invention puis réceptionner 360 un ou plusieurs rapports d'analyse de performance à partir des valeurs des compteurs des ports impliqués dans la tâche de calcul. [0084] Ainsi, la présente invention permet d'acquérir, de compiler, d'enregistrer et notamment de visualiser les divers compteurs d'un réseau d'interconnexion sur les ports des équipements impliqués dans une tâche de calcul, y compris les ports de commutateurs. Cette 10 visualisation peut notamment être faite par l'intermédiaire de graphiques (cf. figures 3B, 3C, 3D) pouvant être générés à partir des rapports d'analyse de performance. Avantageusement, un utilisateur pourra facilement naviguer dans ce jeu de données (beaucoup plus restreint que l'ensemble des valeurs de compteurs du réseau d'interconnexion) et pourra identifier le cas échéant la source de ralentissement ou de déviation dans ces résultats. 15 [0085] En outre, le dispositif est à même de sélectionner et concentrer en une seule mémoire ou interface toutes les données permettant un diagnostic sur une tâche de calcul. Dans l'art antérieur ces diagnostics se font plutôt au niveau du réseau dans sa globalité ou d'un sous ensemble de ports sans que cela soit lié à une tâche de calcul particulière. [0086] Tous ces avantages contribuent donc à réduire les temps de traitement de l'analyse 20 de la performance d'un réseau d'interconnexion dans le cadre d'une tâche de calcul et également à réduire les volumes de données gérés et manipulés. [0555-BULL14] REVENDICATIONS1. Dispositif (1) d'acquisition de valeurs de compteurs associées à une tâche de calcul mise en oeuvre sur un réseau d'interconnexion (100), ledit réseau d'interconnexion (100) comportant une pluralité de noeuds (110) interconnectés par l'intermédiaire de commutateurs (120), lesdits noeuds et commutateurs comportant une pluralité de ports (130) associés à des compteurs, les valeurs desdits compteurs étant enregistrées au cours du temps, ladite tâche de calcul impliquant un sous ensemble de ports associé à des sous-ensembles de noeuds et de commutateurs, et ledit dispositif comprenant : - Un module d'acquisition de routage (10), apte à acquérir une table de routage comportant toutes les connexions du réseau d'interconnexion, - Un module d'acquisition de noeuds impliqués (20), apte à acquérir une liste des noeuds impliqués dans la tâche de calcul, - Un module d'extraction de ports (30), apte à extraire une liste des ports impliqués dans la tâche de calcul à partir de la liste de noeuds impliqués et de la table de routage, et - Un module d'extraction de compteurs (40), apte à extraire les valeurs des compteurs des ports impliqués dans la tâche de calcul à partir de la liste de ports impliqués et des valeurs enregistrées desdits compteurs. 2. Dispositif selon la revendication 1, caractérisé en ce que la tâche de calcul comporte une date de début et une date de fin, et en ce que le module d'extraction de compteurs (40) est apte à : - comparer des valeurs des compteurs à la date de début et à la date de fin de la tâche, et - sélectionner des compteurs dont la valeur a augmenté entre le début et la fin de la tâche de calcul. 3. Dispositif selon l'une des revendications 1 ou 2, caractérisé en ce qu'il comprend en outre un module de génération de rapport (50), apte à générer au moins un rapport d'analyse de performance à partir des valeurs des compteurs des ports impliqués dans la tâche de calcul. 4. Dispositif selon la revendication 3, caractérisé en ce que le module de génération de rapport (50) est apte à recevoir une instruction, ladite instruction comportant la [0555-BULL14] 24 désignation d'une ou plusieurs catégories de compteurs et ledit module de génération de rapport est alors apte à générer un rapport d'analyse de performance comportant une liste de ports impliqués et les valeurs du ou des compteurs désignés pour ces ports. 5 5. Dispositif selon l'une des revendications 3 ou 4, caractérisé en ce que le module de génération de rapport (50) est apte à recevoir une instruction, ladite instruction comportant la désignation d'un ou plusieurs niveau du réseau d'interconnexions et ledit module de génération de rapport est alors apte à générer un rapport d'analyse de performance portant sur lesdits un ou plusieurs niveaux désignés du réseau 10 d'interconnexions. 6. Dispositif selon l'une quelconque des revendications 3 à 5, caractérisé en ce que le module de génération de rapport (50) comporte des moyens pour réaliser une agrégation des valeurs de compteurs impliqués, ledit module de génération de rapport est alors apte 15 à générer un rapport d'analyse de performance comportant des valeurs agrégées des compteurs impliqués. 7. Dispositif selon l'une quelconque des revendications 1 à 6, caractérisé en ce qu'il comprend en outre un module de mémorisation (60) apte à enregistrer des tables de 20 routage, des listes de noeuds impliqués dans une tache de calcul, des listes de ports impliqués dans une tache de calcul, des rapports d'analyse de performance et/ou les valeurs des compteurs des ports impliqués dans une tâche de calcul, de préférence sous la forme d'une base de type round-robin. 25 8. Dispositif selon l'une quelconque des revendications 1 à 7, caractérisé en ce que le module d'acquisition de routage (10) est apte à réaliser une exploration du réseau d'interconnexion de façon à collecter les tables de routage, de préférence en temps réel. 9. Procédé d'acquisition (200), par une dispositif, de valeurs de compteurs associées à une 30 tâche de calcul commandée par un client (400) et mise en oeuvre sur un réseau d'interconnexion (100), ledit réseau d'interconnexion (100) comportant une pluralité de noeuds (110) interconnectés par l'intermédiaire de commutateurs (120), lesdits noeuds (110) et commutateurs (120) comportant une pluralité de ports (130) associés à des compteurs, les valeurs desdits compteurs étant enregistrées au cours du temps, ladite 35 tâche de calcul impliquant un sous ensemble de ports associé à des sous-ensembles de noeuds et de commutateurs, et ledit procédé comprenant les étapes suivantes : [0555-BULL14] 25 - Acquisition (210), par un module d'acquisition de routage, d'une table de routage comportant toutes les connections du réseau d'interconnexion, - Acquisition (220), par un module d'acquisition de noeuds impliqués, d'une liste des noeuds impliqués dans la tâche de calcul, ladite liste de noeuds impliqués étant 5 enregistrée sur le client (400), - Extraction (230), par un module d'extraction de ports, d'une liste des ports impliqués dans la tâche de calcul à partir de la liste de noeuds impliqués et de la table de routage, - Extraction (240), par un module d'extraction de compteurs, des valeurs des 10 compteurs des ports impliqués dans la tâche de calcul à partir de la liste de ports impliqués et des valeurs enregistrées desdits compteurs. 10. Procédé de planification (300), par un client (400), d'une tâche de calcul mise en oeuvre sur un réseau d'interconnexion (100), ledit réseau d'interconnexion (100) comportant une 15 pluralité de noeuds (110) interconnectés par l'intermédiaire de commutateurs (120), lesdits noeuds (110) et commutateurs (120) comportant une pluralité de ports (130) associés à des compteurs, les valeurs desdits compteurs étant enregistrées au cours du temps, ladite tâche de calcul impliquant un sous ensemble de ports associé à des sous-ensembles de noeuds et de commutateurs, et ledit procédé comprenant les étapes 20 suivantes : - Réception (310), par le client (400), d'une instruction de mise en place d'une tâche de calcul, ladite tâche de calcul comportant une liste de ressources nécessaires à sa réalisation, - Identification (320), par le client (400), d'un sous-ensemble de noeuds correspondant 25 à la liste de ressources nécessaires à la réalisation de la tâche de calcul, - Initiation (330), par le client (400), de la tâche de calcul sur le sous-ensemble de noeuds identifiés, - Réception (340), par le client (400), du rapport de tâche de calcul finalisée, - Envoi (350), par le client (400), d'une instruction à un dispositif (1) d'acquisition de 30 valeurs selon l'une des revendications 1 à 8 et - Réception (360), par le client (400), d'un ou plusieurs rapports d'analyse de performance à partir des valeurs des compteurs des ports impliqués dans la tâche de calcul fournis par ledit dispositif (1) d'acquisition de valeurs. 35 [0555-BULL14]