C Language Extensions for Hybrid CPU/GPU Programming with StarPU

Ludovic Courtès 1
1 RUNTIME - Efficient runtime systems for parallel architectures
Inria Bordeaux - Sud-Ouest, UB - Université de Bordeaux, CNRS - Centre National de la Recherche Scientifique : UMR5800
Résumé : Les plateformes modernes utilisées en calcul intensif (HPC) incluent des machines comprenant à la fois des unités de traitement généralistes (CPU) et des "accélérateurs", souvent sous la forme d'unités de traitement "graphiques" (GPU). StarPU est une bibliothèque C pour programmer sur ces plateformes. Elle fournit aux utilisateurs des moyens de définir des "tâches" pouvant s'exécuter aussi bien sur CPU que sur GPU, ainsi que les dépendances entre ces tâches, et s'occupe de les ordonnancer sur "toutes" les unités de traitement disponibles. Ce faisant, StarPU abstrait le programmeur des détails techniques sous-jacents: StarPU s'adapte aux unités de traitement disponibles et se charge de transférer les données entre elles quand cela est nécessaire. StarPU traite efficacement des problèmes d'ordonnacement, mais l'interface en langage C qu'elle propose est pauvre et facilite les erreurs de programmation. Cet article présente des travaux démarrés en 2011 pour promouvoir certains concepts exposés par la bibliothèque StarPU sous forme d'extensions du langage C, par le biais d'une extensions de la suite de compilateurs GCC. Notre principale contribution est la conception et la mise en œuvre d'extensions du langage C correspondant au paradigme de programmation par tâches de StarPU. Nous montrons que les extensions proposées facilitent la programmation avec StarPU, éliminent des erreurs de programmation pouvant intervenir lorsque la bibliothèque C est utilisée et aident le diagnostique de possibles erreurs. Nous concluons sur les travaux à venir.
Type de document :
Rapport
[Research Report] RR-8278, INRIA. 2013, pp.25
Liste complète des métadonnées

https://hal.inria.fr/hal-00807033
Contributeur : Ludovic Courtès <>
Soumis le : vendredi 5 avril 2013 - 11:35:32
Dernière modification le : samedi 17 septembre 2016 - 01:36:41
Document(s) archivé(s) le : samedi 6 juillet 2013 - 04:05:12

Fichiers

RR-8278.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

  • HAL Id : hal-00807033, version 2
  • ARXIV : 1304.0878

Collections

Citation

Ludovic Courtès. C Language Extensions for Hybrid CPU/GPU Programming with StarPU. [Research Report] RR-8278, INRIA. 2013, pp.25. <hal-00807033v2>

Partager

Métriques

Consultations de
la notice

706

Téléchargements du document

387