Calcul distribué

Infos
Le calcul distribué ou réparti, aussi connu sous le nom de système distribué, consiste à répartir un calcul ou un système sur plusieurs ordinateurs distincts. Le calcul distribué est une forme de Calcul parallèle, par contre il diffère des Grappes de serveurs (cluster computing), en ce que les ordinateurs qui réalisent le calcul ne sont pas typiquement dédiés au calcul distribué et ne possède pas toujours le même matériel
Calcul distribué

Le calcul distribué ou réparti, aussi connu sous le nom de système distribué, consiste à répartir un calcul ou un système sur plusieurs ordinateurs distincts. Le calcul distribué est une forme de Calcul parallèle, par contre il diffère des Grappes de serveurs (cluster computing), en ce que les ordinateurs qui réalisent le calcul ne sont pas typiquement dédiés au calcul distribué et ne possède pas toujours le même matériels et système de fichier, alors que les grappes (clusters) comprennent la plupart du temps du matériel spécifique et dédié à une tâche précise.

Système distribué

Modèle d'un système distribué Une définition courante est qu'un système distribué est une collection de postes autonome qui sont connectés à l'aide d'un réseau de communication. Chaque poste exécute des composantes et utilise un Intergiciel, qui s'occupe d'activer les composantes et de coordonner leurs activités de tel sorte qu'un utilisateur perçoive le système comme un unique système intégré.W. Emmerich (2000). Engineering distributed objets. John Wiley & Sons. Ltd. Cette définition implique une propriété importante des systèmes distribués, soit que la distribution est généralement cachée pour l’utilisateur et les programmeurs de l’application. Il préfère de voir le système comme un seul et unique système et ainsi cacher la complexité de la distribution le plus possible et augmenter la transparence du système distribué. Cela permet de développer le plus possible les applications de la même façon que les système centralisé. Un système distribué est généralement séparable en plusieurs composantes entièrement autonomes. Il n’existe pas de composante maître qui gère les autres et chacune est donc responsable de son propre fonctionnement. Cela permet, entre autres, d’avoir une hétérogénéité dans la technologie utilisée pour chaque composante, ils peuvent être écrits dans différents langages de programmation (Java, Cobol, C++, etc.) et s'exécuter sur différents systèmes de fichier (Eg Linux, Windows, etc.). L’autonomie des composantes fait que les systèmes sont exécutés simultanément (Programmation concurrente) . De plus, contrairement au système centralisé, les systèmes distribués possèdent plusieurs points de défaillances (problème de composantes, réseau, trafics, etc.).

Exigences des systèmes distribués

Le besoin d'utiliser un système distribué est souvent dérivé d'exigences non fonctionnelles soit:
- Extensibilité ("scalability") - les systèmes distribués permettent facilement une expansion si nécessaire.
- Ouverture - les composantes des systèmes distribués possèdent des interfaces bien définies ce qui leur permet d'être facilement extensibles et modifiables. Les services web sont un exemple de système distribué qui possède une grande ouverture.
- Hétérogénéité – les composantes peuvent être écrites en différents langages sur différentes machines. Par exemple, les éléments d’un serveur peuvent être programmés en C++ et le client en Java.
- Accès aux ressources et partage - les systèmes distribués fournissent un moyen de partager les ressources soit, le matériel, le logiciel et les données.
- Tolérance aux pannes - Les systèmes distribués permettent d’être plus tolérant aux pannes que les systèmes centralisés, car il permet de répliquer facilement les composantes.

Projets

Le projet « pionnier », dans l'emploi du calcul distribué est le SETI@Home qui a pour but d'essayer d'« écouter » l'espace, en collaboration avec le SETI (Search for Extraterrestrial Intelligence) en vue de détecter une possible trace d'activité extraterestre dans l'espace. Mais le besoin croissant de puissance de calcul informatique dans la recherche médicale et autres domaines est surtout ce qui a suscité l'emploi de plus en plus important de cette technologie. Le coût des supercalculateurs étant trop élevé, il est ainsi envisagé d'utiliser la puissance de calcul « disponible » d'ordinateurs au repos (ou sous-utilisés). Le procédé consiste souvent en l'installation d'un logiciel qui télécharge des données brutes à partir d'un serveur, les retravaille (les « traite ») de façon transparente pour l'utilisateur (en n'utilisant que la puissance de calcul non utilisée par d'autres applications), puis renvoie les résultats aux serveurs. Certains systèmes de calcul distribué sont ouverts au public via internet (cf. ressources externes) et attirent facilement les utilisateurs. L'esprit de compétition, la passion des nombres, sont comblés par la mise à disposition de statistiques très détaillées. On pourra ainsi voir l'évolution du projet depuis ses débuts, le classement personnel de l'utilisateur comparé aux autres machines, le temps de calcul réalisé par les possesseurs d'une architecture donnée, ou par tel ou tel système d'exploitation (Linux, Windows, Macintosh...). Le calcul distribué est aussi un thème actif de recherche, avec une abondante littérature. Les plus connues des conférences sur le calcul distribué sont « The International Conference on Dependable Systems and Networks » et « ACM Symposium on Principles of Distributed Computing ». Il existe également la revue « Journal of Parallel and Distributed Computing » . Une part importante du génome humain a ainsi pu être décryptée par les internautes du programme « Decrypthon ». Des projets sont également en cours, centralisés par le World Community Grid visant a l'analyse des protéines et a l'élaboration de solutions contre le sida. Notons cependant que certains affirment que l'emploi de cette technologie permet la multiplication de brevets sur des médicaments et des informations qui seraient plus efficaces dans le domaine public. Le Décrypthon a par exemple contribué au décodage du génome humain, dont une énorme partie est brevetée par les industries pharmaceutiques.

Ressources externes

-
- Projets de calcul partagé :
- World Community Grid : http://www.worldcommunitygrid.org/ est soutenu par IBM et héberge de nombreux projet tel que Rosetta (calcul de protéines) et bien d'autres...
- Distributed.net : http://distributed.net/ héberge de nombreux projets, dont l'un est la recherche des règles de Golomb optimales. Certains diront que Distributed.net n'est plus un projet à but non lucratif depuis que le projet principal RC5-72 apporte une récompense des laboratoires RSA http://www.rsasecurity.com/rsalabs/node.asp?id=2100;
- SETI@home : http://setiathome.berkeley.edu/ recherche des signes d'une intelligence extra-terrestre ;
- GIMPS : http://www.mersenne.org/ rechercher les nombres premiers de Mersenne. Il semblerait que là aussi on ne puisse qualifier le projet de projet à but non lucratif puisqu'il envisage une récompense de l'Electronic Frontier Foundation http://www.eff.org/;
- United Devices : http://www.ud.com/ le plus grand réseau commercial de calcul distribué ;
- Genome@Home : http://www.stanford.edu/group/pandegroup/genome/ séquençage de protéines dans le génome humain, ce projet est achevé puisque la fin du séquençage du génome humain a été annoncée le 14 avril 2003. L'université de Stanford l'a remplacé par Folding@Home ;
- Folding@Home : http://folding.stanford.edu/ simulations de la manière dont les protéines se replient et se déplient sur elles-mêmes ;
- Decrypthon : http://www.decrypthon.fr permettant d'effectuer des calculs de comparaison des protéines qui a fait son retour en mars 2005 ;
- Proteins@home Nouveau Projet émanant de l'École Polytechnique (France) sur un modèle de Prédiction de structure de protéines:
- FightAIDS@Home : http://fightaidsathome.scripps.edu/ Projet pour lutter contre le SIDA ;
- Seventeen or Bust : http://www.seventeenorbust.com/ Projet pour résoudre le problème de Sierpinski ;
- Africa@Home ; http://www.africaathome.org/ Projet de lutte contre le Paludisme. BOINC :
- Boinc est une plate-forme de calcul partagé permettant de faire fonctionner plusieurs projets sur une seule interface :
-

Voir aussi

- Réseaux P2P
- Intelligence distribuée
-
- Catégorie:Programmation concurrente ca:Computació distribuïda cs:Distribuovaný výpočet da:Distribuerede beregninger de:Verteiltes Rechnen el:Κατανεμημένο σύστημα en:Distributed computing es:Computación distribuida fa:محاسبات توزیع‌شده he:חישוב מבוזר קהילתי id:Komputasi terdistribusi it:Calcolo distribuito ja:分散コンピューティング ko:분산 컴퓨팅 nl:Distributed computing nn:Distribuert databehandling pl:Obliczenia rozproszone pt:Computação distribuída ru:Распределённые вычисления sv:Distributed computing vi:Tính toán phân tán zh:分布式计算
Sujets connexes
Calcul parallèle   Distributed.net   Exigence   FightAIDS@Home   Folding@Home   Grappe de serveurs   Génome   Intelligence distribuée   Intergiciel   Linux   Macintosh   Microsoft Windows   Nombre de Sierpinski   Ordinateur   Paludisme   Programmation concurrente   Proteins@home   Protéine   Règle de Golomb   Search for Extraterrestrial Intelligence   Service Web   Seventeen or Bust   Séquençage   World Community Grid  
#
Accident de Beaune   Amélie Mauresmo   Anisocytose   C3H6O   CA Paris   Carole Richert   Catherinettes   Chaleur massique   Championnat de Tunisie de football D2   Classement mondial des entreprises leader par secteur   Col du Bonhomme (Vosges)   De viris illustribus (Lhomond)   Dolcett   EGP  
^