thesis

Contribution à l'étude de la programmation des machines parallèles complexes

Defense date:

Jan. 1, 2004

Edit

Institution:

Paris 11

Disciplines:

Directors:

Abstract EN:

The goal of this thesis?is to study the programming of complex parallel machines, which are used to solve large scale numerical problems. It mainly concentrates in three points which are first the study of standard parallel languages and their respective efficiency. Then we will study a fault tolerant parallel programming labrary and its runtime. At last we will consider the future languages, with the presentation of already existing ones and their common caracteristics before presenting the definition of a new language. In the first part, we will show that the OpenMP tool in the case of shared memory machines enables the user to get more performance than with MPI which is now the standard of parallel programming. But this is done with a high programming effort which goes against the easyness intended in OpenMP. In the next part, we will present MPICH-V, an automatic fault-tolerant implementation, and especially its runtime, by presenting three caracteristics that are important for this part, which are the remote launching, the connection between nodes and the handling of fault detection. In each case we will discuss the possible technical choices before extending them to a grid environment. At last, we will present upcoming parallel languages with different examples of their usage, before presenting our own, based on a shared memory mechanism and programmed communications.

Abstract FR:

Cette thèse a pour but l'étude de la programmation des machines parallèles complexes destinées aux grands problèmes numériques. Elle s'intéresse principalement à trois points qui sont tout d'abord l'étude des langages standards de programmation parallèle et leur efficacité respective. Ensuite nous étudions une bibliothèque de programmation parallèle tolérante aux fautes et son environnement d'exécution. Enfin nous abordons le problème des langages prospectifs, avec tout d'abord la présentation de différents langages déjà existants et leurs caractéristiques respectives qui nous permettent d'arriver à la définition d'un nouveau langage. Dans la première partie, nous montrons que le modèle de programmation OpenMP dans le cadre des machines à mémoire partagée peut surpasser en terme de performances le langage MPI qui est actuellement le langage de référence en matière de parallélisme. Mais cela se fait au détriment de la facilité de programmation qui se veut le principal attrait d'OpenMP. Dans la partie suivante, nous présentons MPICH-V, une implémentation de MPI automatiquement tolérante aux pannes, et notamment son environnement d'exécution en en examinant trois aspects primordiaux qui sont le lancement distribué, les connexions entres les nœuds de calcul, et enfin la détection des fautes. Nous discutons différents choix techniques dans chacun des cas avant d'étendre ces propositions au cadre plus large des grilles de calcul. Dans la dernière partie enfin, nous abordons les langages parallèles prospectifs et leurs détails ainsi que des exemples de programmation, avant de proposer un nouveau langage, basé sur un mécanisme de mémoire partagée et des communications programmées.