Thèse soutenue

Analyse statique des programmes BSPlib

FR  |  
EN
Auteur / Autrice : Filip Jakobsson
Direction : Frédéric LoulergueJean-Michel Couvreur
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 28/06/2019
Etablissement(s) : Orléans
Ecole(s) doctorale(s) : École doctorale Mathématiques, Informatique, Physique Théorique et Ingénierie des Systèmes (Centre-Val de Loire ; 2012-....)
Partenaire(s) de recherche : Laboratoire : Laboratoire d'informatique fondamentale d'Orléans (Orléans ; 1987-....)
Jury : Président / Présidente : Emmanuel Chailloux
Examinateurs / Examinatrices : Frédéric Loulergue, Emmanuel Chailloux, Gaétan Hains, Wadoud Bousdira, Herbert R. Kuchen, Frédéric Dabrowski, Denis Barthou, Wijnand Suijlen

Résumé

FR  |  
EN

La programmation parallèle consiste à utiliser des architectures à multiples unités de traitement, de manière à ce que le temps de calcul soit inversement proportionnel au nombre d’unités matérielles. Le modèle de BSP (Bulk Synchronous Parallel) permet de rendre le temps de calcul prévisible. BSPlib est une bibliothèque pour la programmation BSP en langage C. En BSPlib on entrelace des instructions de contrôle de la structure parallèle globale, et des instructions locales pour chaque unité de traitement. Cela permet des optimisations fines de la synchronisation, mais permet aussi l’écriture de programmes dont les calculs locaux divergent et masquent ainsi l’évolution globale du calcul BSP. Toutefois, les programmes BSPlib réalistes sont syntaxiquement alignés, une propriété qui garantit la convergence du flot de contrôle parallèle. Dans ce mémoire nous étudions les trois dimensions principales des programmes BSPlib du point de vue de l’alignement syntaxique : la synchronisation, le temps de calcul et la communication. D’abord nous présentons une analyse statique qui identifie les instructions syntaxiquement alignées et les utilise pour vérifier la sûreté de la synchronisation globale. Cette analyse a été implémentée en Frama-C et certifiée en Coq. Ensuite nous utilisons l’alignement syntaxique comme base d’une analyse statique du temps de calcul. Elle est fondée sur une analyse classique du coût pour les programmes séquentiels. Enfin nous définissons une condition suffisante pour la sûreté de l’enregistrement des variables. L’enregistrement en BSPlib permet la communication par accès aléatoire à la mémoire distante (DRMA) mais est sujet à des erreurs de programmation. Notre développement technique est la base d’une future analyse statique de ce mécanisme.