Lionel Lacassagne
Institut d'Electronique Fondamentale
Universite Paris-Sud Orsay
XLR8
"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.
Wrong links
XLR8 does not deal with:
Big Brother is watching you
just smile ;-)