Participants : Cédric Augonnet, Samuel Thibault.
StarPU is a unified runtime system that offers a support for heterogeneous multicore architectures (multicore, GPGPUs, Cell ...). Its goal is to help higher level softwares such as compiler environment or specific high performance libraries to harness the power of those emerging architectures in a high level and portable way.
StarPU differs from most similar projects as it considers all computing resources simultaneously, instead of merely offloading computation onto one or several accelerators. It is organized around three main components : a distributed shared memory that offers a high level interface to manipulate data in a transparent and efficient manner, a unified execution model called “codelets” which model tasks that can be executed on different architectures, and a scheduling engine that makes possible to design scheduling policies which assign tasks to the different computing resources as efficiently as possible. Performance models of task duration and data transfers can be provided or auto-tuned to implement various scheduling heuristics.
StarPU has not only demonstrated that it is possible to distribute computations efficiently over a machine's heterogeneous computing resources, but it has also shown that it is possible to take advantage of the actual heterogeneity of the machine, since parts of applications are better suited to running on multicores while other parts benefit from running on a GPGPU.
Cédric Augonnet is the main contributor to StarPU which is currently composed of more than 38 000 lines of code. It is freely available under the terms of the GNU Lesser General Public License (LGPL) version 2.1 at the following URL: http://runtime.bordeaux.inria.fr/StarPU/ .