Combinaison de programmes à objets actifs et BSP
Auteur / Autrice : | Pierre Leca |
Direction : | Françoise Baude |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 02/10/2020 |
Etablissement(s) : | Université Côte d'Azur |
Ecole(s) doctorale(s) : | École doctorale Sciences et technologies de l'information et de la communication (Nice ; 1992-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire Informatique, signaux et systèmes (Sophia Antipolis, Alpes-Maritimes) - Safe Composition of Autonomous applications with Large-SCALE Execution environment |
Jury : | Président / Présidente : Etienne Lozes |
Examinateurs / Examinatrices : Françoise Baude, Etienne Lozes, Gul Agha, Emmanuel Chailloux, Gaétan Hains, Ludovic Henrio, Fabrice Huet | |
Rapporteur / Rapporteuse : Gul Agha, Emmanuel Chailloux |
Résumé
Cette thèse présente un modèle de programmation hybride entre deux modèles de programmation parallèle : objets actifs et BSP (Bulk Synchronous Parallel). Les objets actifs sont spécialisés dans le parallélisme de tâche ; ils permettent d'exécuter du code fonctionnellement différent en parallèle, et d'échanger leurs résultats grâce à des futurs qui représentent ces résultats avant-même qu'ils soient disponibles. Le modèle BSP permet, quant à lui, un parallélisme assez différent de celui des objets actifs : un parallélisme de donnée. Ce parallélisme consiste à découper une tâche en plusieurs morceaux et de les traiter en parallèle pour aller plus vite. Ces deux modèles spécialisés, permettent une programmation haut niveau et ont des propriétés intéressantes telle que la facilité de programmation et le déterminisme sous certaines conditions. L'intérêt d'allier ces deux modèles est donc de permettre l'écriture de programmes combinant parallélisme de tâche et parallélisme de donnée, tout en bénéficiant des caractéristiques des deux modèles. Cette thèse étudie ce nouveau modèle d'objets actifs BSP sous un aspect théorique (grâce à une sémantique opérationnelle) et pratique (grâce à une implémentation en C++ avec MPI). Un nouveau concept de futurs distribués est également défini ; ils consistent à unifier les concepts de futurs et de vecteurs distribués. Cela permet une meilleure intégration entre objets actifs et BSP : grâce à eux, nos objets actifs BSP peuvent échanger entre eux efficacement en parallèle. L'efficacité de ces futurs distribués est montrée grâce à des benchmarks sur notre implémentation qui comparent les performances des futurs classiques et des futurs distribués.