Computing On Many-Cores [call for collaboration]
Six years ago, I graduated from The University of Perpignan Via Domitia in France. I was working with The Dali Team at LIRMM Research group. Now they continue their microarchitecture research adventure working in Computing On Many Cores project.
This project presents an alternative method to parallelize programs, better suited to many-core processors than actual OS/API based approaches like OpenMP and MPI. The method relies on a parallelizing hardware and an adapted programming style. It frees and captures the Instruction Level Parallelism (ILP). A many-core design is presented in which cores are multithreaded and able to fork new threads. The programming style is based on functions. The hardware creates a concurrent thread at each function call. The programming style and the hardware create the conditions to free the ILP, by eliminating the architectural dependences between a call and its continuation after return. Dali group illustrate the method on a sum reduction, a matrix multiplication and a sort. They measure the ILP of the parallel runs and show that it is high enough to feed thousands of cores because it increases with data size. They compare our method to pthread parallelization, showing that (i) parallel execution is deterministic, (ii) our thread management is cheap, (iii) the parallelism is implicit and(iv) the method parallelizes functions and loops. Implicit parallelism makes parallel code easy to write and read. Deterministic parallel execution makes parallel code easy to debug.
If you are interested working in this project (idea, collaboration, resources, ... ) please contact the Dali Team:
Team working in Computing On Many Cores project: Bernard Goossens, David Parello, Katarzyna Porada and Djallal Rahmoune
Papers: Toward a Core Design to Distribute an Execution on a Manycore Processor, Parallel Locality and Parallelization Quality by Bernard Goossens et all.