• Aucun résultat trouvé

3.3 Assemblages

3.4.3 Choix et ajustement automatique de paramètres

Dans un assemblage Comet, certaines propriétés telles que le type des buffers de données, le type de partitionnement, les paramètres de partitionnement, l’expression des dépendances ou la présence et la réutilisation de données temporaires doivent être choisies explicitement et manuellement. Déterminer les valeurs optimales peut être difficile et fastidieux sur de gros assemblages, car l’optimalité des propriétés dépend généralement de l’ensemble de l’assemblage ainsi que de l’architecture ma-térielle sous-jacente.

Le choix des valeurs optimales pourrait être automatisé. En effet, le partition-nement optimal des données peut être déduit de l’analyse des dépendances issue de l’expression du langage de relations dans de nombreux cas simples. Cette expression des relations peut elle-même être déduite de l’analyse automatique d’un code sé-quentiel (parallélisation automatique d’un code sésé-quentiel). Ce réglage automatique des propriétés peut être réalisé par un modèle de plus haut niveau. L’objectif du modèle Comet est donc de permettre d’exprimer ces choix avant tout. La sélection automatique des choix, peut être réalisée dans un second temps.

3.5 Conclusion

Dans ce chapitre, nous avons décrit le modèle Comet. Tout d’abord, nous avons défini les unités de composition qui constituent le modèle tels que les composants et métatâches. Puis, nous avons spécifié comment les composer correctement pour former un assemblage d’une application.

La mise au point du modèle Comet montre la faisabilité de l’approche. Néan-moins, nous avons pu voir qu’il existe plusieurs points du modèle à améliorer, tels que le support de la dynamicité, l’expressivité du modèle, la sélection automatique de choix de bas niveau.

3.5. CONCLUSION 67 Le chapitre suivant présente une mise en œuvre du modèle Comet appelée Hal-ley. Il décrit le fonctionnement de Halley, fournit des informations complémen-taires à Comet telles que des exemples de type de données, de partitionnements, de repartitionnement et apporte des précisions sur les langages de relations mis en place.

Chapitre 4

Halley :

une mise en œuvre de Comet

Contents

3.1 Aperçu . . . 52 3.2 Unités de composition. . . 52 3.2.1 Composants . . . 52 3.2.2 Métatâches . . . 54 3.3 Assemblages. . . 57 3.3.1 Instances . . . 58 3.3.2 Points d’entrées. . . 58 3.3.3 Connexions . . . 58 3.3.4 Sections dataflow . . . 58 3.3.5 Règles de validation additionnelles . . . 62 3.4 Discussion . . . 64 3.4.1 Expressivité et limitations . . . 64 3.4.2 Compatibilité et validité . . . 66 3.4.3 Choix et ajustement automatique de paramètres . . . 66 3.5 Conclusion. . . 66

Ce chapitre décrit les méthodes permettant de réaliser une mise en œuvre efficace et extensible conforme au modèle Comet présenté dans le chapitre 3. Plus précisé-ment, il présente Halley, une mise en œuvre de Comet reposant simultanément sur le modèle de composants L2

C et le modèle de directives OpenMP.

Il est important de noter que Halley est un prototype. Son rôle est de mon-trer qu’il est possible de fournir une mise en œuvre extensible, efficace et conforme au modèle Comet. Ce prototype vise à être suffisamment complet pour pouvoir mettre en œuvre une partie de l’application Gysela (afin de disposer d’un maximum de qualités issues de Comet et analyser leur coût), facilement maintenable (afin de résister à l’évolution de Comet) tout en réduisant le temps de développement nécessaire à son élaboration (prototype de recherche).

Ce chapitre présente tout d’abord la façon dont fonctionne Halley : ses objectifs et son fonctionnement basé sur une compilation source à source et un système de greffon extensible. Puis, il décrit le fonctionnement de la compilation source à source exploitant des méthodes de transformation de modèles de l’ingénierie dirigée par les modèles. Il décrit ensuite comment Halley permet d’implémenter des types de données. Puis, le chapitre détaille comment il est possible définir des types de données partitionnées et comment effectuer des opérations de repartitionnement efficace sur-mesure. Enfin, il présente comment fonctionnent des langages de relations et comment en concevoir de nouveaux avant de conclure.

4.1 Fonctionnement

Cette section détaille la manière dont Halley fonctionne et présente son archi-tecture. Elle donne tout d’abord les objectifs remplis par Halley et les méthodes utilisées pour atteindre ces objectifs. Puis, la section présente l’ingénierie dirigée par les modèles, une méthode de conception logicielle centrée sur la notion de modèle et de transformation de modèles utilisée afin de concevoir Halley. Enfin, la section détaille comment cette approche est utilisée dans Halley.

4.1.1 Objectifs

Un des objectifs de Halley est de spécifier comment décrire des composants, des métatâches, des assemblages conformes au modèle Comet. Cela signifie qu’il détaille l’ensemble des informations requises pour décrire une application, mais aussi la manière d’exprimer ces informations (c.-à-d. expression des informations à travers un langage).

De plus, Halley vise aussi à fournir tous les éléments nécessaires à l’exécution d’une application dans le but de former un package déployable à l’exécution. Cela inclut par exemple un support exécutif minimaliste utile pour paramétrer le support exécutif de graphes de tâche sous-jacent (OpenMP).

Enfin, Halley a aussi pour objectif de spécifier comment décrire des greffons. Un greffon est une extension du modèle Comet permettant de définir un type de données, un type de données partitionnées, une opération de repartitionnement ou encore un langage de relations. En effet, rappelons que Comet suppose l’existence de greffons prédéfinis référencés par un identifiant dans le modèle, mais qu’il n’a pas pour objectif de spécifier comment les décrire. Cette charge est donc déléguée à la mise en œuvre. L’ajout de greffons supplémentaires dans Halley est une tâche dédiée à des utilisateurs experts, car elle requiert des connaissances avancées et diverses : architecture des greffons, parallélisme, utilisation des tâches avec OpenMP et une connaissance profonde de l’architecture de Halley pour l’implémentation de nouveaux langages de relations.

4.1. FONCTIONNEMENT 71

Assemblage Composants Métatâches Greffons

Assemblage Composants (avec OpenMP) Compilation source à source

Application L²C + OpenMP

Halley

Support exécutif (composants) Concepteurs d'applications Experts Interne

Support exécutif (composants)

Figure4.1 – Principe de fonctionnement de Halley visant à produire une appli-cation L2

C à partir de sources conformes au modèle Comet, de greffons ainsi que d’un support exécutif minimaliste