81/2 : un modèle MSIMD pour la simulation massivement parallèle - Archive ouverte HAL Accéder directement au contenu
Thèse Année : 1991

81/2: an MSIMD model for massively parallel simulation

81/2 : un modèle MSIMD pour la simulation massivement parallèle

Jean-Louis Giavitto

Résumé

Cette thèse propose un environnement permettant de très grandes simulations digitales. La réalisation de ces simulations s'appuie sur l'utilisation efficace des grands calculateurs parallèles dont nous disposerons dans un proche avenir. Par ailleurs, énormément d'applications de simulation correspondent à des programmes dont on peut prévoir, à la compilation, le déroulement des calculs. C'est par exemple le cas de la simulation des systèmes dynamiques discrets (systèmes de contrôle/commande, mécanismes économiques, réseaux d'automates, circuits VLSI synchrones, systèmes continus discrétisés) qui constitueront un exemple privilégié d'applications. Nous étudions plus précisément un modèle pour la programmation des applications à comportement prévisible sur les ordinateurs massivement parallèles. Notre objectif est double : 1) offrir l'expressivité nécessaire aux applications de simulation, et en particuliers à la simulation des systèmes dynamiques discrets; 2) préserver la simplicité et l’efficacité des modèles d'exécution SIMD tout en gagnant le rendement et la flexibilité des structures de contrôle offerts par le MIMD. Afin de pouvoir étudier plus précisément notre modèle de programmation, les ressources spécifiques de la simulation massivement parallèle vont constituer les entités explicites d'un langage expérimental appelé Otto e Mezzo, ou encore 8 1 / 2 . Le développement de Otto e Mezzo a été influencé par les premiers enseignements du projet MEGA, par la programmation de la Connection-Machine et les langages LUCID, LUSTRE et SIGNAL. La Connection-Machine nous a apporté le concept de collection et LUCID la notion de suite temporelle. MEGA explore les implications du parallélisme massif : quels sont les architectures et les modèles d'exécutions nécessaires à la réalisation et à l'utilisation d'ordinateurs comportant plusieurs milliers de processeurs. Les deux principales conséquences ont été le développement d'un langage statique permettant l'expression à la fois du parallélisme de données et du parallélisme de contrôle. Le langage étant statique, les principaux paramètres de l'exécution sont fixés à la compilation. D'un point de vue technique, les apports de ce travail consistent en l'intégration du concept de collection et du concept de suite temporelle dans un langage data-flow et sa compilation pour une architecture MIMD synchronisable massive. La collection est le support privilégié du parallélisme de données, tandis que les suites temporelles permettent un traitement statique du parallélisme de contrôle. Du point de vue des applications de simulation, les suitestemporelles correspondent à la notion de trajectoire et les collections à celle de variable multi-dimensionelle. La fusion des concepts de collection et de suite temporelle permet de répondre aux objections initialement soulevées à l'encontre du traitement inefficace des tableaux dans le modèle data-flow classique. De plus, cette extension permet de prendre en compte le problème de la répartition des données dans une architecture à mémoire distribuée, problème traditionnellement absent des préoccupations du data-flow. Le résultat est un langage MSIMD dans lequel le parallélisme est implicite, statique et à grain très fin. La forme data-flow du langage simplifie les techniques d'analyse et d'optimisation des programmes. Nous en donnons plusieurs exemples à travers l'inférence du type des collections, l'analyse du graphe des dépendances, l'analyse temporelle des programmes, la propagation des constantes et l'optimisation des chemins critiques. La porte reste ouverte à de nombreuses analyses, optimisations et transformations de programme. La compilation est rendue indispensable par les performances recherchées. Elle repose sur la sémantique du langage et se traduit par la résolution distribuée d'un système d'équations. La compilation donne une « forme triangulaire » à ce système, ce qui se traduit par une résolution efficace. La gestion de l'activité des tâches correspondantes n'est pas réalisée par un exécutif mais réglée dès la compilation par un ordonnancement statique de toutes les activités. Cette phase de la compilation permet de répartir les données en profitant d'une connaissance très fine de la structure des calculs et en tenant compte des coûts de communication. Une attention toute particulière a été accordée à la mise en œuvre de l'ordonnancement, afin que celui-ci ait une complexité compatible avec les temps de réponse attendus pour une compilation. Ce travail a conduit au développement, à partir des techniques présentées dans cette thèse, d'un interprète/compilateur d'un sous-ensemble du langage 81/2. Cet interprète existe pour l'instant sur station de travail UNIX. La génération de code séquentielle (station de travail et ordinateur SIMD) doit aboutir à très court terme. L'implémentation de la génération de code pour une machine MIMD synchronisable (comme par exemple la machine PTAH développée dans le projet MEGA) est en cours et permettra l'exploitation effective du parallélisme de données et du parallélisme de contrôle.
Cette thèse propose un environnement permettant de très grandes simulations digitales. La réalisation de ces simulations s'appuie sur l'utilisation efficace des grands calculateurs parallèles dont nous disposerons dans un proche avenir. Par ailleurs, énormément d'applications de simulation correspondent à des programmes dont on peut prévoir, à la compilation, le déroulement des calculs. C'est par exemple le cas de la simulation des systèmes dynamiques discrets (systèmes de contrôle/commande, mécanismes économiques, réseaux d'automates, circuits VLSI synchrones, systèmes continus discrétisés) qui constitueront un exemple privilégié d'applications. Nous étudions plus précisément un modèle pour la programmation des applications à comportement prévisible sur les ordinateurs massivement parallèles. Notre objectif est double : 1) offrir l'expressivité nécessaire aux applications de simulation, et en particuliers à la simulation des systèmes dynamiques discrets; 2) préserver la simplicité et l’efficacité des modèles d'exécution SIMD tout en gagnant le rendement et la flexibilité des structures de contrôle offerts par le MIMD. Afin de pouvoir étudier plus précisément notre modèle de programmation, les ressources spécifiques de la simulation massivement parallèle vont constituer les entités explicites d'un langage expérimental appelé Otto e Mezzo, ou encore 8 1 / 2 . Le développement de Otto e Mezzo a été influencé par les premiers enseignements du projet MEGA, par la programmation de la Connection-Machine et les langages LUCID, LUSTRE et SIGNAL. La Connection-Machine nous a apporté le concept de collection et LUCID la notion de suite temporelle. MEGA explore les implications du parallélisme massif : quels sont les architectures et les modèles d'exécutions nécessaires à la réalisation et à l'utilisation d'ordinateurs comportant plusieurs milliers de processeurs. Les deux principales conséquences ont été le développement d'un langage statique permettant l'expression à la fois du parallélisme de données et du parallélisme de contrôle. Le langage étant statique, les principaux paramètres de l'exécution sont fixés à la compilation. D'un point de vue technique, les apports de ce travail consistent en l'intégration du concept de collection et du concept de suite temporelle dans un langage data-flow et sa compilation pour une architecture MIMD synchronisable massive. La collection est le support privilégié du parallélisme de données, tandis que les suites temporelles permettent un traitement statique du parallélisme de contrôle. Du point de vue des applications de simulation, les suitestemporelles correspondent à la notion de trajectoire et les collections à celle de variable multi-dimensionelle. La fusion des concepts de collection et de suite temporelle permet de répondre aux objections initialement soulevées à l'encontre du traitement inefficace des tableaux dans le modèle data-flow classique. De plus, cette extension permet de prendre en compte le problème de la répartition des données dans une architecture à mémoire distribuée, problème traditionnellement absent des préoccupations du data-flow. Le résultat est un langage MSIMD dans lequel le parallélisme est implicite, statique et à grain très fin. La forme data-flow du langage simplifie les techniques d'analyse et d'optimisation des programmes. Nous en donnons plusieurs exemples à travers l'inférence du type des collections, l'analyse du graphe des dépendances, l'analyse temporelle des programmes, la propagation des constantes et l'optimisation des chemins critiques. La porte reste ouverte à de nombreuses analyses, optimisations et transformations de programme. La compilation est rendue indispensable par les performances recherchées. Elle repose sur la sémantique du langage et se traduit par la résolution distribuée d'un système d'équations. La compilation donne une « forme triangulaire » à ce système, ce qui se traduit par une résolution efficace. La gestion de l'activité des tâches correspondantes n'est pas réalisée par un exécutif mais réglée dès la compilation par un ordonnancement statique de toutes les activités. Cette phase de la compilation permet de répartir les données en profitant d'une connaissance très fine de la structure des calculs et en tenant compte des coûts de communication. Une attention toute particulière a été accordée à la mise en œuvre de l'ordonnancement, afin que celui-ci ait une complexité compatible avec les temps de réponse attendus pour une compilation. Ce travail a conduit au développement, à partir des techniques présentées dans cette thèse, d'un interprète/compilateur d'un sous-ensemble du langage 81/2. Cet interprète existe pour l'instant sur station de travail UNIX. La génération de code séquentielle (station de travail et ordinateur SIMD) doit aboutir à très court terme. L'implémentation de la génération de code pour une machine MIMD synchronisable (comme par exemple la machine PTAH développée dans le projet MEGA) est en cours et permettra l'exploitation effective du parallélisme de données et du parallélisme de contrôle.
Fichier non déposé

Dates et versions

tel-04336866 , version 1 (11-12-2023)

Licence

Identifiants

  • HAL Id : tel-04336866 , version 1

Citer

Jean-Louis Giavitto. 81/2 : un modèle MSIMD pour la simulation massivement parallèle. Langage de programmation [cs.PL]. Université d'Orsay, 1991. Français. ⟨NNT : ⟩. ⟨tel-04336866⟩
15 Consultations
0 Téléchargements

Partager

Gmail Mastodon Facebook X LinkedIn More