DIET
DIET (Distributed Interactive Engineering Toolbox) est un intergiciel de type GridRPC permettant l'appel de procédures distantes sur des plates-formes distribuées hétérogènes de manière transparente. Il intègre une gestion avancée de l'ordonnancement des tâches permettant de définir des politiques adaptées à chaque application distribuée ainsi qu'un gestionnaire de données qui peut interagir avec l'ordonnancement. L'API de DIET permet un développement rapide et efficace d'applications distribuées sans connaissance a priori de la plate-forme d'exécution, l'intergiciel se chargeant de déterminer quelles ressources sont les plus adaptées au moment de la soumission de la tâche.
DIET intègre un moteur de workflows dynamiques et des interfaces pour l'utilisation de gestionnaires de batch ainsi que des plates-formes de cloud Amazon EC2, Eucalyptus ou Nimbus (fonctionnalités encore expérimentales). Il permet également de gérer la réplication des données distribuées sur les nœuds de calcul, de manière explicite (par l'utilisation de l'API) ou de manière implicite (réplications gérées par l'intergiciel lui-même).
DIET est utilisable sur la plupart des systèmes Unix (GNU/Linux, Mac OS X, AIX, ...) et sous Windows grâce à Cygwin. Sa compilation dépend de la disponibilité de l'ORB omniORB, de la bibliothèque Boost et des bibliothèques POSIX.
Au laboratoire MIS de l'UPJV, DIET est pour l'instant utilisé pour le portage d'applications scientifiques vers des plates-formes distribuées dans le cadre d'expérimentations et d'évaluations de politiques d'ordonnancement et de placement/réplication de données. Cependant, ces expérimentations visent à proposer des solutions viables pour l'utilisation en production de ces applications.
Plusieurs applications de bio-informatique dont l'outil de recherche d'alignements de séquences BLAST et des outils destinés à l'assemblage de génomes de novo ont été adaptés à l'utilisation de plates-formes distribuées grâce à DIET.
Dans l'état actuel, DIET reste assez complexe à configurer et à mettre en œuvre. Il nécessite par ailleurs des développements en C et C++ pour le portage des applications. Des APIs dans d'autres langages faciliteraient certainement une diffusion plus large. La documentation fournie est très complète mais manque d'un guide de démarrage rapide pour faciliter sa prise en main.