FR3091765A1 - Method for analyzing the performance of a software application on a server cluster by extrapolation - Google Patents

Method for analyzing the performance of a software application on a server cluster by extrapolation Download PDF

Info

Publication number
FR3091765A1
FR3091765A1 FR1910554A FR1910554A FR3091765A1 FR 3091765 A1 FR3091765 A1 FR 3091765A1 FR 1910554 A FR1910554 A FR 1910554A FR 1910554 A FR1910554 A FR 1910554A FR 3091765 A1 FR3091765 A1 FR 3091765A1
Authority
FR
France
Prior art keywords
software application
execution
performance
predetermined
messages
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1910554A
Other languages
French (fr)
Other versions
FR3091765B1 (en
Inventor
Noureddine TAGUELMIMT
Stephan JAURE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Bull SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bull SA filed Critical Bull SA
Priority to US16/722,514 priority Critical patent/US11334378B2/en
Priority to EP19219167.4A priority patent/EP3671465B1/en
Publication of FR3091765A1 publication Critical patent/FR3091765A1/en
Application granted granted Critical
Publication of FR3091765B1 publication Critical patent/FR3091765B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3404Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for parallel or distributed programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Ce procédé (100) d’analyse de performances d’une application logicielle, par son exécution parallèle dans une grappe de serveurs de référence, comporte : une première exécution (104) impliquant des échanges de données utiles entre nœuds de calcul et de stockage de la grappe de serveurs réalisés par un réseau d’interconnexion selon un protocole prédéterminé en encapsulant ces données utiles dans des messages dont la taille est prédéterminée ; une deuxième exécution (108) impliquant les mêmes échanges de données utiles entre les mêmes nœuds de calcul et de stockage de la grappe de serveurs réalisés par le même réseau d’interconnexion selon le même protocole mais avec une taille prédéterminée des messages différente ; une extrapolation (114) des performances de l’application logicielle comportant une simulation (116) de variation d’une bande passante du réseau d’interconnexion basée sur la différence de taille prédéterminée des messages échangés lors des première et deuxième exécutions (104, 108). Figure pour l’abrégé : Fig. 2This method (100) for analyzing the performance of a software application, by its parallel execution in a cluster of reference servers, comprises: a first execution (104) involving exchanges of payload data between computing and storage nodes. the cluster of servers produced by an interconnection network according to a predetermined protocol by encapsulating these payload data in messages whose size is predetermined; a second execution (108) involving the same exchanges of useful data between the same computing and storage nodes of the server cluster carried out by the same interconnection network according to the same protocol but with a predetermined size of the different messages; an extrapolation (114) of the performance of the software application comprising a simulation (116) of variation of a bandwidth of the interconnection network based on the difference in predetermined size of the messages exchanged during the first and second executions (104, 108 ). Figure for the abstract: Fig. 2

Description

Procédé d’analyse de performances d’une application logicielle sur une grappe de serveurs par extrapolationMethod for analyzing the performance of a software application on a cluster of servers by extrapolation

La présente invention concerne un procédé d’analyse, par extrapolation, de performances d’une application logicielle par son exécution parallèle sur plusieurs nœuds de calcul d’une grappe de serveurs de référence. Elle concerne également un programme d’ordinateur comprenant des instructions pour l’exécution d’un tel procédé.The present invention relates to a method for analyzing, by extrapolation, the performance of a software application by its parallel execution on several computing nodes of a cluster of reference servers. It also relates to a computer program comprising instructions for the execution of such a process.

Dans ce contexte, il s’agit de prédire par extrapolation les performances de l’application logicielle sur une grappe de serveurs cible, c’est-à-dire un calculateur à haute performance ou supercalculateur (i.e. un calculateur du domaine du HPC, de l’anglais « High Performance Computing »), dont l’architecture et le dimensionnement sont à définir par comparaison (de l’anglais « benchmark ») avec la grappe de serveurs de référence qui peut également être qualifiée de supercalculateur de benchmark.In this context, it is a question of predicting by extrapolation the performance of the software application on a cluster of target servers, i.e. a high-performance computer or supercomputer (i.e. a computer in the field of HPC, “High Performance Computing”), the architecture and sizing of which are to be defined by comparison (“benchmark”) with the cluster of reference servers which can also be qualified as a benchmark supercomputer.

Le HPC ou calcul à haute performance touche de plus en plus de domaines scientifiques tels que l’environnement, la météorologie et la physique. Dans ces domaines, le besoin de résoudre des problèmes toujours plus complexes, que ce soit au niveau des modèles ou de leur résolution, entraîne une forte demande de capacité de calcul sur des grappes de serveurs.HPC or high performance computing is increasingly affecting scientific fields such as the environment, meteorology and physics. In these areas, the need to solve ever more complex problems, whether at the level of models or their resolution, leads to a strong demand for computing capacity on clusters of servers.

Ces grappes de serveurs comportent les nœuds de calcul précités, des nœuds de stockage et au moins un réseau d’interconnexion des nœuds de calcul et de stockage entre eux pour l’échange de messages selon un protocole prédéterminé de passage de messages. Ce réseau est à transmission très rapide des messages pour une optimisation des calculs parallèles. Il est généralement qualifié de « Interconnect » ou « InfiniBand », ces terminologies incluant différentes technologies.These clusters of servers comprise the aforementioned computing nodes, storage nodes and at least one interconnection network of the computing and storage nodes between them for the exchange of messages according to a predetermined message passing protocol. This network is a very fast transmission of messages for optimization of parallel calculations. It is generally referred to as "Interconnect" or "InfiniBand", these terminologies include different technologies.

L’une des grandes difficultés de la conception d’une grappe de serveurs est son dimensionnement. En effet, dans le cadre d’un appel d’offres par exemple, celui-ci est généralement accompagné d’un ensemble d’applications scientifiques, donnant suite à une campagne d’analyse, de test et de projection des performances. L’objectif final de cette campagne est de dimensionner la grappe de serveurs cible et de définir son architecture. Cela se fait en deux étapes : une étape d’optimisation de la performance des applications scientifiques et une étape d’optimisation du prix du système proposé.One of the great difficulties in designing a server cluster is its sizing. Indeed, in the context of a call for tenders for example, it is generally accompanied by a set of scientific applications, following up on a campaign of analysis, testing and performance projection. The final objective of this campaign is to size the target server cluster and define its architecture. This is done in two steps: a step to optimize the performance of scientific applications and a step to optimize the price of the proposed system.

L’un des problèmes majeurs des analyses de performances des applications logicielles scientifiques est l’indisponibilité de la grappe de serveurs cible, c’est-à-dire, celle qui sera proposée au porteur de l’appel d’offres. Ceci s’explique essentiellement par deux raisons. D’une part, avec la variété des architectures et des systèmes de calcul, il est impossible d’avoir à sa disposition l’ensemble des modèles existants. D’autre part, la grappe de serveurs cible peut simplement être en cours de développement et n’être mise sur le marché que des mois voire des années après la date de la proposition de l’offre. Les caractéristiques principales de cette grappe de serveurs cible peuvent néanmoins être communiquées par leurs constructeurs en amont. On a alors recours à la simulation par extrapolation de la grappe de serveurs cible à partir de la grappe de serveurs de référence.One of the major problems with performance analyzes of scientific software applications is the unavailability of the target server cluster, that is to say, the one that will be offered to the bearer of the call for tenders. This is mainly due to two reasons. On the one hand, with the variety of architectures and computing systems, it is impossible to have all the existing models available. On the other hand, the target server cluster may simply be in development and not come to market until months or even years after the date of the offer proposal. The main characteristics of this target server cluster can nevertheless be communicated by their upstream manufacturers. Simulation is then used by extrapolation of the cluster of target servers from the cluster of reference servers.

Cette simulation est généralement menée par des équipes dédiées qui utilisent des modèles plus ou moins complexes reposant essentiellement sur une analyse des sensibilités de l’exécution parallèle des applications logicielles à tester aux différentes caractéristiques possibles de la grappe de serveurs cible. Ces caractéristiques comportent la fréquence des processeurs en GHz, la bande passante de la mémoire vive attachée localement à ces processeurs en Go/s et la bande passante du réseau d’interconnexion en Go/s.This simulation is generally carried out by dedicated teams who use more or less complex models based essentially on an analysis of the sensitivities of the parallel execution of the software applications to be tested to the various possible characteristics of the target server cluster. These characteristics include the frequency of the processors in GHz, the bandwidth of the RAM locally attached to these processors in GB/s and the bandwidth of the interconnection network in GB/s.

Dans ce domaine d’analyse par extrapolation, plusieurs approches existent parmi lesquelles principalement :

  • faire varier la fréquence des processeurs du supercalculateur de benchmark via des paramètres système, pour analyser la sensibilité de l’application logicielle à la fréquence des processeurs qui l’exécutent,
  • étudier la couche de communication MPI (de l’anglais « Message Passing Interface ») du protocole de passage de message employé lors de l’exécution de l’application logicielle, pour analyser la sensibilité de l’application à la bande passante du réseau d’interconnexion du supercalculateur de benchmark,
  • faire varier le placement des fils d’instructions de l’application logicielle lors de son exécution en jouant sur le nombre nœuds de calcul sollicités et le nombre de cœurs de calcul disponibles par nœud de calcul, pour analyser la sensibilité de l’application à la bande passante du réseau d’interconnexion du supercalculateur de benchmark en simulant ainsi une variation de la bande passante du réseau d’interconnexion disponible par processus.
In this field of analysis by extrapolation, several approaches exist among which mainly:
  • vary the frequency of the benchmark supercomputer processors via system parameters, to analyze the sensitivity of the software application to the frequency of the processors that run it,
  • study the MPI (Message Passing Interface) communication layer of the message passing protocol used during the execution of the software application, to analyze the sensitivity of the application to the bandwidth of the network of interconnection of the benchmark supercomputer,
  • varying the placement of the instruction threads of the software application during its execution by varying the number of computing nodes requested and the number of computing cores available per computing node, to analyze the sensitivity of the application to the bandwidth of the interconnect network of the benchmark supercomputer, thus simulating a variation of the bandwidth of the interconnect network available per process.

Dans ce contexte, l'invention s’applique plus particulièrement à un procédé d’analyse de performances d’une application logicielle par son exécution parallèle sur plusieurs nœuds de calcul d’une grappe de serveurs de référence comportant en outre plusieurs nœuds de stockage et au moins un réseau d’interconnexion des nœuds de calcul et de stockage entre eux pour l’échange de messages selon un protocole prédéterminé de passage de messages, le procédé comportant :

  • une première exécution de l’application logicielle par la grappe de serveurs, impliquant des échanges de données utiles à son exécution entre les nœuds de calcul et de stockage de la grappe de serveurs réalisés par le réseau d’interconnexion selon le protocole prédéterminé en encapsulant ces données utiles dans les messages dont la taille est prédéterminée ;
  • une deuxième exécution de l’application logicielle par la grappe de serveurs, impliquant les mêmes échanges de données utiles entre les mêmes nœuds de calcul et de stockage de la grappe de serveurs réalisés par le même réseau d’interconnexion selon le même protocole prédéterminé ; et
  • une extrapolation des performances de l’application logicielle sur la base d’au moins l’une des deux exécutions.
In this context, the invention applies more particularly to a method for analyzing the performance of a software application by its parallel execution on several computing nodes of a cluster of reference servers further comprising several storage nodes and at least one network for interconnecting the calculation and storage nodes with each other for the exchange of messages according to a predetermined message passing protocol, the method comprising:
  • a first execution of the software application by the cluster of servers, involving exchanges of data useful for its execution between the computing and storage nodes of the cluster of servers carried out by the interconnection network according to the predetermined protocol by encapsulating these payload data in messages whose size is predetermined;
  • a second execution of the software application by the cluster of servers, involving the same exchanges of payload data between the same computing and storage nodes of the cluster of servers carried out by the same interconnection network according to the same predetermined protocol; And
  • an extrapolation of the performance of the software application based on at least one of the two executions.

L’analyse de performances de l’application logicielle par extrapolation comporte ainsi une évaluation de sa sensibilité aux variations de la fréquence des processeurs qui est très simple à mettre en œuvre et ne pose généralement pas de problème. Celle-ci a l’intérêt de ne pas engendrer d’effets non linéaires importants sur les autres paramètres de sensibilité, ce qui constitue une propriété très intéressante en analyse par extrapolation.The performance analysis of the software application by extrapolation thus includes an evaluation of its sensitivity to variations in the frequency of the processors which is very simple to implement and does not generally pose any problem. This has the advantage of not generating significant nonlinear effects on the other sensitivity parameters, which is a very interesting property in extrapolation analysis.

L’analyse de performances de l’application logicielle par extrapolation comporte en outre avantageusement une évaluation de sa sensibilité aux variations de la bande passante du réseau d’interconnexion. Seules les deux dernières solutions le permettent. Mais cela ne se fait pas simplement et sans effets indésirables sur la simulation. En particulier, les approches par extrapolation de trace, telles que par exemple enseignées dans l’article de Carrington et al, intitulé « Characterizing large-scale HPC applications through trace extrapolation », publié dans Parallel Processing Letters @World Scientific, volume 23, n° 4 (2013), sont complexes à mettre en œuvre et engendrent des non linéarités en impactant d’autres caractéristiques. Il en est de même des approches procédant par une étude des performances de la couche de communication MPI par projection, telles que par exemple enseignées dans l’article de Sharkawi et al, intitulé « SWAPP: a framework for performance projections of HPC applications using benchmarks », publié dans IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (Proceedings of) en 2012. Plus généralement, il est difficile de simuler des variations de bande passante sans agir physiquement sur le réseau d’interconnexion, ses commutateurs ou ses interfaces d’accès. Ces actions impliquent des arrêts fréquents du supercalculateur de benchmark et un temps d’intervention conséquent.The performance analysis of the software application by extrapolation also advantageously includes an evaluation of its sensitivity to variations in the bandwidth of the interconnection network. Only the last two solutions allow this. But this is not done simply and without undesirable effects on the simulation. In particular, trace extrapolation approaches, such as for example taught in the article by Carrington et al, entitled "Characterizing large-scale HPC applications through trace extrapolation", published in Parallel Processing Letters @World Scientific, volume 23, n ° 4 (2013), are complex to implement and generate non-linearities by impacting other characteristics. The same applies to approaches proceeding through a study of the performance of the MPI communication layer by projection, such as for example taught in the article by Sharkawi et al, entitled "SWAPP: a framework for performance projections of HPC applications using benchmarks », published in IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (Proceedings of) in 2012. More generally, it is difficult to simulate variations in bandwidth without physically acting on the interconnection network, its switches or its access interfaces. These actions involve frequent shutdowns of the benchmark supercomputer and significant intervention time.

Il peut ainsi être souhaité de prévoir un procédé d’analyse de performances d’une application logicielle par extrapolation qui permette de s’affranchir d’au moins une partie des problèmes et contraintes précités.It may thus be desirable to provide a method for analyzing the performance of a software application by extrapolation which makes it possible to overcome at least some of the aforementioned problems and constraints.

Il est donc proposé un procédé d’analyse de performances d’une application logicielle par son exécution parallèle sur plusieurs nœuds de calcul d’une grappe de serveurs de référence comportant en outre plusieurs nœuds de stockage et au moins un réseau d’interconnexion des nœuds de calcul et de stockage entre eux pour l’échange de messages selon un protocole prédéterminé de passage de messages, le procédé comportant :

  • une première exécution de l’application logicielle par la grappe de serveurs, impliquant des échanges de données utiles à son exécution entre les nœuds de calcul et de stockage de la grappe de serveurs réalisés par le réseau d’interconnexion selon le protocole prédéterminé en encapsulant ces données utiles dans les messages dont la taille est prédéterminée ;
  • une deuxième exécution de l’application logicielle par la grappe de serveurs, impliquant les mêmes échanges de données utiles entre les mêmes nœuds de calcul et de stockage de la grappe de serveurs réalisés par le même réseau d’interconnexion selon le même protocole prédéterminé ;
  • une extrapolation des performances de l’application logicielle sur la base d’au moins l’une des deux exécutions ;
caractérisé en ce que :
  • la taille prédéterminée des messages échangés lors de la deuxième exécution diffère de celle des messages échangés lors de la première exécution alors que les données utiles échangées sont les mêmes ; et
  • l’extrapolation des performances de l’application logicielle comporte une simulation de variation d’une bande passante du réseau d’interconnexion basée sur la différence de taille prédéterminée des messages échangés lors de la première et de la deuxième exécution.
There is therefore proposed a method for analyzing the performance of a software application by its parallel execution on several computing nodes of a cluster of reference servers further comprising several storage nodes and at least one interconnection network of the nodes calculation and storage between them for the exchange of messages according to a predetermined message passing protocol, the method comprising:
  • a first execution of the software application by the cluster of servers, involving exchanges of data useful for its execution between the computing and storage nodes of the cluster of servers carried out by the interconnection network according to the predetermined protocol by encapsulating these payload data in messages whose size is predetermined;
  • a second execution of the software application by the cluster of servers, involving the same exchanges of payload data between the same computing and storage nodes of the cluster of servers carried out by the same interconnection network according to the same predetermined protocol;
  • an extrapolation of the performance of the software application based on at least one of the two executions;
characterized in that:
  • the predetermined size of the messages exchanged during the second execution differs from that of the messages exchanged during the first execution while the useful data exchanged are the same; And
  • the extrapolation of the performance of the software application comprises a simulation of variation of a bandwidth of the interconnection network based on the difference in predetermined size of the messages exchanged during the first and second execution.

Ainsi, en jouant très simplement sur la taille des messages échangés selon un protocole de type MPI, on simule astucieusement plusieurs bandes passantes possibles du réseau d’interconnexion sans agir physiquement sur celui-ci. L’analyse des performances d’une application logicielle HPC par extrapolation s’en trouve facilitée au moins sur cet aspect de bande passante. Elle n’engendre ni complexité, ni effets indésirables de non linéarité.Thus, by playing very simply on the size of the messages exchanged according to an MPI type protocol, several possible bandwidths of the interconnection network are cleverly simulated without physically acting on it. The performance analysis of an HPC software application by extrapolation is facilitated at least on this aspect of bandwidth. It generates neither complexity nor undesirable effects of non-linearity.

De façon optionnelle, la deuxième exécution de l’application logicielle par la grappe de serveurs ne se distingue de la première exécution que par la taille des messages échangés selon le protocole prédéterminé.Optionally, the second execution of the software application by the cluster of servers differs from the first execution only by the size of the messages exchanged according to the predetermined protocol.

De façon optionnelle également, la taille prédéterminée des messages échangés lors de la deuxième exécution diffère de celle des messages échangés lors de la première exécution uniquement par ajout ou suppression de données dans ces messages, dites données de remplissage, inutiles à l’exécution de l’application.Also optionally, the predetermined size of the messages exchanged during the second execution differs from that of the messages exchanged during the first execution only by adding or deleting data in these messages, called filler data, unnecessary for the execution of the 'application.

De façon optionnelle également, la simulation de variation de bande passante du réseau d’interconnexion s’exécute par application de la relation suivante : où T1est la taille prédéterminée des messages échangés selon le protocole prédéterminé lors de la première exécution de l’application logicielle, T2est la taille prédéterminée des messages échangés selon le protocole prédéterminé lors de la deuxième exécution de l’application logicielle, B1est une bande passante apparente du réseau d’interconnexion de la grappe de serveurs de référence et B2est une autre bande passante apparente du même réseau d’interconnexion résultant de la variation de bande passante simulée du réseau d’interconnexion.Also optionally, the simulation of bandwidth variation of the interconnection network is carried out by application of the following relationship: where T 1 is the predetermined size of the messages exchanged according to the predetermined protocol during the first execution of the software application, T 2 is the predetermined size of the messages exchanged according to the predetermined protocol during the second execution of the software application, B 1 is an apparent bandwidth of the interconnect network of the reference server cluster and B 2 is another apparent bandwidth of the same interconnect network resulting from the simulated bandwidth variation of the interconnect network.

De façon optionnelle également :

  • lors de l’une des première et deuxième exécutions de l’application logicielle, chaque message comporte N octets de données utiles transmises d’un nœud de calcul émetteur à un nœud de calcul destinataire ;
  • lors de l’autre des première et deuxième exécutions de l’application logicielle, chaque message comporte N+N’ octets de données dont N octets de données utiles transmises d’un nœud de calcul émetteur à un nœud de calcul destinataire et N’ octets de données supplémentaires de remplissage transmises selon une couche de communication du protocole prédéterminé de passage de messages mais non fournies au nœud de calcul destinataire et non visible par l’application logicielle en cours d’exécution.
Also optionally:
  • during one of the first and second executions of the software application, each message comprises N bytes of payload data transmitted from a sender computing node to a destination computing node;
  • during the other of the first and second executions of the software application, each message comprises N+N' bytes of data including N bytes of payload data transmitted from a sender computing node to a destination computing node and N' bytes additional filling data transmitted according to a communication layer of the predetermined message passing protocol but not supplied to the destination computing node and not visible by the software application currently running.

De façon optionnelle également, la taille prédéterminée des messages est modifiée d’une exécution à l’autre de l’application logicielle par adaptation d’un composant logiciel de la couche de communication du protocole prédéterminé de passage de messages, cette couche de communication étant destinée à être appelée lors de chaque exécution de l’application logicielle chaque fois qu’un message doit être envoyé dans le réseau d’interconnexion.Also optionally, the predetermined size of the messages is modified from one execution of the software application to another by adaptation of a software component of the communication layer of the predetermined message passing protocol, this communication layer being intended to be called during each execution of the software application each time a message must be sent in the interconnection network.

De façon optionnelle également, la taille prédéterminée des messages est modifiée d’une exécution à l’autre de l’application logicielle par insertion d’un appel à une bibliothèque logicielle d’encapsulation de service de passage de messages dédiée à cette modification de taille chaque fois que l’exécution de l’application logicielle implique un appel de primitive de demande d’envoi de message de la couche de communication du protocole prédéterminé de passage de messages, l’appel de primitive étant alors réalisé par la bibliothèque logicielle d’encapsulation appelée.Also optionally, the predetermined size of the messages is modified from one execution to another of the software application by inserting a call to a message passing service encapsulation software library dedicated to this size modification each time the execution of the software application involves a call of the message sending request primitive of the communication layer of the predetermined message passing protocol, the call of the primitive then being carried out by the software library of called encapsulation.

De façon optionnelle également, la taille prédéterminée des messages est modifiée d’une exécution à l’autre de l’application logicielle par programmation de cette modification dans au moins une bibliothèque logicielle d’interfaçage avec au moins un pilote du réseau d’interconnexion, ladite bibliothèque logicielle d’interfaçage étant appelée par une primitive de demande d’envoi de message de la couche de communication du protocole prédéterminé de passage de messages elle-même appelée par l’exécution de l’application logicielle chaque fois qu’un message doit être envoyé.Also optionally, the predetermined size of the messages is modified from one execution to another of the software application by programming this modification in at least one interfacing software library with at least one driver of the interconnection network, said interfacing software library being called by a message sending request primitive of the communication layer of the predetermined message passing protocol itself called by the execution of the software application each time a message must be sent.

De façon optionnelle également, le protocole prédéterminé de passage de messages est un protocole de type MPI.Also optionally, the predetermined message passing protocol is an MPI type protocol.

Il est également proposé un programme d’ordinateur, téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, comprenant des instructions pour l’exécution des étapes d’un procédé d’analyse de performances d’une application logicielle selon l’invention, lorsque ledit programme est exécuté sur un ordinateur.There is also proposed a computer program, downloadable from a communication network and/or recorded on a computer-readable medium and/or executable by a processor, comprising instructions for the execution of the steps of an analysis method performance of a software application according to the invention, when said program is executed on a computer.

L’invention sera mieux comprise à l’aide de la description qui va suivre, donnée uniquement à titre d’exemple et faite en se référant aux dessins annexés dans lesquels :The invention will be better understood with the aid of the following description, given solely by way of example and made with reference to the appended drawings in which:

la figure 1 représente schématiquement la structure générale d’un supercalculateur de benchmark sur lequel peut être mis en œuvre un procédé d’analyse par extrapolation selon l’invention, FIG. 1 schematically represents the general structure of a benchmark supercomputer on which an extrapolation analysis method according to the invention can be implemented,

la figure 2 illustre les étapes successives d’un procédé d’analyse par extrapolation selon un mode de réalisation de l’invention, FIG. 2 illustrates the successive steps of an extrapolation analysis method according to one embodiment of the invention,

la figure 3 représente schématiquement une succession de couches logicielles programmées pour la mise en œuvre d’échanges de messages dans le supercalculateur de benchmark de la figure 1, FIG. 3 schematically represents a succession of software layers programmed for the implementation of message exchanges in the benchmark supercomputer of FIG. 1,

la figure 4 représente schématiquement une adaptation possible de la succession de couches logicielles de la figure 3 pour l’exécution du procédé de la figure 2, et FIG. 4 schematically represents a possible adaptation of the succession of software layers of FIG. 3 for the execution of the method of FIG. 2, and

la figure 5 représente schématiquement une autre adaptation possible de la succession de couches logicielles de la figure 3 pour l’exécution du procédé de la figure 2. FIG. 5 schematically represents another possible adaptation of the succession of software layers of FIG. 3 for the execution of the method of FIG. 2.

La grappe de serveurs de référence 10, ou supercalculateur de benchmark 10, représentée schématiquement sur la figure 1, comporte de multiples nœuds de calcul 12 répartis dans des baies informatiques 14, plusieurs nœuds de stockage 16 et au moins un réseau 18 d’interconnexion des nœuds de calcul et de stockage entre eux pour l’échange de messages selon un protocole prédéterminé de passage de messages, par exemple un protocole de type MPI. Le réseau d’interconnexion 18 comporte de façon connue en soi des commutateurs 20 organisés pour optimiser les échanges de données dans ce supercalculateur de benchmark 10. Une console d’administration 22 fait également partie du supercalculateur de benchmark 10 pour l’exécution de programmes d’administration générale, notamment pour permettre d’intervenir sur certains paramètres de fonctionnement, dont celui du protocole MPI comme cela sera vu ultérieurement.The cluster of reference servers 10, or benchmark supercomputer 10, represented schematically in FIG. 1, comprises multiple computing nodes 12 distributed in computer bays 14, several storage nodes 16 and at least one network 18 for interconnecting the calculation and storage nodes between them for exchanging messages according to a predetermined message passing protocol, for example an MPI type protocol. The interconnection network 18 comprises, in a manner known per se, switches 20 organized to optimize the exchanges of data in this benchmark supercomputer 10. An administration console 22 is also part of the benchmark supercomputer 10 for the execution of computer programs. general administration, in particular to allow intervention on certain operating parameters, including that of the MPI protocol as will be seen later.

Un seul nœud de calcul 12 est illustré sur la figure 1 mais ils peuvent être tous conçus selon la même architecture. Il comporte plusieurs processeurs multicœurs 24 à quatre cœurs de calcul 26 chacun ainsi que plusieurs mémoires locales 28, notamment des mémoires RAM. Il comporte en outre une interface 30 d’entrée/sortie de messages destinés à transiter dans le réseau d’interconnexion 18 selon le protocole MPI. Cet exemple de nœud de calcul est donné à titre purement illustratif, sachant que de multiples architectures sont possibles.A single computing node 12 is illustrated in FIG. 1 but they can all be designed according to the same architecture. It comprises several multicore processors 24 with four calculation cores 26 each as well as several local memories 28, in particular RAM memories. It further comprises an interface 30 for input/output of messages intended to pass through the interconnection network 18 according to the MPI protocol. This example of calculation node is given purely by way of illustration, knowing that multiple architectures are possible.

A partir de la console d’administration 22, il est possible de déployer l’exécution parallèle d’une application logicielle quelconque par le supercalculateur de benchmark 10 et d’en analyser les performances. Il est en outre possible d’apporter quelques modifications au supercalculateur de benchmark 10, par simulation ou intervention sur certains de ces éléments, par exemple en termes de fréquence des processeurs et de bandes passantes entre processeurs et mémoires vives associées ou dans le réseau d’interconnexion 18, pour simuler le fonctionnement d’un supercalculateur cible à partir du supercalculateur de benchmark 10. L’analyse par extrapolation se fait à l’aide d’un modèle d’extrapolation par exemple stocké en mémoire dans la console d’administration 22. Celle-ci est alors apte à exécuter les étapes successives du procédé 100 d’analyse par extrapolation illustré sur la figure 2 en exécutant une succession d’instructions de programme d’ordinateur.From the administration console 22, it is possible to deploy the parallel execution of any software application by the benchmark supercomputer 10 and to analyze its performance. It is also possible to make some modifications to the benchmark supercomputer 10, by simulation or intervention on some of these elements, for example in terms of frequency of the processors and bandwidths between processors and associated random access memories or in the network of interconnection 18, to simulate the operation of a target supercomputer from the benchmark supercomputer 10. The analysis by extrapolation is done using an extrapolation model for example stored in memory in the administration console 22 The latter is then capable of executing the successive steps of the method 100 of analysis by extrapolation illustrated in FIG. 2 by executing a succession of computer program instructions.

Au cours d’une étape 102 de préparation d’une première exécution de l’application logicielle considérée, la couche de communication du protocole MPI est paramétrée depuis la console d’administration 22 pour que tous les messages échangés au cours de l’exécution à venir présentent une taille T1.During a step 102 of preparation for a first execution of the software application considered, the communication layer of the MPI protocol is configured from the administration console 22 so that all the messages exchanged during the execution at come have a size T 1 .

Au cours d’une étape suivante 104, la première exécution de l’application logicielle est lancée depuis la console d’administration 22. Elle implique des échanges de données utiles à son exécution entre les nœuds de calcul 12 et de stockage 16 du supercalculateur de benchmark 10. Ces échanges sont réalisés par le réseau d’interconnexion 18 selon le protocole MPI, plus précisément selon sa couche de communication, en encapsulant ces données utiles dans les messages de taille T1. Les performances de l’application logicielle obtenues par cette première exécution sont mesurées conformément à certains paramètres prédéterminés.During a next step 104, the first execution of the software application is launched from the administration console 22. It involves exchanges of data useful for its execution between the calculation 12 and storage 16 nodes of the supercomputer of benchmark 10. These exchanges are carried out by the interconnection network 18 according to the MPI protocol, more precisely according to its communication layer, by encapsulating these useful data in the messages of size T 1 . The performance of the software application obtained by this first execution is measured in accordance with certain predetermined parameters.

Au cours d’une étape 106 de préparation d’une deuxième exécution de l’application logicielle considérée, la couche de communication du protocole MPI est paramétrée depuis la console d’administration 22 pour que tous les messages échangés au cours de l’exécution à venir présentent une taille T2différente de T1alors que les données utiles à échanger et à encapsuler dans ces messages sont les mêmes.During a step 106 of preparation for a second execution of the software application considered, the communication layer of the MPI protocol is configured from the administration console 22 so that all the messages exchanged during execution at come have a size T 2 different from T 1 whereas the useful data to be exchanged and to be encapsulated in these messages are the same.

Au cours d’une étape suivante 108, la deuxième exécution de l’application logicielle est lancée depuis la console d’administration 22. Elle implique les mêmes échanges de données utiles à son exécution entre les nœuds de calcul 12 et de stockage 16 du supercalculateur de benchmark 10. Ces échanges sont réalisés à l’identique par le réseau d’interconnexion 18 selon le protocole MPI, plus précisément selon sa couche de communication, en encapsulant ces données utiles dans les messages de taille T2. Les performances de l’application logicielle obtenues par cette deuxième exécution sont mesurées conformément aux paramètres prédéterminés. Avantageusement, la deuxième exécution de l’application logicielle par le supercalculateur de benchmark 10 ne se distingue de la première exécution que par la taille des messages échangés selon la couche de communication du protocole MPI. Plus précisément, la taille T2des messages échangés lors de la deuxième exécution diffère de celle (T1) des messages échangés lors de la première exécution uniquement par ajout ou suppression de données de remplissage dans ces messages. Ces données de remplissage sont inutiles à l’exécution de l’application logicielle et ne servent qu’à faire varier, de T1à T2ou de T2à T1, la taille des messages. Le cas échéant, elles sont incluses dans les messages à l’encapsulation selon la couche de communication du protocole MPI et sont extraites des messages à la désencapsulation selon cette même couche de communication, de sorte qu’elles sont totalement invisibles de l’application logicielle elle-même et de son exécution parallèle par les différents nœuds de calcul 12. Ces opérations sont réalisées dans les interfaces d’entrée/sortie de messages des différents éléments du supercalculateur de benchmark 10, notamment dans les interfaces 30 des nœuds de calcul.During a next step 108, the second execution of the software application is launched from the administration console 22. It involves the same exchanges of data useful for its execution between the calculation 12 and storage 16 nodes of the supercomputer of benchmark 10. These exchanges are carried out identically by the interconnection network 18 according to the MPI protocol, more precisely according to its communication layer, by encapsulating these useful data in the messages of size T 2 . The performance of the software application obtained by this second execution is measured in accordance with the predetermined parameters. Advantageously, the second execution of the software application by the benchmark supercomputer 10 differs from the first execution only by the size of the messages exchanged according to the communication layer of the MPI protocol. More specifically, the size T 2 of the messages exchanged during the second execution differs from that (T 1 ) of the messages exchanged during the first execution solely by adding or deleting padding data in these messages. These padding data are useless for the execution of the software application and only serve to vary, from T 1 to T 2 or from T 2 to T 1 , the size of the messages. If necessary, they are included in the messages on encapsulation according to the communication layer of the MPI protocol and are extracted from the messages on de-encapsulation according to this same communication layer, so that they are completely invisible to the software application. itself and its parallel execution by the different calculation nodes 12. These operations are carried out in the message input/output interfaces of the different elements of the benchmark supercomputer 10, in particular in the interfaces 30 of the calculation nodes.

Si l’on choisit de prendre comme référence la première exécution de l’application logicielle en considérant T1comme la taille nominale des messages sans données de remplissage, alors la taille T2des messages échangés lors de la deuxième exécution ne peut différer de celle (T1) des messages échangés lors de la première exécution que par ajout de données de remplissage pour simuler une réduction de bande passante entre les première et deuxième exécutions. En variante, on pourrait choisir de prendre comme référence la deuxième exécution de l’application logicielle en considérant T2comme la taille nominale des messages sans données de remplissage. Dans ce cas, la taille T1des messages échangés lors de la première exécution différerait de celle (T2) des messages échangés lors de la deuxième exécution uniquement par ajout de données de remplissage pour simuler une réduction de bande passante entre les deuxième et première exécutions. En variante également, les deux exécutions pourraient se faire avec des quantités différentes de données de remplissage, bien évidemment sans altération des données utiles, pour simuler des bandes passantes différentes sous-optimales.If one chooses to take as reference the first execution of the software application by considering T 1 as the nominal size of the messages without padding data, then the size T 2 of the messages exchanged during the second execution cannot differ from that (T 1 ) of the messages exchanged during the first execution only by adding padding data to simulate a reduction in bandwidth between the first and second executions. As a variant, one could choose to take as reference the second execution of the software application by considering T 2 as the nominal size of the messages without padding data. In this case, the size T 1 of the messages exchanged during the first execution would differ from that (T 2 ) of the messages exchanged during the second execution only by adding padding data to simulate a reduction in bandwidth between the second and first executions. Also as a variant, the two executions could be done with different amounts of padding data, obviously without altering the payload data, to simulate different sub-optimal passbands.

Ainsi tout se passe comme si, toutes choses identiques par ailleurs, la bande passante du réseau d’interconnexion 18 avait varié entre les première et deuxième exécutions de l’application logicielle. Si l’on note B1la bande passante apparente du réseau d’interconnexion 18 lors de la première exécution de l’application logicielle et B2la bande passante apparente lors de la deuxième exécution, la relation suivante peut être établie entre B1et B2 :Thus everything happens as if, all other things being identical, the bandwidth of the interconnection network 18 had varied between the first and second executions of the software application. If we note B1the apparent bandwidth of the interconnect network 18 during the first execution of the software application and B2the apparent bandwidth on the second run, the following relationship can be established between B1and B2 :

De façon optionnelle et éventuellement répétée, au cours d’au moins une étape 110 de préparation d’au moins une autre exécution de l’application logicielle considérée, au moins un autre paramètre du supercalculateur de benchmark 10 est modifié depuis la console d’administration 22 ou par intervention physique : par exemple la fréquence d’horloge des processeurs, la bande passante locale d’accès aux mémoires vives associées aux processeurs, etc.Optionally and possibly repeated, during at least one step 110 of preparing at least one other execution of the software application considered, at least one other parameter of the benchmark supercomputer 10 is modified from the administration console 22 or by physical intervention: for example the clock frequency of the processors, the local bandwidth for accessing the random access memories associated with the processors, etc.

Au cours d’une étape 112 exécutée après chaque étape optionnelle 110, une autre exécution de l’application logicielle est lancée depuis la console d’administration 22. Elle implique des échanges de données utiles à son exécution entre les nœuds de calcul 12 et de stockage 16 du supercalculateur de benchmark 10. Les performances de l’application logicielle obtenues par chaque autre exécution sont mesurées conformément aux paramètres prédéterminés.During a step 112 executed after each optional step 110, another execution of the software application is launched from the administration console 22. It involves exchanges of data useful for its execution between the calculation nodes 12 and storage 16 of the benchmark supercomputer 10. The performance of the software application obtained by each other execution is measured according to the predetermined parameters.

Les étapes 104, 108 et éventuellement 112 sont suivies d’une phase 114 d’analyse par extrapolation des performances que l’application logicielle considérée pourrait présenter sur le supercalculateur cible tel que visé par les modifications de paramètres réalisées au cours des étapes 102, 104 et éventuellement 110.Steps 104, 108 and possibly 112 are followed by a phase 114 of analysis by extrapolation of the performances that the software application considered could present on the target supercomputer as targeted by the parameter modifications carried out during steps 102, 104 and possibly 110.

Au cours d’une première étape 116 de cette phase 114, les résultats des étapes 104, 108 et éventuellement 112 sont récupérés et analysés. En particulier, le calcul des bandes passantes B1et B2peut être réalisé à cette étape.During a first step 116 of this phase 114, the results of steps 104, 108 and possibly 112 are retrieved and analyzed. In particular, the calculation of the bandwidths B 1 and B 2 can be carried out at this step.

Au cours d’une étape suivante 118, le modèle d’extrapolation stocké en mémoire est appliqué. Un exemple de modèle va maintenant être présenté. Il est basé sur une vue macroscopique des différents comportements de l’application logicielle et de leur dépendance des caractéristiques du supercalculateur cible considéré : principalement les caractéristiques des processeurs (nombre de cœurs, jeu d’instructions, fréquence, bande passante des accès à la mémoire locale) et du réseau d’interconnexion (latence et bande passante), mais également les performances des nœuds de stockage et du système de fichiers.During a following step 118, the extrapolation model stored in memory is applied. An example model will now be presented. It is based on a macroscopic view of the different behaviors of the software application and their dependence on the characteristics of the target supercomputer considered: mainly the characteristics of the processors (number of cores, instruction set, frequency, memory access bandwidth local) and the interconnection network (latency and bandwidth), but also the performance of the storage nodes and the file system.

Ainsi, il peut être considéré que pour toute application logicielle analysée, le temps d’exécution des différentes tâches peut se décomposer en trois parties :

  • le temps de communication, incluant la part de temps d’exécution gouvernée par l’application du protocole MPI et l’utilisation des composants d’interfaces d’entrée/sortie,
  • le temps CPU, incluant la part de temps d’exécution gouvernée par la fréquence d’horloge des processeurs, et
  • temps de mémoire, incluant la part de temps d’exécution gouvernée par les performances en mémoire principale.
Thus, it can be considered that for any analyzed software application, the execution time of the different tasks can be broken down into three parts:
  • the communication time, including the portion of execution time governed by the application of the MPI protocol and the use of input/output interface components,
  • the CPU time, including the part of execution time governed by the clock frequency of the processors, and
  • memory time, including the portion of execution time governed by performance in main memory.

Il en résulte, par exemple, de modèle d’extrapolation en trois parties suivant :This results, for example, in the following three-part extrapolation model:

Dans ce modèle, T(f,BW,IB) est le temps d’exécution extrapolé sur le supercalculateur cible et Tref est le temps d’exécution sur le supercalculateur de benchmark 10 avec ses propres paramètres. En outre, f est la fréquence d’horloge des processeurs du supercalculateur cible, frefest la fréquence d’horloge des processeurs du supercalculateur de benchmark, BW est la bande passante d’accès à la mémoire locale de chaque cœur de calcul du supercalculateur cible, BWrefest la bande passante d’accès à la mémoire locale de chaque cœur de calcul du supercalculateur de référence, IB est la bande passante du réseau d’interconnexion du supercalculateur cible, IBrefest la bande passante du réseau d’interconnexion du supercalculateur de référence, Nop est le nombre de flops par cycle.In this model, T(f,BW,IB) is the extrapolated execution time on the target supercomputer and Tref is the execution time on the benchmark supercomputer 10 with its own parameters. In addition, f is the clock frequency of the target supercomputer processors, f ref is the clock frequency of the benchmark supercomputer processors, BW is the local memory access bandwidth of each computing core of the supercomputer target, BW ref is the local memory access bandwidth of each computing core of the reference supercomputer, IB is the bandwidth of the target supercomputer interconnect network, IB ref is the bandwidth of the interconnect network of the reference supercomputer, Nop is the number of flops per cycle.

Enfin, les termes en caractères grecs αMPI+IO, αCPU, αBW, ηcollet κ sont des coefficients qui caractérisent l’exécution de l’application logicielle dans une configuration spécifique. Leur détermination est empirique et à la portée de l’homme du métier.Finally, the terms in Greek characters α MPI+IO , α CPU , α BW , η coll and κ are coefficients which characterize the execution of the software application in a specific configuration. Their determination is empirical and within the reach of those skilled in the art.

Par exemple, αMPI+IOest un coefficient déterminable par mesure qui est relatif à la part de code dépendant des communications MPI. Cette information est fournie par une exécution unique de l’application logicielle équipée d’une bibliothèque logicielle de profilage qui intercepte et mesure temporellement les appels API (de l’anglais « Application Programming Interface ») pertinents.For example, α MPI+IO is a coefficient determinable by measurement which relates to the part of code depending on MPI communications. This information is provided by a single execution of the software application equipped with a profiling software library which intercepts and measures in time the relevant API (Application Programming Interface) calls.

Par exemple également, αCPUest un coefficient déterminable par mesure qui est relatif à la part de code dépendant de la fréquence d’horloge CPU. Son calcul peut être résolu en exécutant l’application logicielle sous plusieurs fréquences d’horloge des nœuds de calcul.Also for example, α CPU is a coefficient determinable by measurement which relates to the part of code dependent on the CPU clock frequency. Its calculation can be solved by running the software application under several clock frequencies of the calculation nodes.

Par exemple également, αBWest un coefficient déterminable par mesure qui est relatif à la part de code dépendant de la bande passante des accès CPU à la mémoire locale. Son calcul peut être résolu en exécutant l’application logicielle sous plusieurs bandes passantes BW simulées, notamment en faisant varier le nombre de cœurs de calcul activés dans chaque processeur de chaque nœud de calcul selon différents modes possibles : par exemple un mode « compact » selon lequel tous les processus alloués à un processeur sont liés à un même connecteur de ce processeur, ou un mode « scatter » selon lequel les processus alloués à un processeur sont répartis entre les deux connecteurs de ce processeur (dans ce cas la bande passante est doublée).For example also, α BW is a coefficient determinable by measurement which is relative to the part of code dependent on the passband of the CPU accesses to the local memory. Its calculation can be solved by executing the software application under several simulated BW bandwidths, in particular by varying the number of calculation cores activated in each processor of each calculation node according to different possible modes: for example a “compact” mode according to in which all the processes allocated to a processor are linked to the same connector of this processor, or a "scatter" mode in which the processes allocated to a processor are distributed between the two connectors of this processor (in this case the bandwidth is doubled ).

Par exemple également, ηcollest un coefficient déterminable par mesure qui est relatif au ratio d’opérations de communication collectives par rapport à l’ensemble des opérations de communication. C’est un ratio calculé en prenant le temps d’exécution des opérations collectives divisé par le temps total des opérations de communication collectives et point à point. Par « opérations collectives » on entend des opérations impliquant l’ensemble des processus parallèles d’un groupe de processus, telles que des opérations de réduction (i.e. le fait de fournir une unique valeur en sortie à partir d’une pluralité de valeurs en entrée, comme le calcul d’un maximum par exemple), de diffusion (de l’anglais « broadcast », pour l’envoi d’une valeur de processus à tout un groupe d’autres processus) ou une combinaison de ces types d’opérations. Par « opérations point à point » on entend au contraire des opérations n’impliquant que deux processus, l’un étant émetteur, l’autre récepteur. Pour simplifier le calcul de ce ratio, on peut faire l’hypothèse que le temps d’exécution des opérations collectives est indépendant de la bande passante du système de communication, ce qui se vérifie dans la plupart des cas compte tenu de la très petite taille des messages d’opérations collectives. Ce coefficient peut être mesuré à l’aide de profils d’applications qui permettent de déterminer le temps d’exécution de chaque type d’opération de communication, collective ou point à point.Also for example, η coll is a coefficient determinable by measurement which is relative to the ratio of collective communication operations relative to the set of communication operations. It is a ratio calculated by taking the execution time of the collective operations divided by the total time of the collective and point-to-point communication operations. By "collective operations" is meant operations involving all the parallel processes of a group of processes, such as reduction operations (ie the fact of providing a single output value from a plurality of input values , such as the calculation of a maximum for example), broadcasting (from English "broadcast", for sending a process value to a whole group of other processes) or a combination of these types of operations. By “point-to-point operations” is meant, on the contrary, operations involving only two processes, one being a transmitter, the other a receiver. To simplify the calculation of this ratio, we can assume that the execution time of collective operations is independent of the bandwidth of the communication system, which is true in most cases given the very small size collective operation messages. This coefficient can be measured using application profiles which make it possible to determine the execution time of each type of communication operation, collective or point-to-point.

Par exemple également, κ est un coefficient déterminable par mesure qui est relatif à la sensibilité du temps d’exécution à la vectorisation. Il est généralement déterminé en utilisant différente versions d’une même application compilée avec différents niveaux de jeux d’instructions et en regardant l’effet de chaque jeu d’instructions sur la performance de l’application.For example also, κ is a coefficient determinable by measurement which is relative to the sensitivity of the running time to vectorization. It is usually determined by using different versions of the same application compiled with different levels of instruction sets and looking at the effect of each instruction set on application performance.

En exécutant par exemple l’application logicielle dans la configuration normale non simulée du supercalculateur de benchmark 10 à l’étape 104, c’est-à-dire en échangeant selon le protocole MPI uniquement les données utiles à cette exécution sans ajout de données de remplissage, on peut remplacer IBrefpar B1et IB par B2dans le modèle d’extrapolation. Il en résulte que l’extrapolation des performances de l’application logicielle comporte bien une simulation de variation d’une bande passante du réseau d’interconnexion 18 basée sur la différence de taille prédéterminée des messages échangés lors des deux exécutions 104 et 108.By executing for example the software application in the non-simulated normal configuration of the benchmark supercomputer 10 at step 104, that is to say by exchanging according to the MPI protocol only the data useful for this execution without adding filling, we can replace IB ref by B 1 and IB by B 2 in the extrapolation model. It follows that the extrapolation of the performance of the software application does include a simulation of variation of a bandwidth of the interconnection network 18 based on the difference in predetermined size of the messages exchanged during the two executions 104 and 108.

Plus généralement, lors de l’une des première et deuxième exécutions 104 et 108 de l’application logicielle, chaque message comporte N octets de données utiles transmises d’un nœud de calcul émetteur à un nœud de calcul destinataire, alors que lors de l’autre des première et deuxième exécutions de l’application logicielle, chaque message comporte N+N’ octets de données dont N octets de données utiles transmises d’un nœud de calcul émetteur à un nœud de calcul destinataire et N’ octets de données supplémentaires de remplissage ajoutées dans la couche de communication du protocole MPI mais non fournies au nœud de calcul destinataire et non visibles par l’application logicielle en cours d’exécution. Tout se passe alors comme si le débit du réseau d’interconnexion avait varié d’un facteur N/(N+N’).More generally, during one of the first and second executions 104 and 108 of the software application, each message comprises N bytes of payload data transmitted from a sender computing node to a destination computing node, whereas during the other of the first and second executions of the software application, each message comprises N+N' bytes of data including N bytes of payload data transmitted from a sender computing node to a destination computing node and N' bytes of additional data padding added in the communication layer of the MPI protocol but not supplied to the destination computing node and not visible by the running software application. Everything then happens as if the throughput of the interconnection network had varied by a factor N/(N+N').

Les figures 3, 4 et 5 illustrent comment concrètement le protocole MPI peut simuler la variation de bande passante du réseau d’interconnexion 18 de façon transparente pour l’exécution de l’application logicielle considérée.Figures 3, 4 and 5 illustrate how concretely the MPI protocol can simulate the bandwidth variation of the interconnection network 18 transparently for the execution of the software application considered.

La figure 3 illustre les couches logicielles successives habituellement sollicitées lors d’échanges de données selon le protocole MPI.Figure 3 illustrates the successive software layers usually requested during data exchanges according to the MPI protocol.

La couche supérieure 200 est celle dans laquelle s’exécute l’application logicielle considérée. Pour chaque émission ou réception de données utiles à son exécution elle fait appel à la couche de communication du protocole MPI. Cette couche de communication comporte une première sous-couche 202 de « Front End » et une deuxième sous-couche 204 de fabrique MPI ou « Back End ». La première sous-couche 202 comporte des primitives de demande d’envoi de message destinées à être appelées par l’application logicielle lors de son exécution. La deuxième sous-couche 204 comporte au moins une bibliothèque logicielle d’interfaçage avec au moins un pilote du réseau d’interconnexion 18. La couche inférieure du protocole MPI est celle des pilotes, deux étant représentés dans la figure 3 sous les références 206 et 208.The upper layer 200 is the one in which the software application in question is executed. For each transmission or reception of data useful for its execution, it uses the communication layer of the MPI protocol. This communication layer comprises a first “Front End” sub-layer 202 and a second MPI or “Back End” sub-layer 204. The first sub-layer 202 comprises message sending request primitives intended to be called by the software application during its execution. The second sub-layer 204 comprises at least one interfacing software library with at least one driver of the interconnection network 18. The lower layer of the MPI protocol is that of the drivers, two being represented in FIG. 3 under the references 206 and 208.

Ainsi, comme illustré en grisé sur les figures 4 et 5, la taille des messages échangés par exécution de l’application logicielle considérée est avantageusement modifiée d’une exécution à l’autre par adaptation d’un composant logiciel de la couche de communication 202, 204 du protocole MPI. Cela présente l’avantage d’opérer cette modification de façon totalement transparente pour l’application logicielle.Thus, as illustrated in gray in FIGS. 4 and 5, the size of the messages exchanged per execution of the software application considered is advantageously modified from one execution to another by adaptation of a software component of the communication layer 202 , 204 of the MPI protocol. This has the advantage of making this modification completely transparent to the software application.

Plus précisément, selon un premier mode de réalisation possible illustré sur la figure 4, une couche 202’ comportant une bibliothèque logicielle d’encapsulation de service de passage de messages, dédiée à la modification de taille des messages chaque fois que l’exécution de l’application logicielle implique un appel de primitive de la couche 202, est insérée entre la couche 200 et la couche 202. De cette façon les appels de primitives lancés depuis la couche 200 sont interceptés et interprétés par la couche 202’ comme des appels à la bibliothèque logicielle d’encapsulation, pouvant être qualifiée de « wrapper MPI », chaque appel de primitive de la couche 202 étant alors réalisé par la bibliothèque logicielle d’encapsulation appelée.More precisely, according to a first possible embodiment illustrated in FIG. 4, a layer 202′ comprising a message passing service encapsulation software library, dedicated to modifying the size of the messages each time the execution of the 'software application involves a primitive call from layer 202, is inserted between layer 200 and layer 202. In this way calls to primitives launched from layer 200 are intercepted and interpreted by layer 202' as calls to the encapsulation software library, which can be described as an “MPI wrapper”, each call to a primitive of layer 202 then being carried out by the called encapsulation software library.

Il convient cependant de noter que cette implémentation risque de nécessiter des copies dans des mémoires tampons intermédiaires, ce qui peut fausser les résultats. Il est possible toutefois de corriger cela en mesurant le temps passé spécifiquement dans ces copies.It should be noted, however, that this implementation may require copies in intermediate buffers, which can skew the results. However, it is possible to correct this by measuring the time spent specifically in these copies.

Pour éviter cela, selon un deuxième mode de réalisation possible illustré sur la figure 5, la taille prédéterminée des messages est modifiée d’une exécution à l’autre de l’application logicielle par programmation de cette modification dans la ou les bibliothèque(s) logicielle(s) d’interfaçage de la couche 204 qui est alors modifiée en 204’. Cette modification s’opère donc lorsqu’une bibliothèque logicielle d’interfaçage de la couche 204’ est appelée par une primitive de demande d’envoi de message de la couche 202 elle-même appelée par l’exécution de l’application logicielle de la couche 200 chaque fois qu’un message doit être envoyé.To avoid this, according to a second possible embodiment illustrated in FIG. 5, the predetermined size of the messages is modified from one execution to another of the software application by programming this modification in the library(s) interfacing software(s) of layer 204 which is then modified at 204'. This modification therefore takes place when an interfacing software library of layer 204' is called by a message sending request primitive of layer 202 itself called by the execution of the software application of the layer 200 whenever a message needs to be sent.

Il apparaît clairement qu’un procédé d’analyse par extrapolation tel que celui décrit précédemment permet astucieusement de simuler simplement et sans effets indésirables de non linéarité plusieurs bandes passantes de réseau d’interconnexion sans agir physiquement sur celui-ci, lesquelles peuvent alors être reportées dans un modèle d’extrapolation. Il va de soi que les effets techniques avantageux de la présente invention sont indépendants du choix du modèle d’extrapolation à partir du moment où ce dernier exploite des données issues d’une variation, simulée ou imposée physiquement, de la bande passante du réseau d’interconnexion. Réciproquement, le modèle d’extrapolation décrit précédemment présente des avantages et effets avantageux indépendants de l’objet principal de la présente invention.It clearly appears that a method of analysis by extrapolation such as that described above cleverly makes it possible to simulate simply and without undesirable effects of non-linearity several passbands of the interconnection network without physically acting on it, which can then be transferred in an extrapolation model. It goes without saying that the advantageous technical effects of the present invention are independent of the choice of the extrapolation model from the moment when the latter exploits data resulting from a variation, simulated or physically imposed, of the bandwidth of the network of interconnection. Conversely, the extrapolation model described above has advantages and advantageous effects independent of the main object of the present invention.

On notera par ailleurs que l’invention n’est pas limitée aux modes de réalisation décrits précédemment. Il apparaîtra en effet à l'homme de l'art que diverses modifications peuvent être apportées aux modes de réalisation décrits ci-dessus, à la lumière de l'enseignement qui vient de lui être divulgué. Dans la présentation détaillée de l’invention qui est faite précédemment, les termes utilisés ne doivent pas être interprétés comme limitant l’invention aux modes de réalisation exposés dans la présente description, mais doivent être interprétés pour y inclure tous les équivalents dont la prévision est à la portée de l'homme de l'art en appliquant ses connaissances générales à la mise en œuvre de l'enseignement qui vient de lui être divulgué.It will also be noted that the invention is not limited to the embodiments described above. It will indeed appear to those skilled in the art that various modifications can be made to the embodiments described above, in the light of the teaching which has just been disclosed to them. In the detailed presentation of the invention which is made above, the terms used must not be interpreted as limiting the invention to the embodiments set out in the present description, but must be interpreted to include therein all the equivalents whose provision is within the reach of those skilled in the art by applying their general knowledge to the implementation of the teaching which has just been disclosed to them.

Claims (10)

Procédé (100) d’analyse de performances d’une application logicielle par son exécution parallèle sur plusieurs nœuds de calcul (12) d’une grappe de serveurs de référence (10) comportant en outre plusieurs nœuds de stockage (16) et au moins un réseau (18) d’interconnexion des nœuds de calcul (12) et de stockage (16) entre eux pour l’échange de messages selon un protocole prédéterminé de passage de messages, le procédé comportant :
  • une première exécution (104) de l’application logicielle par la grappe de serveurs (10), impliquant des échanges de données utiles à son exécution entre les nœuds de calcul (12) et de stockage (16) de la grappe de serveurs (10) réalisés par le réseau d’interconnexion (18) selon le protocole prédéterminé en encapsulant ces données utiles dans les messages dont la taille est prédéterminée ;
  • une deuxième exécution (108) de l’application logicielle par la grappe de serveurs (10), impliquant les mêmes échanges de données utiles entre les mêmes nœuds de calcul (12) et de stockage (16) de la grappe de serveurs (10) réalisés par le même réseau d’interconnexion (18) selon le même protocole prédéterminé ;
  • une extrapolation (114) des performances de l’application logicielle sur la base d’au moins l’une des deux exécutions ;
caractérisé en ce que :
  • la taille prédéterminée des messages échangés lors de la deuxième exécution (108) diffère de celle des messages échangés lors de la première exécution (104) alors que les données utiles échangées sont les mêmes ; et
  • l’extrapolation (114) des performances de l’application logicielle comporte une simulation (116) de variation d’une bande passante du réseau d’interconnexion (18) basée sur la différence de taille prédéterminée des messages échangés lors de la première et de la deuxième exécution (104, 108).
Method (100) for analyzing the performance of a software application by its parallel execution on several computing nodes (12) of a cluster of reference servers (10) further comprising several storage nodes (16) and at least a network (18) for interconnecting the calculation (12) and storage (16) nodes with each other for the exchange of messages according to a predetermined message passing protocol, the method comprising:
  • a first execution (104) of the software application by the server cluster (10), involving exchanges of data useful for its execution between the calculation (12) and storage (16) nodes of the server cluster (10 ) carried out by the interconnection network (18) according to the predetermined protocol by encapsulating this useful data in the messages whose size is predetermined;
  • a second execution (108) of the software application by the server cluster (10), involving the same exchanges of useful data between the same calculation (12) and storage (16) nodes of the server cluster (10) carried out by the same interconnection network (18) according to the same predetermined protocol;
  • extrapolating (114) the performance of the software application based on at least one of the two executions;
characterized in that:
  • the predetermined size of the messages exchanged during the second execution (108) differs from that of the messages exchanged during the first execution (104) whereas the useful data exchanged are the same; And
  • the extrapolation (114) of the performance of the software application comprises a simulation (116) of variation of a bandwidth of the interconnection network (18) based on the difference in predetermined size of the messages exchanged during the first and the second execution (104, 108).
Procédé (100) d’analyse de performances d’une application logicielle selon la revendication 1, dans lequel la deuxième exécution (108) de l’application logicielle par la grappe de serveurs (10) ne se distingue de la première exécution (104) que par la taille des messages échangés selon le protocole prédéterminé.A method (100) for analyzing the performance of a software application according to claim 1, in which the second execution (108) of the software application by the cluster of servers (10) is indistinguishable from the first execution (104) only by the size of the messages exchanged according to the predetermined protocol. Procédé (100) d’analyse de performances d’une application logicielle selon la revendication 1 ou 2, dans lequel la taille prédéterminée des messages échangés lors de la deuxième exécution (108) diffère de celle des messages échangés lors de la première exécution (104) uniquement par ajout ou suppression de données dans ces messages, dites données de remplissage, inutiles à l’exécution de l’application.Method (100) for analyzing the performance of a software application according to claim 1 or 2, in which the predetermined size of the messages exchanged during the second execution (108) differs from that of the messages exchanged during the first execution (104 ) only by adding or deleting data in these messages, called filling data, useless for the execution of the application. Procédé (100) d’analyse de performances d’une application logicielle selon l’une quelconque des revendications 1 à 3, dans lequel la simulation (116) de variation de bande passante du réseau d’interconnexion (18) s’exécute par application de la relation suivante :

où T1est la taille prédéterminée des messages échangés selon le protocole prédéterminé lors de la première exécution (104) de l’application logicielle, T2est la taille prédéterminée des messages échangés selon le protocole prédéterminé lors de la deuxième exécution (108) de l’application logicielle, B1est une bande passante apparente du réseau d’interconnexion (18) de la grappe de serveurs de référence (10) et B2est une autre bande passante apparente du même réseau d’interconnexion (18) résultant de la variation de bande passante simulée du réseau d’interconnexion.
A method (100) for analyzing the performance of a software application according to any one of claims 1 to 3, in which the simulation (116) of variation in bandwidth of the interconnecting network (18) is carried out by application of the following relationship:

where T 1 is the predetermined size of the messages exchanged according to the predetermined protocol during the first execution (104) of the software application, T 2 is the predetermined size of the messages exchanged according to the predetermined protocol during the second execution (108) of software application, B 1 is an apparent bandwidth of the interconnect network (18) of the cluster of reference servers (10) and B 2 is another apparent bandwidth of the same interconnect network (18) resulting from the simulated bandwidth variation of the interconnection network.
Procédé (100) d’analyse de performances d’une application logicielle selon l’une quelconque des revendications 1 à 4, dans lequel :
  • lors de l’une des première et deuxième exécutions (104, 108) de l’application logicielle, chaque message comporte N octets de données utiles transmises d’un nœud de calcul émetteur à un nœud de calcul destinataire ;
  • lors de l’autre des première et deuxième exécutions (104, 108) de l’application logicielle, chaque message comporte N+N’ octets de données dont N octets de données utiles transmises d’un nœud de calcul émetteur à un nœud de calcul destinataire et N’ octets de données supplémentaires de remplissage transmises selon une couche de communication du protocole prédéterminé de passage de messages mais non fournies au nœud de calcul destinataire et non visible par l’application logicielle en cours d’exécution.
A method (100) for analyzing performance of a software application according to any one of claims 1 to 4, wherein:
  • during one of the first and second executions (104, 108) of the software application, each message comprises N bytes of payload data transmitted from a sender computing node to a destination computing node;
  • during the other of the first and second executions (104, 108) of the software application, each message comprises N+N' bytes of data including N bytes of payload data transmitted from a transmitting computing node to a computing node destination and N′ bytes of additional filling data transmitted according to a communication layer of the predetermined message passing protocol but not supplied to the destination computing node and not visible by the software application currently running.
Procédé (100) d’analyse de performances d’une application logicielle selon l’une quelconque des revendications 1 à 5, dans lequel la taille prédéterminée des messages est modifiée d’une exécution à l’autre de l’application logicielle par adaptation (202’ ; 204’) d’un composant logiciel de la couche de communication (202’, 202, 204 ; 202, 204’) du protocole prédéterminé de passage de messages, cette couche de communication étant destinée à être appelée lors de chaque exécution de l’application logicielle chaque fois qu’un message doit être envoyé dans le réseau d’interconnexion (18).Method (100) for analyzing the performance of a software application according to any one of claims 1 to 5, in which the predetermined size of the messages is modified from one execution to another of the software application by adaptation ( 202'; 204') of a software component of the communication layer (202', 202, 204; 202, 204') of the predetermined message passing protocol, this communication layer being intended to be called during each execution of the software application each time a message must be sent in the interconnection network (18). Procédé (100) d’analyse de performances d’une application logicielle selon la revendication 6, dans lequel la taille prédéterminée des messages est modifiée d’une exécution à l’autre de l’application logicielle par insertion d’un appel à une bibliothèque logicielle d’encapsulation de service de passage de messages (202’) dédiée à cette modification de taille chaque fois que l’exécution de l’application logicielle implique un appel de primitive de demande d’envoi de message (202) de la couche de communication (202’, 202, 204) du protocole prédéterminé de passage de messages, l’appel de primitive étant alors réalisé par la bibliothèque logicielle d’encapsulation (202’) appelée.A method (100) for analyzing the performance of a software application according to claim 6, in which the predetermined size of the messages is modified from one execution to another of the software application by inserting a call to a library message-passing service encapsulation software (202') dedicated to this size modification each time the execution of the software application involves a request-to-send message primitive call (202) from the communication (202', 202, 204) of the predetermined message passing protocol, the primitive call being then carried out by the called encapsulation software library (202'). Procédé (100) d’analyse de performances d’une application logicielle selon la revendication 6, dans lequel la taille prédéterminée des messages est modifiée d’une exécution à l’autre de l’application logicielle par programmation de cette modification dans au moins une bibliothèque logicielle (204’) d’interfaçage avec au moins un pilote (206, 208) du réseau d’interconnexion (18), ladite bibliothèque logicielle d’interfaçage étant (204’) appelée par une primitive de demande d’envoi de message (202) de la couche de communication (202, 204’) du protocole prédéterminé de passage de messages elle-même appelée par l’exécution de l’application logicielle chaque fois qu’un message doit être envoyé.Method (100) for analyzing the performance of a software application according to claim 6, in which the predetermined size of the messages is modified from one execution to another of the software application by programming this modification in at least one software library (204') for interfacing with at least one driver (206, 208) of the interconnection network (18), said interfacing software library being (204') called by a message sending request primitive (202) of the communication layer (202, 204') of the predetermined message passing protocol itself called by the execution of the software application each time a message must be sent. Procédé (100) d’analyse de performances d’une application logicielle selon l’une quelconque des revendications 1 à 8, dans lequel le protocole prédéterminé de passage de messages est un protocole de type MPI.Method (100) for analyzing the performance of a software application according to any one of claims 1 to 8, in which the predetermined message passing protocol is an MPI type protocol. Programme d’ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu’il comprend des instructions pour l’exécution des étapes d’un procédé (100) d’analyse de performances d’une application logicielle selon l’une quelconque des revendications 1 à 9, lorsque ledit programme est exécuté sur un ordinateur (22).Computer program downloadable from a communication network and/or recorded on a computer-readable medium and/or executable by a processor, characterized in that it comprises instructions for the execution of the steps of a method (100) for analyzing the performance of a software application according to any one of claims 1 to 9, when said program is executed on a computer (22).
FR1910554A 2018-12-21 2019-09-24 Method for analyzing the performance of a software application on a cluster of servers by extrapolation Expired - Fee Related FR3091765B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/722,514 US11334378B2 (en) 2018-12-21 2019-12-20 Method for performance analysis by extrapolation of a software application in a cluster of servers
EP19219167.4A EP3671465B1 (en) 2018-12-21 2019-12-20 Method for analysing the performance of a software application on a cluster of servers by extrapolation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1873784 2018-12-21
FR1873784A FR3091764A1 (en) 2018-12-21 2018-12-21 Modification of the characteristics of fast network interconnection systems: Simulation and Application to predict the performance of parallel applications

Publications (2)

Publication Number Publication Date
FR3091765A1 true FR3091765A1 (en) 2020-07-17
FR3091765B1 FR3091765B1 (en) 2020-12-25

Family

ID=68807141

Family Applications (2)

Application Number Title Priority Date Filing Date
FR1873784A Pending FR3091764A1 (en) 2018-12-21 2018-12-21 Modification of the characteristics of fast network interconnection systems: Simulation and Application to predict the performance of parallel applications
FR1910554A Expired - Fee Related FR3091765B1 (en) 2018-12-21 2019-09-24 Method for analyzing the performance of a software application on a cluster of servers by extrapolation

Family Applications Before (1)

Application Number Title Priority Date Filing Date
FR1873784A Pending FR3091764A1 (en) 2018-12-21 2018-12-21 Modification of the characteristics of fast network interconnection systems: Simulation and Application to predict the performance of parallel applications

Country Status (1)

Country Link
FR (2) FR3091764A1 (en)

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Characterizing large-scale HPC applications through trace extrapolation", PARALLEL PROCESSING LETTERS @WORLD SCIENTIFIC, vol. 23, no. 4, 2013
KERBYSON D J: "A Look at Application Performance Sensitivity to the Bandwidth and Latency of Infiniband Networks", PROCEEDINGS. 20TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM (IEEE CAT. NO.06TH8860), IEEE PISCATAWAY, NJ, USA, 25 April 2006 (2006-04-25), pages 1 - 7, XP010920516, ISBN: 978-1-4244-0054-6, DOI: 10.1109/IPDPS.2006.1639566 *
MARTIN SCHULZ ET AL: "On the Performance of Transparent MPI Piggyback Messages", 7 September 2008, INTERNATIONAL CONFERENCE ON FINANCIAL CRYPTOGRAPHY AND DATA SECURITY; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER, BERLIN, HEIDELBERG, PAGE(S) 194 - 201, ISBN: 978-3-642-17318-9, XP019105791 *
SHARKAWI ET AL.: "SWAPP: a framework for performance projections of HPC applications using benchmarks", IEEE 26TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS & PHD FORUM (PROCEEDINGS OF, 2012

Also Published As

Publication number Publication date
FR3091764A1 (en) 2020-07-17
FR3091765B1 (en) 2020-12-25

Similar Documents

Publication Publication Date Title
US9973568B2 (en) Measuring actual end user performance and availability of web applications
EP0820013B1 (en) Method for real-time monitoring of a computer system for its administration and helping its maintenance during operation
US8112262B1 (en) Service modeling and virtualization
EP1376417B1 (en) Method and system for emulating a circuit under test associated with a test environment
US20110282642A1 (en) Network emulation in manual and automated testing tools
US20080244062A1 (en) Scenario based performance testing
EP3671465B1 (en) Method for analysing the performance of a software application on a cluster of servers by extrapolation
FR3025964A3 (en) AUDIT OF MOBILE APPLICATIONS
WO2008113917A2 (en) Method for simulating the operation of a device with predetermined architecture and processor using another device connected to a computer network
EP1422872A1 (en) Modular method and device for the tracing of a multimedia message through a telecommunications network
FR3091765A1 (en) Method for analyzing the performance of a software application on a server cluster by extrapolation
FR2994782A1 (en) METHOD AND SYSTEM FOR EXECUTING DATA LOADING PROTOCOLS
FR2973908A1 (en) METHOD FOR MODELING, SIMULATION AND EVALUATION IN ADVANCE OF PHASE OF A CALCULATION PLATFORM
EP2497235B1 (en) Diagnostic tool for broadband networks
FR3022058A1 (en) INTERCONNECT NETWORK SIMULATOR AND INTERCONNECT NETWORK SIMULATION METHOD
EP3729273B1 (en) System and method for formulating and executing fonctional tests for cluster de servers
FR2923922A1 (en) METHOD FOR CONTROLLING AT LEAST ONE APPLICATION PROCESS AND CORRESPONDING COMPUTER PROGRAM PRODUCT
Cassaing Which architecture should be implemented to manage data from the real world, in an Unreal Engine 5 simulator and in the context of mixed reality?
Garg Cost And Performance Trade-off Evaluation In Microservices Impacted By The CAP Theorem Limitations
EP4060503A1 (en) Method for mitigating restraints for an operational application and associated system for mitigating restraints
WO2021105262A1 (en) Shared data management system
FR3141301A1 (en) Method for processing a request for execution of a service in a communications network, method for validating the request, intermediate entity, validation entity, corresponding system and computer program
FR3017461A1 (en) TESTING BENCH CONTROL BY RADIO LINK
FR3110310A1 (en) A method of mitigating restraints for an operational application, computer program product and method of determining a stressful application associated therewith
Savva Evaluation of algorithms implementing multiple writer multiple reader atomic registers on planet-lab

Legal Events

Date Code Title Description
PLSC Publication of the preliminary search report

Effective date: 20200717

PLFP Fee payment

Year of fee payment: 2

PLFP Fee payment

Year of fee payment: 3

ST Notification of lapse

Effective date: 20230505