Computing On Many Cores

Bernard Goossens 1, 2 David Parello 2 Katarzyna Porada 1, 2 Djallal Rahmoune 1, 2
2 DALI - Digits, Architectures et Logiciels Informatiques
LIRMM - Laboratoire d'Informatique de Robotique et de Microélectronique de Montpellier, UPVD - Université de Perpignan Via Domitia
Abstract : This paper presents a new method to parallelize programs, adapted to manycore processors. The method relies on a parallelizing hardware and a new programming style. A manycore design is presented, built from a highly simplified new core microarchitecture, with no branch predictor, no data memory and a three stage pipeline. Cores are multithreaded, run out-of-order but not speculatively and fork new threads. The new programming style is based on functions and avoids data structures. The hardware creates a concurrent thread at each function call. Loops are replaced by semantically equivalent divide and conquer functions. Instead of computing on data structures, we compute in parallel on scalars, favouring distribution and eliminating inter-thread communications. We illustrate our method on a sum reduction, a matrix multiplication and a sort. C implementations using no array are parallelized. From loop templates, a MapReduce model can be implemented and dynamically deployed by the hardware. We compare our method to pthread parallelization, showing that (i) our parallel execution is deterministic, (ii) thread management is cheap, (iii) parallelism is implicit and (iv) functions and loops are parallelized. Implicit parallelism makes parallel code easy to write. Deterministic parallel execution makes parallel code easy to debug.
Type de document :
Article dans une revue
Concurrency and Computation: Practice and Experience, Wiley, 2017, 〈10.1002/cpe.4120〉
Liste complète des métadonnées

Littérature citée [25 références]  Voir  Masquer  Télécharger
Contributeur : David Parello <>
Soumis le : vendredi 15 avril 2016 - 13:53:36
Dernière modification le : jeudi 7 février 2019 - 17:16:13
Document(s) archivé(s) le : mardi 15 novembre 2016 - 04:27:44


Fichiers produits par l'(les) auteur(s)




Bernard Goossens, David Parello, Katarzyna Porada, Djallal Rahmoune. Computing On Many Cores. Concurrency and Computation: Practice and Experience, Wiley, 2017, 〈10.1002/cpe.4120〉. 〈lirmm-01302904〉



Consultations de la notice


Téléchargements de fichiers