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.
Document type :
Journal articles
Complete list of metadatas

Cited literature [25 references]  Display  Hide  Download

https://hal-lirmm.ccsd.cnrs.fr/lirmm-01302904
Contributor : David Parello <>
Submitted on : Friday, April 15, 2016 - 1:53:36 PM
Last modification on : Wednesday, June 26, 2019 - 2:49:13 PM
Long-term archiving on : Tuesday, November 15, 2016 - 4:27:44 AM

File

cc-pe.pdf
Files produced by the author(s)

Identifiers

Collections

Citation

Bernard Goossens, David Parello, Katarzyna Porada, Djallal Rahmoune. Computing On Many Cores. Concurrency and Computation: Practice and Experience, Wiley, 2017, 29 (15), pp.e4120. ⟨10.1002/cpe.4120⟩. ⟨lirmm-01302904⟩

Share

Metrics

Record views

365

Files downloads

611