From cTuning.org
Navigation: cTuning.org > CTools > UNIDAPT
UNIDAPT concept has been developed during 2004-2006 by Grigori Fursin in collaboration with Olivier Temam to statically enable run-time optimizations and self-tuning binaries through cloning of program hot spots, applying various aggressive optimizations to clones for different optimization cases (that may improve performance/power/fault-tolerance, etc), statically integrating low-overhead program/system behaviour monitoring routines (using hardware counters) and selecting appropriate versions at run-time as a reaction to different program behavior, architectural changes or contentions.
For the first time, Grigori utilized his Interactive Compilation Interface for PathScale compiler with loop vectorization, tiling, unrolling, interchange, fission/fusion, pipelining, prefetching and array padding to make static self-tuning binaries that can automatically learn from the past experience and adapt/react to various environments, run-time behavior and contentions that is important to improve efficiency and cost of both embedded systems and HPC data centers (cloud computing).
This technique opened up many research possibilities and has been used in multiple research projects in collaboration with UPC, ICT, IBM, CAPS Enterprise, STMicro and has been supported by MILEPOST, HiPEAC and Google Summer of Code grants. For example, we used it later to support collective optimization (FT2010, FT2009, FMPP2007), predictive scheduling for heterogeneous multicore systems (JGVP2009), automatically create adaptive multiversioning libraries and programs (LCWP2009), etc. based on continuous transparent run-time program optimization and adaptation as a reaction to dynamic changes in program behavior and environment.
We are now trying to implement this framework in GCC 4.4 combined with ICI (though source-to-source adaptation framework can still be useful). We are working to provide a unified view of heterogeneous architectures and optimizations with a high-level abstraction layer (architectures, compilers, run-time systems) to automate and simplify program development and optimization for heterogeneous multi-core systems. We would like to use this framework to automatically detect contentions in computing systems and react to such changes. You are welcome to join the project, provide feedback and help with developments.
Acknowledgments
Here is the list of colleagues who helped developing or brainstorming UNIDAPT concept:
- Grigori Fursin (UVSQ/INRIA, France)
- Olivier Temam (INRIA Saclay, France)
- Michael O'Boyle (University of Edinburgh, UK)
- Francois Bodin (CAPS Entreprise, France)
- Victor Jimenez (UPC, Spain)
- Marisa Gil (UPC, Spain)
- Nacho Navarro (UPC, Spain)
- Lianjie Luo (ICT, China)
- Yang Chen (ICT, China)
- Shun Long (JiNan University, China)
- Chengyong Wu (ICT, China)