Ordonnancement pour le modèle temps partagé
Résumé
Le modèle client-agent-serveur est très utilisé dans le "grid middleware". Si on peut contacter un agent, on peut alors avoir accès aux ressources que gère cet agent. Cet accès est transparent pour l'utilisateur, qu'elles soient distantes et distribuées sur la grille, ce que nous appelons le méta-computing. Il existe des environnements qui reposent sur ce modèle (NetSolve, Ninf, DIET). Les scientifiques les utilisent pour avoir accès à des bibliothèques distantes de fonctions optimisées. Pour qu'une application profite au mieux des ressources de la grille, il est important d'optimiser le placement de ses constituants. L'agent est le point crucial chargé d'optimiser l'ordonnancement des tâches qui lui sont soumises. Il dispose pour cela de ses propres senseurs ou de senseurs pré-installés, comme NWS, qui lui permettent de déterminer l'état du système. Dans la littérature, il est souvent supposé qu'un serveur ne calcule qu'une tâche à la fois. Nous proposons ici des heuristiques pour ressources partagées mais dédiées. Pour cela, nous utilisons un gestionnaire d'historique, qui conserve toutes les informations sur les tâches déjà ordonnancées et est capable de dresser un diagramme de Gantt pour chacun des serveurs. Nous avons étudié sur des expériences de simulation plusieurs heuristiques qui utilisent ces informations, et nous les avons comparées à une instance de Minimum Completion Time, tel qu'il est implanté dans NetSolve. Ces heuristiques sont destinées à améliorer le makespan de l'application tout en essayant de satisfaire l'ensemble des utilisateurs de la plateforme. Pour cela, plusieurs métriques sont regardées. Deux de ces heuristiques sont à même de donner de bons résultats dans le cas réel, pour un surcoût négligeable.