L'évolution de la techonologie des microprocesseurs permet aujourd'hui à des ordinateurs de bureau standard d'atteindre un tel niveau de performance qu'il est possible de construire à partir de ces machines des supercalculateurs aussi rapides que les calculateurs dédiés de type CRAY, IBM SP ou SGI Origin 2000. Avec l'avèment du logiciel libre, et le coût assez bas des ordinateurs de bureau, la très forte demande en calcul haute performance (scientifique et technique) peut être satisfaite. Les grappes de PC apparaissent ainsi comme une très bonne alternative aux autres moyens de calcul.
Une grappe (de PC) est un ensemble de PC reliés en réseau, et considérée comme une ressource unifiée de calcul. Le procédé consiste donc à déployer des PC ordinaires, (jusqu'à plusieurs centaines de machines) connectés à travers un réseau haut débit (Fast Ethernet par exemple), et fédérer fonctionnement de ces machines par des logiciels d'exploitation globale (notamment ordonnancement, équilibrage de charge, attribution et partage de ressources).
Quasiment toutes les entreprises disposent aujourd'hui de leur propre réseau local privé, auquel sont connectées toutes les machines du groupe. Ces machines sont affectées à différents services administratifs, production etc., et sont très souvent inexploitées pendant de longs moments, tels que les congés, les nuits et les absences du personnel. L'exploitation de ces périodes de jachères pour des tâches de production permettrait déconomiser un investissement sur du matériel nouveau, dédié. Toutefois le caractère volatile des ressources ainsi collectées pose d'autres problèmes...
Le projet I-Cluster a pour objectif la détection et l'exploitation de jachères de ressources au sein d'un intranet pour du calcul intensif. En effet, une grande partie des ressources d'un intranet (PC, stations serveurs) est très souvent inutilisée durant de longues périodes (nuit, fins de semaines, vacances), libérant ainsi une puissance de calcul considérable, de l'ordre de milliers de machines. La disponibilité de ces ressources est toutefois extrêmement dynamique, ce qui pose le problème de tolérance aux fautes du fait qu'un programme qui démarre sur une station n'est pas assuré de pouvoir terminer, la machine pouvant disparaître à tout moment. L'exploitation effective de ces ressources nécessite de disposer d'applications s'adaptant aux départs et aux arrivées intempestifs de ressources, sur des architectures très variées (matériel, système, réseau).
Bruno Richard[1] a étudié la faisabilité d'un tel système permettant de fédérer de façon transparente pour les utilisateurs les ressources d'un réseau d'entreprise, afin de les agréger sous forme de grappe virtuelle. Nous nous intéressons pour notre part à offrir sur ce système un service de déploiement d'applications fiable et robuste, pour des programmes distibués, c'est-à-dire s'exécutant sur plusieurs sites communicants à travers le réseau sous-jacent.
Ce travail porte sur la conception d'un intergiciel permettant le déploiement d'application tolérant les déconnexions de ressources par des mécanismes de sauvegarde/reprise ou de reexécution partielle, ou encore de migration de processus. La migration des processus d'un noeud en panne vers un autre tente de trouver une solution à ces problèmes: un processus peut ainsi survivre à un plantage du processeur sur lequel il s'exécute : si une image cohérente de son contexte a été transférée sur un autre processeur avant la panne, il pourra être repris sur l'autre machine.