Faculté informatique et communications IC, Section d'informatique, Institut des systèmes informatiques et multimédias ISIM

An object-oriented model for adaptive high-performance computing on the computational GRID

Nguyen, Tuan Anh ; Coray, Giovanni (Dir.)

Thèse sciences Ecole polytechnique fédérale de Lausanne EPFL : 2004 ; no 3079.

Add to personal list
    Summary
    The dissertation presents a new parallel programming paradigm for developing high performance (HPC) applications on the Grid. We address the question "How to tailor HPC applications to the Grid?" where the heterogeneity and the large scale of resources are the two main issues. We respond to the question at two different levels: the programming tool level and the parallelization concept level. At the programming tool level, the adaptation of applications to the Grid environment consists of two forms: either the application components should somehow decompose dynamically based on the available resources; or the components should be able to ask the infrastructure to select automatically the suitable resources by providing descriptive information about the resource requirements. These two forms of adaptation lead to the parallel object model on which resource requirements are integrated into shareable distributed objects under the form of object descriptions. We develop a tool called ParoC++ that implements the parallel object model. ParoC++ provides a comprehensive object-oriented infrastructure for developing and integrating HPC applications, for managing the Grid environment and for executing applications on the Grid. At the parallelization concept level, we investigate the parallelization scheme which provides the user a method to express the parallelism to satisfy the user specified time constraints for a class of problems with known (or well-estimated) complexities on the Grid. The parallelization scheme is constructed on the following two principal elements: the decomposition tree which represents the multi-level decomposition and the decomposition dependency graph which defines the partial order of execution within each decomposition. Through the scheme, the parallelism grain will be automatically chosen based on the available resources at run-time. The parallelization scheme framework has been implemented using the ParoC++. This framework provides a high level abstraction which hides all of the complexities of the Grid environment so that users can focus on the "logic" of their problems. The dissertation has been accompanied with a series of benchmarks and two real life applications from image analysis for real-time textile manufacturing and from snow simulation and avalanche warning. The results show the effectiveness of ParoC++ on developing high performance computing applications and in particular for solving the time constraint problems on the Grid.
    Résumé
    Cette thèse présente un nouveau paradigme pour le développement d'applications de calcul de haute performance (HPC : High Performance Computing) dans des environnements de type GRILLE (GRID). Nous nous intéressons plus particulièrement à adapter les applications HPC à des environnements où le nombre et l'hétérogénéité des ressources sont importants comme c'est le cas pour la GRILLE. Nous attaquons ce problème sur deux niveaux : au niveau des outils de programmation et au niveau du concept de parallélisme. En ce qui concerne les outils de programmation, l'adaptation à des environnements de type GRILLE est de deux formes : les composants de l'application doivent, d'une manière ou d'une autre, se décomposer dynamiquement en fonction des ressources disponibles et les composants doivent être capables de demander à l'infrastructure disponible de choisir automatiquement des ressources adaptées à leur besoin; pour cela elles doivent être capables de décrire leur besoin en terme de ressources nécessaires. Ces deux formes d'adaptation nous ont conduit à un modèle d'objets parallèles. Grâce à ce modèle nous pouvons exprimer les exigences en terme de ressources sous la forme de descriptions d'objets intégrées dans un modèle d'objets distribués partageables. Nous avons développé un outil appelé ParcoC++ qui implémente le modèle des objets parallèles. ParoC++ fourni l'infrastructure nécessaire pour développer et intégrer des applications HPC, pour gérer un environnement GRID afin d'exécuter une telle application. Au niveau du concept de parallélisme, nous avons introduit la notion de schéma de parallélisation (parallelization scheme) qui fourni à l'utilisateur un moyen d'exprimer le parallélisme afin de satisfaire à des contraintes de temps d'exécution pour des problèmes dont la complexité est connue ou peut être estimée. La notion de schéma de parallélisation est construite sur les principes suivants : l'arbre de décomposition qui représente les différents niveaux de décomposition du problème et le graphe de dépendance de la décomposition qui défini un ordre partiel d'exécution pour une décomposition donnée. Grâce à ces notions nous pouvons automatiquement adapter le grain du parallélisme aux ressources choisies au moment de l'exécution. A l'aide de ParoC++ nous avons réalisé un environnement intégrant la notion de schéma de parallélisation. Cet environnement fourni un haut niveau d'abstraction qui cache à l'utilisateur la complexité de la GRILLE de manière à ce qu'il puisse se concentrer sur la " logique " de son problème. Pour valider notre environnement, nous avons effectué une série de tests de performance et nous l'avons utilisé pour réaliser deux grosses applications : une application industrielle dans le domaine du traitement d'image et une application pour la recherche dans le domaine de la prédiction des avalanches. Les résultats montrent que ParoC++ est un outil adéquat pour le développement d'applications HPC ayant des contraintes de temps d'exécution et s'exécutant sur une GRILLE.