Static Analysis for BSPlib Programs - TEL - Thèses en ligne Access content directly
Theses Year : 2019

Static Analysis for BSPlib Programs

Analyse statique des programmes BSPlib

Abstract

The goal of scalable parallel programming is to program computer architectures composed of multiple processing units so that increasing the number of processing units leads to an increase in performance. Bulk Synchronous Parallel (BSP) is a widely used model for scalable parallel programming with predictable performance. BSPlib is a library for BSP programming in C. In BSPlib, parallel algorithms are expressed by intermingling instructions that control the global parallel structure, and instructions that express the local computation of each processing unit. This lets the programmer fine-tune synchronization, but also implement programs whose diverging parallel control flow obscures the underlying BSP structure. In practice however, the majority of BSPlib program are textually aligned, a property that ensures parallel control flow convergence. We examine three core aspects of BSPlib programs through the lens of textual alignment: synchronization, performanceandcommunication.First,wepresentastaticanalysisthatidentifiestextuallyalignedstatements and use it to verify safe synchronization. This analysis has been implemented in Frama-C and certified in Coq. Second, we exploit textual alignment to develop a static performance analysis for BSPlib programs, based on classic cost analysis for sequential programs. Third, we develop a textual alignment-based sufficient condition for safe registration. Registration in BSPlib enables communication by Direct Remote Memory Access but is error prone. This development forms the basis for a future static analysis of registration.
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.
Fichier principal
Vignette du fichier
filip-jakobsson_4106_vm.pdf (1.5 Mo) Télécharger le fichier
Origin : Version validated by the jury (STAR)
Loading...

Dates and versions

tel-02920363 , version 1 (24-08-2020)

Identifiers

  • HAL Id : tel-02920363 , version 1

Cite

Filip Jakobsson. Static Analysis for BSPlib Programs. Distributed, Parallel, and Cluster Computing [cs.DC]. Université d'Orléans, 2019. English. ⟨NNT : 2019ORLE2005⟩. ⟨tel-02920363⟩
94 View
349 Download

Share

Gmail Facebook X LinkedIn More