Évolution d'un langage pour la programmation parallèle multicontexte : Threaded-C
Cet article présente le langage Threaded-C, langage conçu pour la programmation de
machines parallèles multicontextes, plus précisément, de machines fondées sur l’architecture
EARTH. Cette architecture, grâce à une hiérarchie à deux niveaux threads/fibres, supporte de
façon efficace le parallélisme de granularité fine. Le langage Threaded-C, initialement conçu
comme le « langage machine » de cette architecture, a évolué pour devenir le principal langage
de programmation de cette architecture. C’est cette évolution que nous décrivons dans cet article,
de même que les nouveaux éléments du langage (mécanismes d’exclusion et d’atomicité)
introduits récemment dans le but de supporter la programmation de grappes de multiprocesseurs
(SMP clusters). Nous décrivons aussi certaines stratégies de programmation utilisées
pour la définition et la mise en oeuvre de divers mécanismes de synchronisation, de même que
des extensions du langage en cours de développement.
This paper presents the Threaded-C programming language, language initially designed
for programming multithreaded machines, more precisely, machines based on the EARTH
architecture. This architecture, because of its two-level hierarchy of threads and fibers, effi-
ciently supports fine-grain parallelism. Originally conceived as the “machine language” for
the EARTH architecture, Threaded-C has now evolved to become the major programming language
for this architecture. It is this evolution that is described in this paper, along with new
features of the language (atomicity and mutual exclusion mechanisms) recently introduced in
order to support programming on SMP parallel machines. Key programming strategies used
to define and implement various synchronisation mechanisms are also presented, as well as
additional language extensions currently under development.
G.TREMBLAY
Modèle et langage de programmation parallèle, Architectures et programmation multicontexte.
Parallel programming model and language, Multithreaded architecture and programming.
Français
|