Brevet FR3127592A1 — publié le 20230331

Procédé de supervision et superviseur du pilotage d’un traitement parallèle distribué dans un réseau de communication, dispositif de fourniture de services et programme le mettant en œuvre L'invention concerne les traitements parallèles distribués dans un réseau de communication. Un objet de l’invention est un procédé de supervision du pilotage d’un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par un dispositif de fourniture de services et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le procédé de supervision du pilotage comportant une exécution de l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante. Ainsi, la présente invention se distingue des techniques antérieures en rompant totalement avec la contrainte de disponibilité des données en entrée avant l’exécution d’une composante du traitement. Figure pour l’abrégé : Figure 1a Procédé de supervision et superviseur du pilotage d’un traitement parallèle distribué dans un réseau de communication, dispositif de fourniture de services et programme le mettant en œuvre L'invention concerne les traitements parallèles distribués dans un réseau de communication et plus particulièrement le pilotage de ces traitements parallèles distribués. État de la technique Les traitements parallèles distribués sont utilisés notamment pour le « cloud computing » ou l’exécution de programme dans le réseau, par exemple de services « cloud » distribués, et des applications de l’apprentissage en intelligence artificielle (apprentissage automatique, apprentissage statistique, « machine learning » ou apprentissage machine, apprentissage par la suite). Dans ce domaine, en général, on commence à appliquer les techniques de base de conception de programmes (dits parallèles) distribués, consistant en des modèles de contrôle et de données, des décompositions et des partitions, des placements, des échanges et synchronisations, etc. Ensuite, on conçoit les algorithmes et on effectue les optimisations au cas par cas, avec comme objectif la réduction au mieux des temps de traitement. Les résultats dépendent en grande partie du domaine d’application, et aussi d’un certain savoir-faire en matière d’ingénierie des programmes parallèles, ou d’ingénierie simultanée. Mais dans la plupart des cas, les algorithmes et programmes résultant conduisent à des gains de performance limités, et surtout qui se dégradent fortement avec l’augmentation du nombre d’unités de traitement. Seules les applications dites de parallélisme embarrassant, avec peu de coordination entre les entités parallèles, échappent à cette difficulté. Or, l’écrasante majorité des applications du domaine de l’analyse de données et de l’apprentissage sont loin d’être de parallélisme embarrassant. L’entrainement d’un modèle d’apprentissage profond par exemple n’est absolument pas d’un parallélisme embarrassant. La programmation dite « Dataflow » est un modèle qui remet en cause le principe de contrôle synchrone (instruction par instruction) d’un programme. Elle se distingue par sa façon particulière de piloter le flot de contrôle des programmes parallèles. Récemment appliquée aux plates-formes de traitement temps réel de données massives, elle permet d’éviter des pertes de temps de contrôle, mais pas les temps d’échange, ni les temps d’attente des données. Donc elle permet d’éviter en fait une partie (limitée) des délais de coordination. Par ailleurs la conception et mise en œuvre de programmes « Dataflow » s’avère difficile à maitriser, ce qui limite l’adoption des modèles « Dataflow ». Les techniques antérieures permettent d’accélérer les programmes par traitements parallèles distribués avec un succès limité, mais toutes ces techniques restent fondées sur le pilotage des traitements par la disponibilité des données en entrée. Elles se heurtent toujours à des délais de coordination fortement croissant dès lors qu’on utilise un grand nombre de machine et d’unités de traitement. Dans le cas de traitement parallèles massifs, il arrive souvent qu’au-delà d’une certaine limite, l’ajout d’unités de traitement devient contre-productif. Un des buts de la présente invention est de remédier à des inconvénients de l'état de la technique. Un objet de l’invention est un procédé de supervision du pilotage d’un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par un dispositif de fourniture de services et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le procédé de supervision du pilotage comportant une exécution de l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante. Ainsi, la présente invention se distingue des techniques antérieures en rompant totalement avec la contrainte de disponibilité des données en entrée avant l’exécution d’une composante du traitement. Cette invention permet de lancer l’exécution de la composante distante du traitement (service, programme, méthode, procédure, fonction, etc.) avant la disponibilité des valeurs des paramètres en entrée (aussi nommées, données d’entrée). L’invention concerne tout traitement qui peut être appelé à distance selon la programmation impérative ou déclarative, avec des données d’entrée. Les programmes mettant en œuvre cette invention permettent de limiter encore plus les délais de coordination des traitements parallèles distribués, au-delà de ce qui peut être fait jusque-là. Dans le cas de services distribués demandant des temps importants d’attente des données d’entrées, la mise en œuvre de cette invention permet d’accélérer drastiquement les logiciels distribués, en limitant la part des délais de coordination due aux attentes des données en entrée des traitements. C’est souvent le cas pour les services à parallélisme massif dont les programmes et traitement ne sont pas d’un parallélisme embarrassant, catégorie qui regroupe de nombreux services futurs, en particulier dans d’apprentissage distribué en IA. Avantageusement, le dispositif de supervision du pilotage comporte une fourniture au procédé de pilotage de données de substitution si, lorsque le procédé de pilotage atteint une étape de déclenchement d’exécution d’une deuxième composante du traitement, des données d’entrée fournies par une première composante du traitement et nécessaires au démarrage de l’exécution de la deuxième composante du traitement ne sont pas disponibles. Ainsi, le pilotage du traitement n’est pas modifié puisque le pilotage reçoit des données qu’il considère comme étant des données d’entrée même si celles-ci ne sont pas disponibles permettant de déclencher le pilotage de l’exécution de la composante de traitement correspondante soit sans données d’entrée, soit en utilisant les données de substitution. Le pilotage est alors dit asynchrone puisqu’il commande l’exécution d’une composante du traitement sans fournir les données d’entrées ad hoc. Avantageusement, le procédé de supervision comporte une lecture de données d’entrée d’une précédente exécution de la deuxième composante, les données d’entrée de la précédente exécution constituant les données de substitution. Ainsi, la composante de traitement est exécutée en utilisant des données de substitution qui sont probablement équivalentes aux données d’entrées attendues, par équivalentes est entendu que le résultat du traitement sera identique ou approche de celui produit avec les données d’entrées attendues tout en réduisant le délai de fourniture du résultat. Avantageusement, le procédé de supervision comporte une prédiction de données d’entrée, les données d’entrée prédites constituant les données de substitution. Ainsi, le risque d’erreur de traitement est encore réduit tout en conservant la réduction de délai. Avantageusement, le procédé de supervision comporte, lors de la clôture du traitement, un enregistrement des données d’entrées des composantes du traitement en cours d’exécution. Ainsi, les données de substitution peuvent se baser au moins sur les données d’entrée de la précédente exécution du traitement limitant les risques d’erreurs de traitement. Avantageusement, le procédé de supervision itère, lors de la clôture du traitement, un compteur d’invocation initialisé à zéro. Avantageusement, le procédé de supervision comporte une association du compteur d’invocation aux données enregistrées. Ainsi, les données de substitution peuvent se baser outre sur les données des précédentes exécutions du traitement mais aussi sur leurs évolutions réduisant encore les risques d’erreurs de traitement. Avantageusement, la prédiction est fonction d’au moins une des données parmi les suivantes des données d’entrées enregistrées et du compteur d’invocation associé. Avantageusement, le procédé de supervision comporte, si le procédé de supervision reçoit des données d’un première composante destinée à une deuxième composante après l’exécution de l’étape de déclenchement d’exécution de la deuxième composante, une fourniture des données provenant de la première composante à la deuxième composante si une erreur de prédiction est détectée en fonction des données d’entrées prédites et des données d’entrée reçues. Ainsi, les erreurs de traitement sont limitées car la dérive de prédiction est stoppée. Avantageusement, selon une implémentation de l'invention, les différentes étapes du procédé selon l'invention sont mises en œuvre par un logiciel ou programme d'ordinateur, ce logiciel comprenant des instructions logicielles destinées à être exécutées par un processeur de données d’un superviseur de pilotage d’un traitement faisant notamment partie d’un dispositif de fourniture de services et étant conçus pour commander l'exécution des différentes étapes de ce procédé. L'invention vise donc aussi un programme comprenant des instructions de code de programme pour l’exécution des étapes du procédé de supervision du pilotage d’un traitement lorsque ledit programme est exécuté par un processeur. Ce programme peut utiliser n'importe quel langage de programmation et être sous la forme de code source, code objet ou code intermédiaire entre code source et code objet tel que dans une forme partiellement compilée ou dans n'importe quelle autre forme souhaitable. Un objet de l’invention est également un superviseur du pilotage d’un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par un contrôleur d’un dispositif de fourniture de services comportant le Superviseur et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le superviseur comportant un découpleur 110 apte à commander l’exécution de l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante. Avantageusement, le superviseur comporte une mémoire apte à stocker des données, lors de la clôture du traitement, des données d’entrées des composantes du traitement en cours d’exécution. Avantageusement, le superviseur comporte un compteur d’invocation initialisé à zéro et apte à être itéré lors de la clôture du traitement. Un objet de l’invention est aussi un dispositif de fourniture de services comportant un contrôleur apte à piloter un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par le contrôleur et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le dispositif de fourniture de services comportant un superviseur apte à commander l’exécution l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante. Les caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description, faite à titre d'exemple, et des figures s’y rapportant qui représentent : , un schéma simplifié d’un procédé de supervision du pilotage d’un traitement parallèle distribué selon l’invention, , un schéma détaillé non exhaustif d’une première partie d’un procédé de supervision du pilotage d’un traitement parallèle distribué selon l’invention, , un schéma simplifié d’une deuxième partie d’un procédé de supervision du pilotage d’un traitement parallèle distribué selon l’invention, , un schéma simplifié d’un traitement parallèle distribué, , un schéma simplifié d’un organigramme illustrant le procédé de supervision selon l’invention, , un schéma simplifié d’une architecture de communication distribuée comportant un superviseur selon l’invention, , un schéma simplifié d’une architecture de communication dans laquelle une composante d’un traitement est mise en œuvre dans un nœud distant d’un dispositif de fourniture de service pilotant le traitement selon l’invention, , un schéma simplifié d’une architecture de communication comportant un dispositif de fourniture de service supervisant de manière distincte le pilotage de l’exécution par des nœuds distants d’une composante d’un traitement et la prédiction des données d’entrées des composantes ad hoc. Procédé de supervision du pilotage d’un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par un dispositif de fourniture de services et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le procédé de supervision du pilotage comportant une exécution de l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante. Procédé de supervision du pilotage d’un traitement selon la revendication précédente, dans lequel, si, lorsque le procédé de pilotage atteint une étape de déclenchement d’exécution d’une deuxième composante du traitement, des données d’entrée fournies par une première composante du traitement et nécessaires au démarrage de l’exécution de la deuxième composante du traitement ne sont pas disponibles, le dispositif de supervision du pilotage comporte une fourniture au procédé de pilotage de données de substitution. Procédé de supervision du pilotage d’un traitement selon la revendication précédente, dans lequel le procédé de supervision comporte une lecture de données d’entrée d’une précédente exécution de la deuxième composante, les données d’entrée de la précédente exécution constituant les données de substitution. Procédé de supervision du pilotage d’un traitement selon la revendication 2, dans lequel le procédé de supervision comporte une prédiction de données d’entrée, les données d’entrée prédites constituant les données de substitution. Procédé de supervision du pilotage d’un traitement selon l’une quelconque des revendications précédentes, dans lequel le procédé de supervision comporte, lors de la clôture du traitement, un enregistrement des données d’entrées des composantes du traitement en cours d’exécution. Procédé de supervision du pilotage d’un traitement selon l’une quelconque des revendications précédentes, dans lequel le procédé de supervision itère, lors de la clôture du traitement, un compteur d’invocation initialisé à zéro. Procédé de supervision du pilotage d’un traitement selon les revendications 5 et 6, dans lequel le procédé de supervision comporte une association du compteur d’invocation aux données enregistrées. Procédé de supervision du pilotage selon l’une quelconque des revendications 4 à 6 selon la revendication 4, dans lequel la prédiction est fonction d’au moins une des données parmi les suivantes des données d’entrées enregistrées et du compteur d’invocation associé. Procédé de supervision du pilotage d’un traitement selon l’une quelconque des revendications 4 à 8 selon la revendication 4, dans lequel le procédé de supervision comporte, si le procédé de supervision reçoit des données d’un première composante destinée à une deuxième composante après l’exécution de l’étape de déclenchement d’exécution de la deuxième composante, une fourniture des données provenant de la première composante à la deuxième composante si une erreur de prédiction est détectée en fonction des données d’entrées prédites et des données d’entrée reçues. Programme comprenant des instructions de code de programme pour l’exécution des étapes du procédé de supervision du pilotage d’un traitement selon l’une quelconque des revendications précédentes lorsque ledit programme est exécuté par un processeur. Superviseur du pilotage d’un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par un contrôleur d’un dispositif de fourniture de services comportant le Superviseur et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le superviseur comportant un découpleur apte à commander l’exécution l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante. Superviseur selon la revendication précédente, dans lequel le superviseur comporte une mémoire apte à stocker des données, lors de la clôture du traitement, des données d’entrées des composantes du traitement en cours d’exécution. Superviseur selon l’une quelconque des revendications 11 ou 12, dans lequel le superviseur comporte un compteur d’invocation initialisé à zéro et apte à être itéré lors de la clôture du traitement. Dispositif de fourniture de services comportant un contrôleur apte à piloter un traitement parallèle distribué dans un réseau de communication, le traitement parallèle distribué étant constitué d’un procédé de pilotage mis en œuvre par le contrôleur et de plusieurs composantes du traitement, dont une première composante et deuxième composante, réparties sur des nœuds du réseau de communication, le procédé de pilotage comportant une succession d’étapes dont une étape de déclenchement d’exécution d’une composante du traitement par un nœud, le dispositif de fourniture de services comportant un superviseur apte à commander l’exécution l’étape de déclenchement d’exécution d’une composante du traitement dès que le procédé de pilotage atteint l’étape de déclenchement de l’exécution de cette composante.