EN FR
EN FR


Section: Software

Marcel

Participants : Olivier Aumage, Yannick Martin, Samuel Thibault.

  • Marcel is the two-level thread scheduler (also called N:M scheduler) of the PM 2 software suite.

  • The architecture of Marcel was carefully designed to support a large number of threads and to efficiently exploit hierarchical architectures (e.g. multicore chips, NUMA machines).

  • Marcel provides a seed construct which can be seen as a precursor of thread. It is only when the time comes to actually run the seed that Marcel attempts to reuse the resources and the context of another, dying thread, significantly saving management costs.

  • In addition to a set of original extensions, Marcel provides a POSIX-compliant interface which thus permits to take advantage of it by just recompiling unmodified applications or parallel programming environments (API compatibility), or even by running already-compiled binaries with the Linux NPTL ABI compatibility layer.

  • For debugging purpose, a trace of the scheduling events can be recorded and used after execution for generating an animated movie showing a replay of the execution.

  • The Marcel thread scheduling library is made of 80 000 lines of code.

  • http://runtime.bordeaux.inria.fr/marcel/

  • Marcel has been supported for 2 years (2009-2011) by the Inria ADT Visimar.