Clavis: a user level scheduler for Linux

The Clavis user-level scheduler is designed to implement various scheduling algorithms under Linux Operating System running on multicore and NUMA machines. It is written in C to make the integration with the default OS scheduling facilities seamless.

Clavis is released under Academic Free License (AFL), which allows you to use the source code in your proprietary projects. We only ask to please cite our Linux Symposium paper that introduces Clavis, in case you will decide to publish your work at some point.


5 October 2013:Version 6.5.5 is released. New version contains support for detecting network and I/O contention (thank you, DeepDive team!), as well as identification of Hadoop job/task trackers and name/data nodes.
9 November 2012:Version 6.5.4 is released. Clavis source is now much more compact. It also allows detecting MPI ranks on-the-fly.
28 September 2012:Version 6.5.3 is released. Updated installation instructions (in README file), bugfixes.
5 May 2012:Version 6.5.2 is released. Virtualization support (online detection of KVM, OpenVZ VMs and their traffic),
additional supported CPU models, bugfixes.
12 June 2011:The project source code and Linux Symposium paper that introduces it are uploaded.
18 May 2011:The project page has been setup on


Source code for this project is available here.


Please refer to the README included with the distribution.

The Linux Symposium paper that describes the scheduler can be downloaded from here.

Selected publications that use Clavis

Check out ClavisMO: a multi-objective scheduling framework for MapReduce and HPC clusters that uses Clavis.

Contact Info

For all questions about Clavis, please contact the author directly:

Sergey Blagodurov (email: