This website is outdated. Since 2014, Dr. Grigori Fursin is a Chief Scientist and Technologist of the non-profit cTuning foundation.
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. Our long term goal is to revisit over-complicated, under-performing and power-hungry computing technology, and develop self-tuning, adaptive computing systems based on gradual parametrization of all computing systems using collaborative, open-source design, characterization and optimization tools, on empirical automatic code/architecture optimization/characterization, and on continuous collection of multiple benchmarks, data sets and optimization/characterization information in open repositories. We actively research on how to systematize all available knowledge using various novel interdisciplinary statistical, collective and machine learning techniques within my research group and collaborative tuning center. We are always very goal-oriented to deliver quickly what we promise given enough R&D freedom.
Automating code, compiler and architecture design and optimization should help to improve performance, power consumption and reliability of computing systems, reduce their development cost and time to market by predicting better optimizations, architecture designs on run-time adaptation. We hope that this in turn will boost innovation and research in bio-informatics, medicine, physics, aeronautics, robotics, chemistry, finances, image/video processing and other important areas.
From time to time, we give invited talks about our techniques at companies and universities including Intel, IBM, UIUC, ICT, etc. Most of our techniques and tools have been published and references in conferences/journals such as ACM TACO, MICRO, PLDI, ASPLOS, CGO, PACT; referenced in various patents; included in the HiPEAC 2012-2020 research roadmap and are now actively used and extended in academia and industry (Intel, Google, IBM and others).
We are very grateful to Prof. Michael O'Boyle, Prof. Olivier Temam and Prof. Francois Bodin for a very special and long-term collaboration! We are also grateful to all our great colleagues for interesting and sometimes tough research discussions, feedback and collaboration.
- Current design of our Collective Optimization Framework and Repository (http://cTuning.org):
- Major Publications:
- 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) (collaborative open-source tools and repositories for code/architecture characterization and optimization) 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 can revolutionize 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.
- Developed UNIDAPT concept to statically enable run-time optimizations and self-tuning binaries through function cloning and integrated low-overhead program/system behavior monitoring routines. Such adaptive binaries can automatically learn from the past experience and adapt/react to various environments, run-time behavior and contentions to improve performance, power consumption, efficiency and cost of various both embedded systems and HPC data centers (cloud computing). This framework opened up many research possibilities, has been used in multiple research projects in collaboration with UPC, ICT, IBM, CAPS Enterprise, STMicro, has been supported by MILEPOST, HiPEAC and Google Summer of Code grants, has been referenced in patents and has been extended to speed up iterative compilation (FCOP2005, FCOP2006), enable transparent continuous collective optimization (FT2010,FT2009,FMPP2007), enable portable program characterization techniques based on reactions to optimizations (FT2010,FT2009), enable predictive scheduling for heterogeneous multicore systems (JGVP2009), enable adaptive libraries based on dataset characterization using machine learning and decision trees (LCWP2009) among many other usages. Since 2007 it is being actively extended by Google Inc. for data centers (cloud computing).
- Developed a novel and simple approach to characterize program memory/CPU behavior and quickly detect realistic lower bound of the execution time of memory intensive applications by modifying individual assembler instructions including converting array accesses to scalars in various ways without preserving the semantics of the code while avoiding code crashing to be able to directly compare original and transformed programs. This practical technique helps end-users and developers to focus their effort only on those parts of the code that can benefit from memory optimizations and opens up various other R&D opportunities (FOTP2004,FUR2004,FOTP2001,EOS tools).
- 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.
- Current collaboration:
- Intel, Université de Versailles-Saint-Quentin-en-Yvelines (France), GENCI, CEA, ICT (China), CAPS Enterprise, University of Edinburgh (UK), IBM, STMicroelectronics, UIUC (USA), UPC (Spain), Ghent University (Belgium) ...
- Major developments:
- Collective Tuning Center (cTuning.org), Collective Optimization Database, Optimization Prediction Web-Service - community-driven collaborative center to share optimization cases and develop R&D tools with common APIs for self-tuning adaptive computing systems (including programs, compilers, run-time systems, architectures) based on empirical optimization, run-time adaptation, statistical collective optimization and machine learning.
- cTuning CC - free, open source compiler collection that combines multiple tools and techniques including MILEPOST GCC, ICI, CCC framework, cTuning web-services and Collective Optimization Database and cBench as the first practical step toward self-tuning, adaptive computing systems based on industrial tools, empirical techniques, transparent collective optimization, statistical analysis and machine learning.
- MILEPOST GCC - first publicly available open-source machine learning enabled compiler that that correlates program features and optimizations during empirical learning to predict good optimization for unseen programs. It opens up many new research opportunities.
- Interactive Compilation Interface - high-level common compiler independent research API and low-level event-driven plugin system to “hijack” production compilers and transform them into extensible interactive research optimization toolsets. We participated in discussions on GCC low-level plugin framework and added some of the ICI to the mainline GCC 4.5.
- CCC (2005-now) - collaborative framework to enable transparent collection and statistical analysis of heterogeneous optimization information from multiple users (computer architectures, programs, datasets, run-time behavior, etc) to enable collective optimization for performance, code size, power, etc.
- UNIDAPT (2004-now) - framework to statically enable run-time optimizations and create self-tuning adaptive binaries and libraries for heterogeneous multi-core systems based on static multi-versioning and dynamic adaptation to continuously improve performance, power, fault-tolerance, etc. Now static binaries 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).
- cBench/MiDataSets - collection of open source programs and datasets for realistic research on program optimization and performance evaluation.
- We co-founded the SMART workshop series on statistical and machine learning approaches to architectures and compilation.
- We organize M.S. course on Future Computing Systems.
- We gave several invited talks at IBM, Intel and a number of other companies and universities about automating code and architecture optimizations as well as enabling self-tuning intelligent adaptive computing systems.
- Motivation example:
Milepost GCC combined with cTuning technology helps to correlate program features and optimizations using various machine learning techniques to quickly predict good optimizations for a previously unseen program.
If you would like to contact or visit us you can find more details here.