Nowaday multiprocessor machine architectures are more and more complex: NUMA memory, shared cache levels, GPGPU/FPGA accelerators, network boards ... How to properly schedule non-regular scientific computing on such machines ?! It is not realistic to perform manual scheduling any more, one now uses dynamic schedulers, which allow to exploit these machines. To be able to optimize the scheduling, one more and more uses the tasks paradigm, to which are attached more or less precise information about duration, memory occupation, priority, etc.

Publications (.bib), Google Scholar, Research Gate

My HDR thesis is available as PDF (english), as well as the slides (english), and the Christine chocolate cake recipe (french).

Main publications:

PhD advisor for:

Previously PhD co-advisor for:

Scheduling tasks on heterogeneous systems, StarPU

Cédric Augonnet, during his PhD under my co-direction, has designed StarPU, a framework for scheduling tasks over heterogeneous machines. The idea is to try to perform all optimizations at runtime: data transfers are minimized and performed in advanced, overlapped with computation, and interact with the task scheduling decisions. The latter take into account performance models of the tasks, which permits to capture the heterogeneous aspect of the machine, and even take benefit from it!

StarPU is more and more used for various scientific computation libraries such as linear algebra (MORSE project).

We have extended the StarPU programming model to exploiting clusters in a distributed way thanks to MPI, which poses questions of scaling.

We have extended the data management of StarPU to using disks, thus allowing out of core computations, which poses questions of optimizing transfers.

Combining StarPU with Simgrid allows us to simulation execution, which not only saves time to observe performances obtained with different scheduling heuristics, but also modify parameters of the simulated architecture (bandwidth, computation units, ...)! More generally, with the modularization of the StarPU schedulers, it brings theoreticians with a platform for testing various heuristics on real applications, while avoiding all the technical constraints of real execution on a production system (hardware failures, changing software versions, ...).

A video recording (26') of my presentation at the XDC2014 conference gives an overview of this work (slides):

A (french) presentation to a elementary school class explains the global challenge in a very simple way. (ODP source)

Publications about StarPU

Current Projects related with StarPU:

Past projects related with StarPU:

Previous work: modeling architectural structures, hwloc

From my work on the hierarchy of a machine described below, we extracted a software component, HwLoc, which handles abstracting the details of detection and representation of the hierarchy of a machine, which is modeled through an annotated tree. Computation software can thus easily, in a portable way, explicitly manipulate “cores”, “sockets”, but also consider the machine as a generic hierarchy, without caring about architectural details. This component is now used in all the main implementations of the MPI communication interface, and in numerous computation projects. It is thus installed in the majority of computation centers.

Publications about hwloc

Previous work: scheduling threads on hierarchical systems, Marcel

The basic idea I have developped during my PhD thesis is providing programmers a way to express how threads of their application relate together: bubbles. A bubble expresses for instance that some threads work on the same set of data, that they often communicate together, ... so that they should be schedule in the same "corner" of the machine ; in a hierarchical manner.

I have developped an API that permits to manipulate these bubbles with a high level of abstraction. That way, people can experiment different distribution schedulers without having to care about hardware details for instance. They can really focus on algorithmic issues.

I have developped "bubble schedulers" that manipulates such hierarchy of bubbles: spreading the computation load while keeping affinities into account, gang scheduling, work stealing. Trainees could experiment some other strategies: favoring affinities above all, taking into account the size of data, how it is shared and the access rate, ... All this in a way that can automatically adapt itself to any hierarchical machine! The PhD thesis of François Broquedis developped these schedulers, experimenting them with OpenMP applications.

My PhD thesis is available as PDF.

This was developped within Marcel, the efficient, portable and flexible thread library of the PM2 project.

Publications about Marcel

Past projects related with Marcel:

Other projects