FR2857472A1 - Systeme de gestion distribuee des ressources informatiques et des calculs - Google Patents

Systeme de gestion distribuee des ressources informatiques et des calculs Download PDF

Info

Publication number
FR2857472A1
FR2857472A1 FR0308501A FR0308501A FR2857472A1 FR 2857472 A1 FR2857472 A1 FR 2857472A1 FR 0308501 A FR0308501 A FR 0308501A FR 0308501 A FR0308501 A FR 0308501A FR 2857472 A1 FR2857472 A1 FR 2857472A1
Authority
FR
France
Prior art keywords
machine
machines
network
task
tasks
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
FR0308501A
Other languages
English (en)
Other versions
FR2857472B1 (fr
Inventor
Olivier Flauzac
Michael Krajecki
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.)
Universite de Reims Champagne Ardenne URCA
Original Assignee
Universite de Reims Champagne Ardenne URCA
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 Universite de Reims Champagne Ardenne URCA filed Critical Universite de Reims Champagne Ardenne URCA
Priority to FR0308501A priority Critical patent/FR2857472B1/fr
Priority to PCT/FR2004/001814 priority patent/WO2005008492A2/fr
Publication of FR2857472A1 publication Critical patent/FR2857472A1/fr
Application granted granted Critical
Publication of FR2857472B1 publication Critical patent/FR2857472B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

Système de gestion distribuée des ressources informatiques et de calculs comprenant un réseau reliant des machines actives ou inactives, le système permettant la résolution de tâches, dont l'ensemble des tâches constitue un unique problème à résoudre, une tâche étant exécutée par une des machines actives du réseau à l'aide d'un applicatif (22a), le système de l'invention est caractérisé en ce que chaque machine du système comprend un moyen de sélection d'au moins une adresse réseau (21 b) correspondant à une autre machine du système, un moyen informatique de gestion des ressources informatiques (20) comportant entre autres, un moyen de mise à jour des informations concernant l'état des tâches, ces informations étant véhiculées à travers le réseau par le biais d'un message (4), et un moyen de sélection aléatoire d'une tâche, les machines actives comprenant également l'applicatif (22a) et les données (23a) destinés à la résolution du problème.

Description

Système de gestion distribuée des ressources informatiques et des
calculs.
La présente invention concerne un système de gestion distribuée des ressources informatiques et des données. La présente invention concerne 5 plus particulièrement un système de gestion de la distribution de calculs à travers un réseau informatique.
Le besoin de puissance de calcul et de capacité de stockage de données, dans un système informatique, augmente continuellement, de même que la capacité de calcul. Pendant plusieurs années le calcul et le io stockage de données étaient réalisés de manière centralisée. II y a peu d'années une nouvelle approche a émergée: la distribution du calcul et du stockage de données sur tout un réseau spécifique comme, par exemple, le réseau Internet. Cette approche, appelée globalisation des ressources informatique et des données ou encore GRID, est un moyen de mettre en is commun des puissances informatiques proposées par des machines connectées à un réseau.
Les méthodes et logiciels, utilisant le système de calcul par GRID, sont déjà connus. On peut comparer ce système par analogie avec les réseaux électriques: lorsqu'un besoin en puissance électrique est émis, le système de gestion de puissance électrique permet un accès au réseau électrique comprenant des centrales nucléaires, des centrales hydrauliques et autres. Dans le cas d'espèce, le réseau informatique, par exemple Internet, permet d'accéder à la puissance informatique de machines connectées à distances, nécessaires pour réaliser un calcul important, par exemple de simulation ou de modélisation. Les machines utilisées pour ces calculs par GRID sont des machines standards de bureau tels que des ordinateurs de type PC ou des stations de travail, mais aussi des machines dites machines parallèles comprenant plusieurs processeurs, permettant de traiter plusieurs tâches de manière parallèle ainsi que des clusters ou des réseaux dédiés.
Les applications d'un système GRID sont désignées pour deux objectifs principaux: le partage de données et le calcul distribué.
Les applications GRID de distribution de calcul ont pour objectif de partager un calcul à travers un réseau, pour construire une solution générale.
s Les méthodes et logiciels de calcul par GRID, s'appliquant au calcul, sont actuellement basées sur une architecture client / serveur, dite également calcul par approche centralisée. La figure 5 représente un mode de réalisation connu de réseau informatique comprenant l'architecture client / serveur. Un client offre ses ressources de calcul à un serveur (S) qui io assure la gestion d'un calcul à grande échelle. Ce réseau comprend tout d'abord un serveur (S) connecté à des ordinateurs (PC1, PC2, PC3 et PC4) distants volontaires pour effectuer un calcul. Le serveur (S) distribue à chaque ordinateur (PC1, PC2, PC3 ou PC4) connecté, un calcul et les données appropriées à ce calcul. Les ordinateurs (PC1, PC2, PC3 et PC4) is réalisent le calcul et envoient le résultat au serveur (S). Ce dernier collecte tous les résultats pour en faire une synthèse. Il est possible de multiplier et de hiérarchiser les serveurs pour garantir la disponibilité du service de calcul comme représenté sur la figure 6.
La globalisation des calculs informatique est classée en plusieurs catégories. Une des catégories concerne les familles d'applications spécialisées dans le calcul d'un problème particulier, par exemple l'analyse de l'écoute de signaux extraterrestres. Pour traiter ces signaux, le serveur (S) distribue des morceaux de signaux qui sont analysés par au moins un ordinateur (PC1, PC2, PC3 ou PC4) volontaire connecté par Internet.
L'ordinateur (PC1, PC2, PC3 ou PC4) réalise l'analyse et renvoie le résultat au serveur (S). Une autre catégorie concerne la famille des protocoles et bibliothèques et intergiciels (middelware), assemblés ensemble pour aider dans le développement d'une application dédiée. Ces données étant très importantes, on ne peut pas stocker les bases de données sur chaque ordinateur volontaire. Le partage de données est réalisé aussi pour les grandes distances, dans le cas d'une entreprise sur plusieurs sites géographiques éloignés. Des inconvénients majeurs sont liés à l'approche centralisée. Un premier inconvénient est la fiabilité du système. La défaillance du serveur peut entraîner la perte des résultats ou d'une partie des données. Pour remédier à ce problème, une solution actuelle consiste à multiplier les serveurs. Ces solutions de calcul par GRID ciblent l'utilisation de machines déterminées et homogènes, par exemples: un calcul à partir d'un réseau comprenant uniquement des ordinateurs de type PC travaillant sous Windows, un calcul à partir d'un réseau comprenant uniquement des machines parallèles. Un autre inconvénient concerne les difficultés liées au déploiement du système. Les couches de logiciels à installer demandent des io compétences très fortes. Un dernier inconvénient concerne la sécurité liée aux ordinateurs volontaires par rapport au calcul demandé.
Le deuxième objectif principal d'un système de calcul par GRID est le partage des données. Le but des applications GRID de partage de données est de permettre à des utilisateurs de partager ou de récupérer des données dans des formats différents à travers un réseau. Ces applications sont basées sur plusieurs éléments: la recherche de fichier, la publication de fichier, le ramassage de statistiques et bien sûr le téléchargement de fichiers. Certains projets connus utilisent une architecture de réseau dite distribuée pour réaliser un partage de données. Cette structure se compose d'ordinateurs connectés les uns aux autres de manière locale ou distante. Aucun serveur n'est présent dans le réseau. Cependant l'inconvénient actuel de cette structure est sa mise en oeuvre lourde, nécessitant de fortes compétences en informatique.
La présente invention a pour but de pallier certains inconvénients de l'art antérieur en proposant un système de gestion distribuée des ressources informatiques de calcul, utilisant une approche distribuée, pouvant être appliqué sur tout type de machine et étant facilement et rapidement installé.
Ce but est atteint par un système de gestion distribuée des ressources informatiques et de calculs comprenant un réseau reliant des machines actives ou inactives, le système permettant la résolution de tâches, l'ensemble des dites tâches constituant un unique problème à résoudre, une tâche étant exécutée par une des machines actives appartenant au réseau à l'aide d'un applicatif destiné au problème à résoudre, le système de l'invention est caractérisé en ce que chaque machine active et inactive du système comprend un moyen de sélection d'au moins une adresse réseau correspondant à une autre machine du système, un moyen informatique de gestion des ressources informatiques comportant entre autres, un moyen de mise à jour des informations concernant l'état des tâches, ces informations étant véhiculées à travers le réseau par le biais d'un message de communication par exemple de type jeton, et un moyen de sélection aléatoire d'une des tâches appartenant au problème à résoudre, les lo machines actives pouvant obtenir également l'applicatif et les données destinées à la résolution du problème, ledit applicatif étant des informations téléchargées lors de l'insertion dans le système.
Selon une autre particularité, le moyen informatique de gestion des ressources informatique comprend un administrateur de topologies et de is communication réseau, un administrateur de gestion des tâches et un calculateur de tâches, le moyen informatique de gestion de ressources informatique étant représenté par un programme développé en langage orienté objet permettant une compatibilité du moyen informatique de gestion des ressources informatique à tout type de système d'exploitation ouvert implanté sur des machines.
Selon une autre particularité, le programme orienté objet comprend différents sous-programmes dont: un sous-programme principal permettant l'appel aux autres sous-programmes, un sous programme comprenant les paramètres de communication réseau et de gestion des tâches, un sousprogramme de contrôle du réseau exécuté par l'administrateur de topologie et de communication réseau, un sous programme de mise à jour de l'état des tâches et de sélection des tâches, exécuté par l'administrateur de gestion des tâches, un sous-programme de résolution des tâches permettant également de réaliser une interface entre le moyen informatique de gestion des ressources informatique et l'applicatif dédié à la résolution spécifique des tâches appartenant à un problème précis, ledit sous programme étant réalisé par le calculateur de tâches.
Selon une autre particularité, le programme orienté objet du moyen informatique de gestion des ressources informatiques est développé en langage java.
io Selon une autre particularité, les machines appartenant au système informatique de gestion des ressources informatique et des données peuvent être monoprocesseur et multiprocesseur.
Selon une autre particularité, les machines actives multiprocesseurs appartenant au système de gestion des ressources informatiques et des données calculent autant de tâches disponibles qu'il y a de processeurs.
Selon une autre particularité, l'architecture du réseau est une architecture totalement distribuée.
Selon une autre particularité, l'architecture distribuée du réseau est structurée selon une topologie virtuelle particulière telle qu'en anneau, permettant de relier une machine à deux autres machines, chaque machine ayant deux machines voisines, la communication entre les machines étant réalisée par un message de communication.
Selon une autre particularité, l'architecture distribuée du réseau est structurée sans topologie virtuelle particulière, les machines susceptibles de participer au calcul se reliant les unes aux autres de manière aléatoire et s'échangeant de manière aléatoire des informations sur l'état des tâches.
Selon une autre particularité, le message de communication comprend des informations sur l'état de chaque tâche du calcul.
Selon une autre particularité, les tâches d'un problème sont identifiées par un numéro d'adressage et les états possibles d'une tâche sont représentés par des valeurs spécifiques, dont l'état d'une tâche disponible et l'état d'une tâche en cours pouvant chacun être représenté par une valeur négative, l'état d'une tâche calculée étant représenté par une valeur positive correspondant au résultat du calcul ou au numéro unique de l'objet contenant le résultat.
Selon une autre particularité, l'installation du système de gestion distribuée des ressources informatiques et des données sur au moins une machine est réalisée par l'intermédiaire d'un moyen de mémorisation.
Selon une autre particularité, le moyen de mémorisation est un moyen de stockage mobile.
Selon une autre particularité, l'installation du système de gestion io distribuée des ressources informatiques et des données sur au moins une machine est réalisée par l'intermédiaire d'un moyen de téléchargement distant accessible par réseau.
Selon une autre particularité, le moyen de sélection d'au moins une adresse d'une machine appartenant au système comprend un fichier is d'adresses mémorisées dont le contenu est spécifique à chaque machine appartenant au système.
Selon une autre particularité, le moyen de sélection d'au moins une adresse d'une machine du système comprend un moyen de tirage d'une adresse parmi les adresses des machines du système machine, la communication s'établissant entre deux machines du système dès qu'une des deux machines répond à l'autre machine émettrice de l'appel.
Selon une autre particularité, le système de gestion distribuée des ressources informatiques et des données peut être appliqué à toute plateforme informatique comprenant tout type de machine, tout type de système d'exploitation et tout type d'architecture matérielle supportant un langage orienté objet.
Un autre but est atteint par un procédé utilisé par le système de gestion des ressources informatiques et des données, permettant la mise en place d'un réseau constitué d'au moins deux machines calculant les tâches destinées à la résolution d'un problème, le procédé comprend les étapes suivantes - au moins une première machine devenue active s'adresse à une deuxième machine active par un message de communication pour participer au calcul des tâches, la première machine sélectionnant la deuxième machine par un moyen de sélection dans sa mémoire des adresses des machines du système, - la deuxième machine transmet à la ou les premières machines, l'applicatif et les données destinés à la résolution du problème, à l'aide du message de communication, - la ou les premières machines sélectionnent chacune de manière io aléatoire à l'aide d'un moyen de sélection, une tâche non calculée de l'applicatif à exécuter sur la machine, - une fois la tâche calculée, la machine ayant terminée le calcul, met à jour, à l'aide d'un moyen de mise à jour, l'information sur l'état de la tâche de manière locale dans le message de communication, - une fois que toutes les tâches de l'applicatif sont calculées, les machines se déconnectent du réseau défini pour cet applicatif.
Selon une autre particularité, une machine qui vient de se déconnecter du réseau dont l'applicatif a été exécuté, scrute son fichier d'adresse pour déterminer une autre machine a laquelle elle peut se connecter.
D'autres particularités et avantages de la présente invention apparaîtront plus clairement à la lecture de la description ci-après, faite en référence aux dessins annexés, dans lesquels: - la figure 1 représente un schéma d'une architecture réseau, du système de calcul par GRID, ayant une structure en anneau, selon un mode 25 de réalisation de la présente invention; - la figure 2 représente le schéma de composition d'un jeton selon le mode de réalisation de la présente invention; - la figure 3 représente un schéma d'échange d'information entre deux machines lors de l'insertion d'une des deux machines dans le réseau; - la figure 4 présente le schéma d'une variante de structure réseau, selon la présente invention, réalisée de manière aléatoire; - la figure 5 représente le schéma d'un mode de réalisation connu de réseau informatique comprenant une architecture centralisée; - la figure 6 représente le schéma d'un mode de réalisation connu de réseau informatique comprenant une architecture hiérarchisée utilisant 5 plusieurs serveurs.
La présente invention se base sur le principe connu du système de calcul par GRID. Ce principe est de résoudre un problème nécessitant un calcul approprié, important à réaliser, à l'aide d'un partage de puissance informatique. Pour résoudre ce problème trois étapes sont nécessaires.
io Premièrement, la décomposition du problème en un ensemble de tâches. Deuxièmement, la distribution des tâches à des ordinateurs connectés de manière distante, qui proposent l'analyse d'au moins une tâche. Troisièmement, la collecte des résultats calculés par les machines connectées au réseau.
La première étape concerne l'analyse d'un problème impliquant un calcul important. Cette analyse est réalisée par un utilisateur, par exemple un chercheur ou un développeur. Elle consiste à découper le calcul en segments de calcul appelés dans la suite de la description, des tâches pour une meilleure compréhension du système. La découpe doit être réalisée suivant des règles précises. Une tâche ne doit émettre aucune hypothèse concernant l'exécution d'une autre tâche. II n'y a donc aucune communication entre les tâches. Le système proposé est particulièrement adapté au cas des tâches dont le temps d'exécution ne peut être prévisible, cas des tâches dites régulières, mais il est également en mesure de gérer efficacement le cas des tâches dont le temps d'exécution est connu à l'avance ou égal entre toutes les tâches, le cas régulier. Troisièmement le même algorithme est appliqué pour calculer toutes les tâches de l'application. Ainsi, deux tâches sont distinguées par le jeu de données qu'elles traitent. Chaque tâche, une fois spécifiée, doit être identifiée par un numéro. Une fois l'analyse terminée un composant logiciel, permettant la résolution d'une de ces tâches élémentaires, est développé. Ce composant également appelé applicatif dans la suite de la description est ensuite intégré au logiciel de la présente invention, le tout étant installé sur la machine initiatrice du calcul.
La présente invention concerne un système composé d'un logiciel applicable sur tout type de machine, on l'appelle également un intergiciel ( middelware en anglais). C'est un logiciel pour le calcul pair à pair. Son objectif est de distribuer à travers le réseau, toutes les tâches obtenues par la décomposition d'un problème, de résoudre chaque tâche distribuée et d'étendre, à travers le réseau, les résultats calculés de ces tâches. Ce logiciel est complètement distribué et est réalisé pour être applicable sur tout io type de réseau. Les réseaux sont basés sur différents systèmes d'exploitations, tels que windows et linux ou sur différents matériels, tels qu'un ordinateur de type PC, une machine parallèle, ou sur tout type d'architecture. Dans la présente invention toutes les topologies virtuelles sont applicables et exploitables, qu'elles soient régulières comme la topologie en anneau, en chaîne, en grille torique ou qu'elles soient récursivement construites comme la topologie hypercube, en réseau papillon ou qu'il y ait une absence de topologie virtuelle.
La figure 1 présente un schéma d'une architecture réseau, du système de calcul par GRID, ayant une structure en anneau, selon un mode de réalisation de la présente invention. Cette structure est une approche distribuée. Elle comprend des machines monoprocesseur, tels que des ordinateurs (2) ou des machines multiprocesseurs à mémoire partagée (3), telles que les machines parallèles. Ces machines sont connectées les unes aux autres par une liaison distante (5) de manière à former un anneau.
Chaque machine est connectée uniquement à deux autres machines, elles même connectées à une autre machine. Une fois que toutes les machines sont reliées, la structure (1) ressemble à un anneau. Le logiciel (20), de la présente invention, est installé sur toutes machines susceptibles de se connecter au réseau. Ce logiciel (20) comprend trois éléments principaux: un administrateur de topologie et de communication (200) qui permet de connaître la structure virtuelle du réseau, un administrateur de tâche (201) permettant de contrôler le choix des tâches, et un calculateur de tâche (202) i0 dédié à un problème spécifique. L'administrateur de tâches (201) peut contrôler plusieurs calculateurs de tâches (202), si tous les calculateurs de tâches (202) sont lancés sur la même machine, par exemple une machine parallèle (3). Chaque machine est propriétaire d'un jeu de données.
Dans le protocole d'une architecture en anneau représentée sur la figure 1, une machine quelconque volontaire démarre, par exemple PC1, le traitement d'une tâche quelconque appartenant au calcul segmenté. La machine PC1 va choisir cette tâche de manière aléatoire. Une deuxième machine volontaire se présente, par exemple PC2, en se connectant à la lo machine PC1 de manière distante. La machine PC1 va transmettre les paramètres de l'application à PC2 permettant de créer un lien en anneau entre les deux machines. La machine PC2 va savoir q'une tâche est en cours de calcul et commence le calcul d'une autre tâche choisie également de manière aléatoire. Si une troisième machine, PC3, entre dans l'anneau, elle se connectera aux deux machines PC1 et PC2 pour former une structure en anneau. Une fois insérée dans l'anneau, une machine acquière la connaissance des différents paramètres du calcul actuel. Cette machine est capable d'installer les paramètres locaux des tâches à calculer. Pour éviter un calcul multiple de la même tâche par toutes les machines de l'anneau, l'administrateur de tâche (201) d'une machine donne au calculateur de tâche (202) un numéro, choisi de manière aléatoire, associé à une tâche. Cette tâche est connue à ce moment comme non- calculée. Chaque machine doit être capable de faire le lien entre les numéros et les données. La communication entre les machines est réalisée par un jeton (4) transmettant l'état du calcul à travers l'anneau. Le jeton (4) se promène de machine en machine et, est mis à jour localement par les machines. La machine une fois son calcul terminé et une fois que le jeton (4) est présent, analyse les informations du jeton pour connaître les tâches exécutées de façon distante, et ajoute l'information qu'elle a calculée. Quand la totalité du calcul est réalisée, l'anneau se détruit et le résultat du calcul est connu par toutes les machines. Dans le cas particulier des machines multiprocesseur, tel que MP4 (3) représentée sur la figure 1, la machine va prendre autant de tâches 2857472 Il qu'il y a de processeurs. Par exemple si la machine comprend trois processeurs la machine va traiter trois tâches. Dès que le jeton (4) arrive et que les calculs sont terminés, le jeton (4) est mis à jour par rapport aux trois résultats obtenus. Des tâches peuvent être calculées en parallèle par des s machines différentes. Ces tâches, appelées tâches répétées, sont nécessaires pour garantir un calcul asynchrone complètement distribué sans l'utilisation d'un serveur distribuant les tâches ou sans aucun ordonnateur centralisé. En utilisant cette stratégie, aucune machine ne doit attendre pour un jeton, afin de calculer une tâche.
io La figure 2 représente le schéma de composition d'un jeton (4) selon le mode de réalisation de la présente invention. Le jeton (4) comporte un tableau (41) comprenant l'état de toutes les tâches (410, 411, 412). Chaque tâche est identifiée dans le jeton (4), par un numéro (40), précédemment défini lors de la phase de découpe du problème à résoudre. Ce numéro (40) is représente ici l'adresse de la tâche, qui permettra de connaître son état. Le jeton (4) contient un encodage de l'état des tâches sous forme d'objet à état unique permettant de différencier l'état de la tâche. L'état d'une tâche disponible, non-calculée, (412) prendra une valeur spécifique, dans notre exemple cette valeur est -1 . L'état, d'une tâche en cours d'exécution (411), prendra une autre valeur spécifique, dans notre exemple cette valeur est -2 . L'état, d'une tâche calculée (410), prendra la valeur correspondant au résultat du calcul ou un objet contenant le résultat. Ce résultat est représenté par un entier positif qui sera à terme un objet représentant par exemple le résultat d'un calcul de modélisation météo. L'expression objet fait ici référence à un élément d'un programme développé en langage orienté objet. Cette notion est expliquée dans la suite de la description.
Un problème, lié à l'architecture en anneau du réseau, est constitué par l'évolution permanente de l'anneau au cours du calcul. Cette évolution consiste en l'ajout au réseau ou la perte dans le réseau d'une machine durant le calcul. Si une machine est défaillante, le système perd les résultats calculés par cette dernière depuis la dernière visite du jeton. Le système doit être capable de reconfigurer la topologie virtuelle, et si nécessaire, de recréer un jeton et de recalculer les tâches dont le résultat à été perdu. Une solution à ce problème est la mémorisation par chaque machine d'un ensemble de K adresses de machines présentes dans le système, K étant déterminé selon les propriétés du réseau. Il peut dons y avoir K-1 machines consécutives qui s tombent simultanément en panne. En référence à la figure 1, les machines PC1 et PC2 peuvent être en même temps défaillante. La machine MP4 du réseau doit avoir mémorisé l'adresse de la machine PC3 pour pouvoir reconstruire une structure virtuelle correcte.
Lors de l'installation d'une application de calcul par GRID déjà connue io dans l'art antérieur, il est nécessaire de mettre en place une couche logicielle permettant de réaliser un lien entre les différentes machines du réseau. Cette couche logiciel est très difficile à mettre en oeuvre, elle nécessite des compétences importantes en informatique. Sur cette couche, est ensuite ajoutée l'application permettant de résoudre un problème spécifique. Dans la présente invention, la couche logicielle n'est pas utilisée. Le logiciel est transmis sur une simple clé mémoire tel qu'une disquette ou téléchargé. La configuration de l'installation est inexistante. A l'aide de cette disquette, on installe le code du logiciel sur la machine. Toutes machines susceptibles de participer au calcul et ainsi de rentrer dans le réseau, doit avoir le logiciel et connaître au moins une adresse par exemple IP, adresse Internet, d'une autre machine afin de se connecter. La figure 3 représente un schéma d'échange d'information entre deux machines. La première machine (2a), exemple PC1, présente dans le réseau contient le logiciel (20a) et sa propre adresse (21a). La première machine (2a) commençant le calcul ne connaît personne, c'est pourquoi elle comprend le logiciel (20a), l'application (22a) dédiée à un problème spécifique et les données (23a) nécessaires pour résoudre ce problème. La machine PC1 commence son calcul. Une autre machine devient disponible, par exemple PC2. Avant de se connecter à la machine PC1, la machine PC2 comprend uniquement le logiciel (20b) de la présente invention, et l'adresse de la machine PC1 (21b). La machine PC2 envoie un message à la machine PC1 pour l'informer de son intention de participer au calcul en cours. La machine destinataire PCI lui renvoie l'application (22a) et les données nécessaires au calcul (23a). Chaque machine susceptible de participer à un calcul de type GRID, selon la présente invention, comprend initialement le logiciel et, par exemple, un fichier d'adresses (21b) permettant à la machine de s'adresser à d'autres machines, quand elle est disponible. A la fin du calcul de toutes les tâches concernant un problème, une machine qui vient de se déconnecter du réseau dont l'applicatif a été exécuté, scrute son fichier d'adresse pour déterminer une autre machine a laquelle elle peut se connecter.
Un autre mode de réalisation, différent du fichier d'adresse, pour converser avec une machine appartenant au réseau de la présente invention, est de réaliser un balayage d'adresse des machines connectées au réseau. Par exemple, la machine PC2 se place sur la bande de communication du réseau Internet et le logiciel s'adresse à une première machine. Si cette première machine ne répond pas, cela signifie qu'elle n'a 1s pas le logiciel. Le logiciel de la machine PC2 s'adresse alors à une autre machine et ainsi de suite. Si une des machines répond, elle a donc le logiciel. La machine PC2 est connectée à cette machine. Pour communiquer avec les machines connectées au réseau, PC2 envoie des blocs d'adresses correspondant à des machines quelconques, et attend une réponse.
Dans un mode de réalisation préféré de l'invention, le logiciel du système est développé par un programme en langage orienté objet. Dans ce langage les éléments d'un programme sont considérés comme des objets pouvant se passer des messages l'un à l'autre. Chaque objet est indépendant, etpossède ses propres données et son propre code de programmation. Plus particulièrement dans la présente invention, le langage orienté objet utilisé est un langage JAVA. Ce langage permet une accessibilité du logiciel sur de multiples plates-formes comprenant tout type de machines. Par exemple, des ordinateurs avec le système d'exploitation Windows et des ordinateurs avec le système d'exploitation Linux. Ce développement peut supporter plusieurs sous programmes appelés classes. Une première classe appelée PRINCIPALE contient le programme principal d'appel aux autres classes. Une autre classe, appelée PARAM contient un jeu d'information concernant entre autres l'emplacement de la machine dans le réseau. Plus particulièrement cette classe comprend l'adresse locale d'une machine, l'adresse de la prochaine machine dans l'anneau, la table des tâches. Une classe appelée ANNEAU permet de contrôler l'état de l'anneau. Une classe, appelée JETON permet de contrôler l'état du jeton circulant dans l'anneau. Une dernière classe appelée RESOLUTION permet de résoudre les tâches. Cette dernière classe permet de faire l'interface entre l'applicatif permettant la résolution de la tâche et le logiciel de communication de la présente invention.
Dès qu'une machine, par exemple PC1, démarre son exécution, le programme commence à collecter les données nécessaires à l'application. Si une machine est déjà présente sur un anneau existant, PC1 récupère les paramètres de l'exécution de l'applicatif transmis par l'autre machine. Le programme principal de la classe PRINCIPALE réalise une initialisation de 1s ses données avec les paramètres récupérés. Le programme principal fait ensuite appel à la classe PARAM et crée une unité d'exécution, appelée également objet, de la classe PARAM. Cet objet sélectionne les informations concernant la machine, telles que l'adresse locale d'un noeud, l'adresse du prochain noeud dans l'anneau et la table des tâches. La classe principale fait ensuite appel et crée des liens avec les autres classes: la classe ANNEAU correspondant à l'administration de l'anneau, la classe JETON correspondant à l'administration du jeton et à la classe RESOLUTION permettant la résolution des tâches. Le constructeur des classes demande un objet de type PARAM permettant ainsi la collaboration de différentes tâches entre elles. Chaque instance de la classe RESOLUTION crée un objet conforme à l'application en cours. Ainsi l'utilisateur peut utiliser la présente invention pour d'autres applications permettant un autre type de calcul à grande échelle.
Dans une variante de réalisation de la présente invention, la structure du réseau peut avoir une absence totale de structure logique. La figure 4 présente une structure (10) réalisée de manière aléatoire. Chaque machine est connectée à une autre machine de sa connaissance de manière aléatoire. Dans cette structure le jeton est ici à marche aléatoire, il n'est pas obligé de connaître toutes les machines de la structure. Supposons que PC2 ne connaisse que PC3. PC2 envoie de temps en temps à PC3 l'équivalent d'un jeton qui contient les informations, qu'il a calculé. PC3 va mettre à jour sa liste des tâches. De la même façon PC3 connaît PC1 et la machine parallèle MP4. De temps en temps PC3 va envoyer à ces deux machines l'information de son calcul. Un phénomène stochastique se met en place garantissant une bonne couverture de l'ensemble des machines. Si une machine disparaît, ce sont uniquement les résultats calculés par cette machine qui sont perdus. Ils peuvent être reconstruis localement par une autre machine. Ce système ne comprend plus de structure. PC3 va choisir la machine avec laquelle il va converser en fonction de loi de probabilité. Suivant ces paramètres de probabilité la convergence des informations du réseau va être plus ou moins rapide.
Pour tout type d'architecture réseau en anneau ou sans structure logique, une fois que le problème est résolu et que toutes les tâches sont calculées, le réseau est détruit et toutes les machines ayant participé au calcul connaissent le résultat. Afin de sécuriser l'émission des résultats, il est possible d'utiliser un système de cryptage des données, par exemple par l'intermédiaire d'un cryptage à clé publique / clé privée. Seul des machines élues pourront accéder au résultat en clair. Ces machines peuvent participer au calcul ou seulement récupérer les résultats une fois le calcul terminé. Tous les mécanismes de cryptage de données sont déjà connus, c'est pourquoi nous ne les décrirons pas en détail.
II doit être évident pour les personnes versées dans l'art que la présente invention permet des modes de réalisation sous de nombreuses autres formes spécifiques sans l'éloigner du domaine d'application de l'invention comme revendiqué. Par conséquent, les présents modes de réalisation doivent être considérés à titre d'illustration, mais peuvent être modifiés dans le domaine défini par la portée des revendications jointes, et l'invention ne doit pas être limitée aux détails donnés ci- dessus.

Claims (19)

REVENDICATIONS
1. Système de gestion distribuée des ressources informatiques et de calculs comprenant un réseau reliant des machines actives ou inactives, le système permettant la résolution de tâches, l'ensemble des dites tâches constituant un unique problème à résoudre, une tâche étant exécutée par une des machines actives appartenant au réseau à l'aide d'un applicatif (22a) destiné au problème à résoudre, le système de l'invention est caractérisé en ce que chaque machine active et inactive du système comprend un moyen de sélection d'au moins une adresse réseau correspondant à une autre machine du système, un moyen informatique de gestion des ressources informatiques (20) comportant entre autres, un moyen de mise à jour des informations concernant l'état des tâches, ces informations étant véhiculées à travers le réseau par le biais d'un message de communication (4) par exemple de type jeton, et un moyen de sélection ts aléatoire d'une des tâches appartenant au problème à résoudre, les machines actives comprenant également l'applicatif (22a) et les données (23a) destinés à la résolution du problème.
2. Système de gestion distribuée des ressources informatiques et des données selon la revendication 1, caractérisé en ce que le moyen informatique de gestion des ressources informatique (20) comprend un administrateur de topologies et de communication réseau (200), un administrateur de gestion des tâches (202) et un calculateur de tâches (201), le moyen informatique de gestion de ressources informatique (20) étant représenté par un programme développé en langage orienté objet permettant une compatibilité du moyen informatique de gestion des ressources informatique à tout type de système d'exploitation ouvert implanté sur des machines.
3. Système de gestion distribuée des ressources informatiques et des données selon la revendication 1 ou 2, caractérisé en ce que le programme 30 orienté objet comprend différents sous-programmes dont: 15 un sousprogramme principal permettant l'appel aux autres sous-programmes, un sous programme comprenant les paramètres de communication réseau et de gestion des tâches, - un sous-programme de contrôle du réseau exécuté par l'administrateur de topologie et de communication réseau (200), un sous programme de mise à jour de l'état des tâches et de sélection des tâches, exécuté par l'administrateur de gestion des tâches (201), un sous-programme de résolution des tâches permettant également de réaliser une interface entre le moyen informatique de gestion des ressources informatique (20) et l'applicatif (22) dédié à la résolution spécifique des tâches appartenant à un problème précis, ledit sous programme étant réalisé par le calculateur de tâches (202).
4. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 3, caractérisé en ce que le programme orienté objet du moyen informatique de gestion des ressources 20 informatiques est développé en langage java.
5. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 4, caractérisé en ce que les machines appartenant au système informatique de gestion des ressources informatique et des données peuvent être monoprocesseur (PC1, PC2, PC3) et multiprocesseur (MP4).
6. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 5, caractérisé en ce que les machines actives multiprocesseurs (MP4) appartenant au système de gestion des ressources informatiques et des données calculent autant de 30 tâches disponibles qu'il y a de processeurs.
7. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 6, caractérisé en ce que l'architecture du réseau est une architecture totalement distribuée.
8. Système de gestion distribuée des ressources informatiques et des données selon la revendication 7, caractérisé en ce que l'architecture distribuée du réseau est structurée selon une topologie virtuelle particulière telle qu'en anneau (1), permettant de relier une machine à deux autres machines, chaque machine ayant deux machines voisines, la communication entre les machines étant réalisée par un message de communication (4).
9. Système de gestion distribuée des ressources informatiques et des données selon la revendication 7, caractérisé en ce que l'architecture distribuée du réseau est structurée sans topologie virtuelle particulière, les machines susceptibles de participer au calcul se reliant les unes aux autres de manière aléatoire et s'échangeant de manière aléatoire des informations sur l'état des tâches.
10. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 9, caractérisé en ce que le message de communication (4) comprend des informations sur l'état de chaque tâche du calcul.
11. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 10, caractérisé en ce que les tâches d'un problème sont identifiées par un numéro d'adressage et les états possibles d'une tâche sont représentés par des valeurs spécifiques, dont l'état d'une tâche disponible et l'état d'une tâche en cours pouvant être représentés par des valeurs négatives, l'état d'une tâche calculée étant représenté par une valeur positive correspondant au résultat du calcul ou un numéro unique d'objet contenant le résultat.
12. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 11, caractérisé en ce que son installation sur au moins une machine est réalisée par l'intermédiaire d'un moyen de mémorisation.
13. Système de gestion distribuée des ressources informatiques et des données selon la revendication 12, caractérisé en ce que le moyen de 5 mémorisation est un moyen de stockage mobile.
14. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 11, caractérisé en ce que son installation sur au moins une machine est réalisée par l'intermédiaire d'un moyen de téléchargement distant accessible par réseau.
15. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 14, caractérisé en ce que le moyen de sélection d'au moins une adresse d'une machine appartenant au système comprend un fichier d'adresses mémorisées dont le contenu est spécifique à chaque machine appartenant au système.
16. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 15, caractérisé en ce que le moyen de sélection d'au moins une adresse d'une machine du système comprend un moyen de tirage d'une adresse parmi les adresses des machines du système machine, la communication s'établissant entre deux machines du système dès qu'une des deux machines répond à l'autre machine émettrice de l'appel.
17. Système de gestion distribuée des ressources informatiques et des données selon une des revendications 1 à 16, caractérisé en ce que le système peut être appliqué à toute plate-forme informatique comprenant tout type de machine, tout type de système d'exploitation et tout type d'architecture matérielle supportant un langage orienté objet.
18. Procédé utilisé par le système de gestion des ressources informatiques et des données, permettant la mise en place d'un réseau constitué d'au moins deux machines calculant les tâches destinées à la résolution d'un problème, le procédé est caractérisé en ce qu'il comprend les étapes suivantes: - au moins une première machine devenue active s'adresse à une deuxième machine active par un message de communication pour participer au calcul des tâches, la première machine sélectionnant la deuxième machine par un moyen de sélection dans sa mémoire des adresses des machines du système, - la deuxième machine transmet à la ou les premières machines, l'applicatif et les données destinés à la résolution du problème, à l'aide io du message de communication, - la ou les premières machines sélectionnent chacune de manière aléatoire à l'aide du moyen de sélection, une tâche non calculée de l'applicatif à exécuter sur la machine, - une fois la tâche calculée, la machine ayant terminée le calcul, met à jour, à l'aide d'un moyen de mise à jour, l'information sur l'état de la tâche de manière locale dans le message de communication, - une fois que toutes les tâches de l'applicatif sont calculées, les machines se déconnectent du réseau défini pour cet applicatif.
19. Procédé, utilisé par le système de gestion des ressources informatique et des données, selon la revendication 18, caractérisé en ce qu'une machine qui vient de se déconnecter du réseau dont l'applicatif a été exécuté, scrute son fichier d'adresse pour déterminer une autre machine a laquelle elle peut se connecter.
FR0308501A 2003-07-10 2003-07-10 Systeme de gestion distribuee des ressources informatiques et des calculs Expired - Fee Related FR2857472B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0308501A FR2857472B1 (fr) 2003-07-10 2003-07-10 Systeme de gestion distribuee des ressources informatiques et des calculs
PCT/FR2004/001814 WO2005008492A2 (fr) 2003-07-10 2004-07-09 Systeme de gestion distribuee des ressources informatiques et des calculs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0308501A FR2857472B1 (fr) 2003-07-10 2003-07-10 Systeme de gestion distribuee des ressources informatiques et des calculs

Publications (2)

Publication Number Publication Date
FR2857472A1 true FR2857472A1 (fr) 2005-01-14
FR2857472B1 FR2857472B1 (fr) 2007-01-26

Family

ID=33522958

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0308501A Expired - Fee Related FR2857472B1 (fr) 2003-07-10 2003-07-10 Systeme de gestion distribuee des ressources informatiques et des calculs

Country Status (2)

Country Link
FR (1) FR2857472B1 (fr)
WO (1) WO2005008492A2 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6721241B2 (ja) * 2017-03-01 2020-07-08 株式会社イシダ 物品振分システム
US11012501B1 (en) * 2018-04-03 2021-05-18 Amdocs Development Limited System, method, and computer program for performing distributed outsourced computing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539883A (en) * 1991-10-31 1996-07-23 International Business Machines Corporation Load balancing of network by maintaining in each computer information regarding current load on the computer and load on some other computers in the network
EP0822494A2 (fr) * 1996-07-30 1998-02-04 Nippon Telegraph And Telephone Corporation Méthode et appareil pour équilibrage de travail
WO2001014961A2 (fr) * 1999-08-26 2001-03-01 Parabon Computation Procede et systeme d'etablissement et d'utilisation de la puissance de traitement informatique reseautee en veille
US20020019844A1 (en) * 2000-07-06 2002-02-14 Kurowski Scott J. Method and system for network-distributed computing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539883A (en) * 1991-10-31 1996-07-23 International Business Machines Corporation Load balancing of network by maintaining in each computer information regarding current load on the computer and load on some other computers in the network
EP0822494A2 (fr) * 1996-07-30 1998-02-04 Nippon Telegraph And Telephone Corporation Méthode et appareil pour équilibrage de travail
WO2001014961A2 (fr) * 1999-08-26 2001-03-01 Parabon Computation Procede et systeme d'etablissement et d'utilisation de la puissance de traitement informatique reseautee en veille
US20020019844A1 (en) * 2000-07-06 2002-02-14 Kurowski Scott J. Method and system for network-distributed computing

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"ICCSA 2003: Montreal, Canada", DBLP, 21 June 2004 (2004-06-21), UNI-TRIER, pages 1 - 7, XP002285410, Retrieved from the Internet <URL:http://www.informatik.uni-trier.de/~ley/db/conf/iccsa/iccsa2003-3.html#FlauzacKF03> [retrieved on 20040621] *
NEARY M O ET AL: "Javelin: Parallel computing on the internet", FUTURE GENERATIONS COMPUTER SYSTEMS, ELSEVIER SCIENCE PUBLISHERS. AMSTERDAM, NL, vol. 15, no. 5-6, October 1999 (1999-10-01), pages 659 - 674, XP004176754, ISSN: 0167-739X *
O. FLAUZAC ET AL: "CONFIIT: A Middleware for Peer to Peer Computing", COMPUTER SCIENCE AND ITS APPLICATIONS ICCSA 2003, 18 May 2003 (2003-05-18) - 21 May 2003 (2003-05-21), MONTREAL, CANADA, pages 69 - 78, XP001191089 *

Also Published As

Publication number Publication date
FR2857472B1 (fr) 2007-01-26
WO2005008492A3 (fr) 2005-03-17
WO2005008492A2 (fr) 2005-01-27

Similar Documents

Publication Publication Date Title
US20070061483A1 (en) Expanded method and system for parallel operation and control of legacy computer clusters
US20030212710A1 (en) System for tracking activity and delivery of advertising over a file network
CN103238151A (zh) 网络复制的技术
FR2931970A1 (fr) Procede de generation de requetes de manipulation d&#39;une base de donnees d&#39;initialisation et d&#39;administration d&#39;une grappe de serveurs , support de donnees et grappe de serveurs correspondants
EP2353256A1 (fr) Determination et gestion de reseaux virtuels
FR2948247A1 (fr) Procede et systeme pour la gestion performante et automatisee de reseaux virtuels.
Menasché et al. Estimating self-sustainability in peer-to-peer swarming systems
EP3732565B1 (fr) Reseau informatique d&#39;infrastructures de ressources de calcul et procede d&#39;affectation de ces ressources a des applications client
FR2857472A1 (fr) Systeme de gestion distribuee des ressources informatiques et des calculs
Al-Dmour et al. Parcop: A decentralized peer-to-peer computing system
Mastroianni et al. A scalable super-peer approach for public scientific computation
WO2009007620A2 (fr) Systeme de gestion automatique des reseaux sur une grille informatique
FR3050848B1 (fr) Architecture de serveurs et methode de redistribution des donnees pour la distribution d&#39;un graphe versionne.
Xhafa et al. Jxta-Overlay: An interface for efficient peer selection in P2P JXTA-based systems
Ullah et al. IoT resource management using direct discovery mechanism in OCF framework
EP1912408A1 (fr) Procédé de gestion d&#39;une base de données partitionnée dans un réseau de communication
FR3113346A1 (fr) Procédé de traitement d’un service de transport de données
Lu et al. A scalable P2P overlay based on arrangement graph with minimized overhead
FR3067832A1 (fr) Fourniture de services inter-groupements
Cao et al. P2PGrid: integrating P2P networks into the Grid environment
WO2018122540A1 (fr) Reseau informatique d&#39;infrastructures de ressources de calcul et procede d&#39;affectation de ces ressources a des applications client
EP2746977B1 (fr) Procédé de génération d&#39;une version d&#39;un modele de supervision d&#39;un système d&#39;information
Gonçalves FaaS@ Edge
Cozza et al. Super peer models for public resource computing
FR2816419A1 (fr) Procede de repartition de charge entre serveurs d&#39;un systeme informatique distribue

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20160331