Section: Software
StarPU
Participants : Cédric Augonnet, Olivier Aumage, Nicolas Collin, Nathalie Furmento, Cyril Roelandt, Ludovic Stordeur, Samuel Thibault, Ludovic Courtès.
StarPU permits high performance libraries or compiler environments to exploit heterogeneous multicore machines possibly equipped with GPGPUs or Cell processors.
StarPU offers a unified offloadable task abstraction named codelet.In case a codelet may run on heterogeneous architectures, it is possible to specify one function for each architectures (e.g. one function for CUDA and one function for CPUs).
StarPU takes care to schedule and execute those codelets as efficiently as possible over the entire machine. A high-level data management library enforces memory coherency over the machine: before a codelet starts (e.g. on an accelerator), all its data are transparently made available on the compute resource.
StarPU obtains portable performances by efficiently (and easily) using all computing resources at the same time.
StarPU also takes advantage of the heterogeneous nature of a machine, for instance by using scheduling strategies based on auto-tuned performance models.
StarPU can also leverage existing parallel implementations, by supporting parallel tasks, which can be run concurrently over the machine.
StarPU provides a reduction mode, which permit to further optimize data management when results have to be reduced.
StarPU provides integration in MPI clusters through a lightweight DSM over MPI.
StarPU comes with a plug-in for the GNU Compiler Collection (GCC), which extends languages of the C family with syntactic devices to describe StarPU 's main programming concepts in a concise, high-level way.