From UNIDAPT.org

Jump to: navigation, search

UNIDAPT Group (UNIversal aDAPTation) has been created by Dr. Grigori Fursin in 2004 to revisit current over-complicated, under-performing and power-hungry computing technology, and develop self-tuning, adaptive computing systems based on empirical automatic code/architecture optimization and statistical, collective and machine learning techniques. Since March, 2010, Grigori and his UNIDAPT team joined EXATEC Lab in France (Intel Labs Europe/CEA/GENCI/UVSQ). More information will be available through the official communication channels of the new Lab.

The importance of these developments has been acknowledged in the EU HiPEAC Research Roadmap on High-Performance Embedded Architecture and Compilation in 2007 (HiPEAC1 research vision). We also participated in the preparation of the new HiPEAC research vision (2012-2020) (reviewing and writing parts on automatic self-adaptation, split-compilation and collective optimization). Collective Tuning Center has been referenced in IBM press-release (2009.06.30). cTuning/MILEPOST technology revolutionizes code and architecture design and optimization, helps to reduce power consumption and time to market for new computing systems, and is now used by major companies and in large US, EU and other international R&D projects.

It may not always be visible to the IT users, but developing and optimizing new computing systems using current technology is too time consuming and costly. We feel that current compiler and computer architecture research often stuck in "local minima" without looking at the BIG picture. Hence, we are investigating novel theoretical and practical techniques to automate and simplify the process of developing and optimizing new computer architectures, compilers, operating systems and programming environments using statistical analysis, machine learning, dynamic adaptation and bio-inspired techniques. We believe that our adaptive approaches are critical to overcome the complexity of computing systems and improve their performance, power consumption, system size and fault-tolerance automatically while reducing their cost and time to market. We hope that our techniques will boost innovation in science and industries (bio-informatics, medicine, physics, chemistry, finances, gaming, etc) that demand ever-increasing computing resources while placing strict requirements on systems.

  • Main achievements:
    • Moved empirical automatic performance tuning, iterative optimization (compilation), statistical and machine learning techniques to real production compilers and computing systems, and started the whole system parametrization and abstraction to enable future self-tuning, adaptive computing systems. Designed Collective Tuning Center (cTuning.org) and led the development of the first publicly available machine learning enabled self-tuning compiler based on automatic correlation between program features, run-time behavior and optimizations (MILEPOST GCC (with MILEPOST colleagues) and cTuning CC) focusing at the moment on improving program execution time, code size, compilation time, power consumption and enabling run-time adaptation. Though this system is still in a preliminary state, we showed for the first time how to substitute the whole human-tuned state-of-the-art optimization heuristic of a production compiler with the automatically learned one across multiple programs and architectures using empirical iterative and collective optimization, program features and predictive modeling. cTuning/MILEPOST technology revolutionizes code and architecture design and optimization, helps to reduce power consumption and time to market for new computing systems, and is now used by major companies and in large US, EU and other international R&D projects. All developed tools have been released as open-source to the community to continue collaborative R&D to automate and simplify code and architecture design and optimization, enable sharing of optimization cases and improve the quality of academic research. cTuning/MILEPOST technology opens up many research opportunities, so it's an on-going, evolving project with many R&D topics available. Current collaborative projects include automating fine-grain/polyhedral optimizations, parallelization and run-time optimization and adaptation using statistical and machine learning techniques.
    • Participated in the preparation of the HiPEAC research vision (2012-2020) (reviewing and writing parts on automatic self-adaptation, split-compilation and collective optimization).
    • Initiated the International Workshop Series on Statistical and Machine learning approaches to ARchitecture and compilaTion (SMART) together with my colleagues from the University of Edinburgh.
    • Developed multiple practical techniques to speed up iterative feedback-directed optimization and enable run-time adaptation for statically compiled programs based on code cloning, dynamic low-overhead monitoring of program behavior and reaction to its changes; enabled predictive scheduling for heterogeneous multicore systems; developed portable program characterization techniques based on reactions to optimizations, adaptive libraries based on dataset characterization using machine learning and decision trees, empirical architecture design space exploration, transparent statistical collective optimization, etc (Publications).
  • Split-compilation - techniques to find good balance between static and dynamic optimizations using predictive modeling combined with off-line and on-line training (Related publications: LCFP2007).
  • Self-optimizing programs - enabling run-time adaptation of static and dynamic programs based on static multi-versioning and statistical and machine learning techniques (Related publications: FT2009, LCWP2009, Fur2009, FMPP2007, FCOP2006, FCOP2005).
  • Adaptive parallelization - enabling auto-parallelization and run-time scheduling on heterogeneous multi-core systems based on statistical and machine learning techniques (Related publications: JGVP2009, LFF2007).
  • Performance prediction - prediction of ideal program performance and upper-bound for iterative compilation (Related publications: DJBP2009,DCFP2007,FOTP2004,FUR2004).
  • Collective Benchmarks - up-to-date benchmarks with multiple datasets to enable realistic performance evaluation and program/dataset characterization (Related publications: YYLP2010, Fur2009, FCOP2007).
  • Automated architecture design space exploration - continuous exploration of different architectural designs (statically or at run-time using reconfiguration) to find the best designs for performance, power consumption, fault-tolerance (Related publications: DJBP2009, CDAP2006, DFGP2007).
  • Polyhedral optimizations - techniques to combine polyhedral program representation and compiler optimization/parallelization techniques to overcome the limitations of current compiler transformations (Related publications: LF2009, LF2005).
  • Unified view of heterogeneous architectures and optimizations - high-level abstraction layer for heterogeneous systems (architectures, compilers, run-time systems) to enable self-tuning intelligent systems (Related publications: JGVP2009, Fur2009).
  • Collaborative open-source research infrastructure - common API and light-weighted plugin system to transform production-quality compilers with the state-of-the-art transformations together with multiple incompatible research tools into powerful collaborative research research infrastructure with minimal changes to avoid building it from scratch (Related publications: HPWP2010, FT2009, Fur2009,FMTP2008, FC2007, FCOP2007).

You can find more details about these research topics in our publications.

We have fruitful collaboration with universities and companies:

  • Université de Versailles-Saint-Quentin-en-Yvelines (France), UIUC (USA), ICT (China), University of Edinburgh (UK), UPC (Spain)
  • Intel, CAPS Enterprise, GENCI, CEA, STMicroelectronics, IBM

If you interested to collaborate with us don't hesitate to contact us.

We are developing open-source research tools with common APIs to support our research and enable collaborative and replicable R&D. Our activities are supported by academia and industry including multiple HiPEAC partners. If you are interested to help us develop common research tools with unified APIs (compilers, architecture simulators, run-time environments, etc) you are very welcome to join our cTuning effort.

More details about our collaborate software developments can be found at our Developments page.

If you would like to find more details about our knowledge dissemination activities, follow this link. If you would like to join our group, this page lists current positions and requirements.
If you would like to contact or visit us you can find more details here.