Contexte
Le calcul parallèle est un domaine de recherche actif en France et à l'étranger. Plus particulièrement, le calcul numérique intensif est un gros consommateur de ressources et a besoin de résoudre des problèmes toujours plus grands. C'est le cas des problèmes de prédiction du temps, de mécanique des fluides ou encore de la recherche sur Internet. Tous ces problèmes nécessitent une masse de calcul sur des données de taille toujours plus grande.
Nombre de ces problèmes sont difficiles à résoudre sur une seule machine haute performance et encore plus sur une machine standard. Le parallélisme est une des composantes obligatoires du calcul numérique intensif. Les architectures de prédilection pour ces domaines sont actuellement les supers calculateurs parallèles ou les grappes de pc dediés. Ces architectures présentent de nombreux avantages en particulier pour la ou les personnes chargées de développer des applications pour ces architectures. Néanmoins, le coût d'une telle machine est très important et ces machines sont rapidement très chargées. En outre, ces architectures ont elles aussi leurs limites. Il est toujours possible de trouver un problème trop gros pour les calculateurs les plus puissants.
Il est donc nécessaire de proposer de nouveaux mécanismes de calcul qui n'ont pas pour objectif de remplacer le calcul haute performance sur architectures dédiées. Les grilles de calcul et les systèmes pair à pair sont en plein développement. Une part de plus en plus importante des personnes impliquées dans la simulation numérique s'intéresse à ces technologies. Elles se heurtent alors à divers problèmes tel que le portage de leurs applications, l'exploitation des ressources distribuées et, bien entendu, le choix de l'intergiciel qu'elles vont utiliser. Ce choix est généralement critique car il définit quels seront les outils à disposition du programmeur d'application, mais également des utilisateurs.
Ces intergiciels étant très récents, il n'existe pas à l'heure actuelle de standard pour les outils d'administration, d'exploitation ou encore de suivi d'exécution. Cette diversité est très importante mais elle reste une contrainte pour les utilisateurs de ces architectures.
Dernière modification : 29-01-2009
Objectifs
L'objectif d'YML est de proposer des outils pour l'exploitation de ces intergiciels qui ne soient pas dépendants de l'intergiciel de grille utilisé. Plus particulièrement, YML se focalise sur deux tâches bien précises que sont le développement d'applications et l'exécution d'applications sur un intergiciel de grilles ou pair à pair. YML propose des outils qui masquent les différences entre les intergiciels et éventuellement servent de pont entre ces derniers.
Dernière modification : 29-01-2009
Présentation
YML est une suite logicielle permettant d'exploiter les plate-formes à large échelle telles que les grilles de calcul et les systèmes pair à pair. Elle propose un ensemble d'outils intégrés les uns aux autres permettant de décrire et d'exécuter des applications pour ce genre d'architectures.
YML repose sur un langage, créé tout spécialement pour ce projet, qui sépare clairement le calcul et les communications. Ce langage est défini pour permettre de programmer les applications indépendamment des intergiciels utilisés. En effet, chaque intergiciel de grille ou pair à pair repose sur ses propres mécanismes de communication, d'interraction et d'exécution à distance.
Pour atteindre l'objectif d'indépendance avec le ou les intergiciels sous-jaccents, YML définit un modèle de composants. Ces composants sont répertoriés dans deux niveaux de catalogues. Le premier catalogue répertorie les informations qui sont indépendantes des intergiciels et la seconde famille de catalogues contient les informations spécifiques à un intergiciel donné. On parle respectivement de catalogue de développement et d'exécution.
YML repose principalement sur deux programmes. Il s'agit d'un compilateur pour le langage de programmation dédié et d'un ordonnanceur temps réél. Le premier s'occupe de la phase de développement et ne dépend pas de l'intergiciel sous-jaccent alors que le second s'occupe exclusivement de la phase d'exécution. Ces deux programmes sont gérés par un programme chargé de traiter les connexions clientes.
Dernière modification : 29-01-2009