The libKOMP runtime system
The libKOMP runtime system
libKOMP is a runtime system for OpenMP 3.0+ that comes with nice features to efficiently deal with fine-grain task parallelism. It’s binary compatible with existing OpenMP applications that were compiled by GCC 4.6, and it relies on the kaapi runtime system to create tasks and execute them on a work-stealing manner.
What is libKOMP?
libKOMP is part of the kaapi
library, and can be seen as a front-end that replaces
original GNU GCC libgomp runtime routines by the
corresponding ones implemented using kaapi.
libKOMP is part of kaapi
from January 2013 (xkaapi 2.0).
You can find more information about how to get the kaapi library (also called XKaapi) here.
Getting libKOMP
The default
configuration/installation procedure of the kaapi
library will also build and install the libKOMP
runtime system.
From a fresh kaapi checkout/tarball:
Installing libKOMP
cd kaapi
./configure --prefix=where_to_install_kaapi
make && make install
Along with other useful stuff, the commands you just executed installed the libKOMP library (.so, . a or .dylib depending on your OS) and the libkomp-run script in the « where_to_install_kaapi » folder. You may want to add the where_to_install_kaapi/bin folder to your PATH environment variable, as you’ll be using the libkomp-run script a lot.
Now you have installed
libKOMP, using it to run your favorite OpenMP
application is easy, as long as it has been built by
GCC.
Just use the libkomp-run script to execute your application like this:
Using libKOMP
libkomp-run ./my-bad-performing-openmp-app
You feel the urge to sharing
your love/pain with us? Here is a list of people
involved in the development of the libKOMP runtime
system:
François Broquedis: francois.broquedis_AT_imag.fr
Thierry Gautier: thierry.gautier_AT_inrialpes.fr
Vincent Danjean: vincent.danjean_AT_imag.fr
Contact
I’ll try to maintain a merely
up-to-date list of libKOMP-related publications
here:
[1] libKOMP, an efficient OpenMP runtime system for both Fork-Join and Data-Flow paradigms
I’d like to know more about how this works!
Coming soon...
Frequently Asked Questions