Thèse soutenue

Combinaison de programmes à objets actifs et BSP

FR  |  
EN
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é

FR  |  
EN

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.