"We can rebuild it. Make it better, stronger, faster than it was before
we have the technology". Oscar Goldman.
Introduction
XLR8 is a tools for automatic parallelisation onto multi-core/multi-processors and cluster architecture
XCellR8 is XLR8 for the Cell, with CellPI our flavour of MPI for Cell
XLR8 Presentation
XLR8 is composed of 3 modules
a complexity analysis module, that selects optimal operators chaining
a fuse module, that, under some assumptions, fuses operators together for an optimal new operator
a deployment module based on QUAFF tool and on a highly optimized SWAR (Altivec/SPE/SSE) library
XLR8 is based on the algorithmic skeletons programming model.
In such a model, parallel programs are defined as a sequence of predefined parallel structures, which can be arbitrary nested.
Implemented as active libraries using C++ meta-programming,
XLR8 guarantees the performance of the resulting application (in a similar fashion than QUAFF, a parallel deployment tool for MIMD machines developed at the LASMEA).
For the end user, the Harris Point of Interest detector code is as easy as:
run(farm<4>(seq_2(Sobel,Mul),seq_2(Gauss,K));
The tool is both versatile and powerful. The versatility comes from the fact that algorithmic skeletons can describe,
with a few numbers of constructions, a wide range of complex deployment. The efficiency is due to the low execution overhead (thanks to C++ template programming),
which is never over 5% over a manual deployment from a skilful programmer.