"OpenME" is an interface that "opens up" third-party tools and applications to make them prepared for auto-tuning using cM. Originally it was developed by Grigori Fursin in 2004-2005 to make Open64 interactive through very simple event-based plugin framework to have an access to all fine-grain transformations such as loop tiling, unrolling, vectorization, array padding, data prefetching, register vectorization, etc. This interface (ICI - interactive compilation interface) proved to be very useful and Grigori moved it to GCC in 2005-2008 to convert GCC to a powerful production-quality research toolset. Together with Zbigniew Chamski and collaborating with Google and Mozilla, we moved this interface to mainline GCC which is now available since version 4.6. Now, we are developing a new universal event-based plugin framework that can open up not only tools but also applications for online (dynamic) analysis and tuning.

"OpenME" beta version is shared as part of cM in code.source:lib-openme-1.0 together with a simple plugin for analysis of applications code.source:lib-openme-plugin-ctuning-1.0. It is also ported to LLVM, GCC and Open64, and shared in cM ctuning repository.

We plan to document it and provide more online auto-tuning examples from Grigori's past research in a near future:

Openme for compilers.png Openme compilers full control.png Openme for applications.png

License: LGPL v2.1


(C) 2011-2014 cTuning foundation