Home Contact CV Research / Teaching Hobbies Social
Current Research Teaching Software Publications Links
[Back to Research topics]


Statistical search and machine learning techniques to enable future self-tuning systems (compilers, OS, architectures)


Description     Collaborations     Software     Our related publications     Links

Description:


  

I founded UNIDAPT Group to pioneers and promotes radically new practical techniques to overcome the complexity of current and future architectures, compilers, operating systems and programming environments. We are working on creating self-tuning intelligent adaptive systems, automating and improving architecture and compiler design (particularly for future heterogeneous multi-core systems), optimizing and parallelizing applications to improve performance, power consumption, size and fault-tolerance, reduce cost and time to market based on machine learning, artificial intelligence, statistical methods and biologically inspired techniques. This is critical to be able to continue innovation in science and industry (bioinformatics, medicine, physics, chemistry, finances, gaming, etc) that demands ever-increasing computing resources while placing strict requirements on systems.

Together with the MILEPOST colleagues we are currently developing MILEPOST GCC - the first machine learning based self-tuning research compiler described more in our GCC Summit'08 paper (many thanks to Cupertino Miranda for extending Interactive Compilation Interface, Edwin Bonilla for extending machine learning techniques, Mircea Namolaru for integrating static program feature extractor to MILEPOST GCC and John Thomson for performance evaluation). We plan to release MILEPOST GCC v1.0 by the end of 2008. In the mean time, you can register your interest here to receive information about (pre)releases of the MILEPOST GCC. You can also subscribe for UNIDAPT announcements or contact me if you would like to use it for your research and collaborate on some projects.

We are currently seeking a Compiler and Performance Engineer to work with us in the MILEPOST project until at least July 2009 and collaborators to extend MILEPOST GCC.

Tuning hardwired compiler optimizations for rapidly evolving hardware makes porting an optimizing compiler for each new platform extremely challenging. Our radical approach is to develop a modular, extensible, self-tuning intelligent compiler that automatically learns the best optimization heuristics based on combining feedback-directed iterative compilation and machine learning. MILEPOST GCC is a machine learning based compiler that automatically adjusts its optimization heuristics to improve execution time, code size, or compilation time of specific programs on different architectures. Currently, we use several iterative search strategies within CCC framework to find combinations of good optimization flags to substitute GCC default optimization levels for a particular architecture (such as -O0,-O1,-O2,-O3,-Os which we will not need in the future adaptive compilers) or tune optimization passes on a function-level for a particular program. Our preliminary experimental results show that it is possible to considerably reduce execution time of various benchmarks (MiBench, MediaBench, EEMBC, SPEC) on a range of platforms (x86, x8664, IA64, ARC, Longson/Godson, etc) entirely automatically. MILEPOST GCC can be used interactively in research on adaptive computing through the Interactive Compilation Interface (we currently support optimization pass selection and reordering, plugins and event mechanism to invoke any passes on demand (such as program feature extraction pass) or tune cost-models of specific transformations within passes).

Some history: Soon after starting research on iterative optimizations in 1999, I realized that current search methods are too slow in large non-linear optimization space and new techniques are needed to prune it. Since I had some experience with neural networks and machine learning during my undergraduate and M.S. studies, I wanted to apply some of these techniques to compiler optimizations to quickly capture main features and behavior of optimization spaces, speed up the search process and enable optimization knowledge reuse. However, lacking manpower and support ;) we could only proceed with this research in 2003 after teaming up with our colleagues from Machine Learning Group from the Institute for Adaptive and Neural Computation (University of Edinburgh).

We currently evaluate different statistical search and machine learning techniques to analyze and narrow down large optimizations spaces considerably and automatically learn best optimization settings among different programs and architectures using static and dynamic features. I am developing Continuous Collective Compilation framework to enable continuous program and architecture optimization knowledge reuse using ICI, UNIDAPT, MiDataSets coupled with machine learning and statistical search techniques. This framework is currently used in several research projects and will be publicly available at the end of 2008.

We also use ML and statistical search techniques to automatically build a performance model for a new architecture to predict the impact of different program transformations on this architecture using statistical and machine learning techniques, and a limited number of training runs. We use either statical or run-time features of the program to quickly predict the performance of all transformations for a given program on a new architecture thus speeding up the evaluation of compiler/architecture performance by several orders of magnitude. We developed a novel technique to characterize programs or architectures using program reaction to optimizations (transformations).


Software: Collaborations:


More Information about my software developments



 

Our related publications:

  • Grigori Fursin and Olivier Temam. Collective optimization. To appear at the International Conference on High Performance Embedded Architectures & Compilers (HiPEAC 2009), Paphos, Cyprus, January 2009

  • Victor Jimenez, Isaac Gelado, Lluis Vilanova, Marisa Gil, Grigori Fursin and Nacho Navarro. Predictive runtime code scheduling for heterogeneous architectures. To appear at the International Conference on High Performance Embedded Architectures & Compilers (HiPEAC 2009), Paphos, Cyprus, January 2009

  • Grigori Fursin, Cupertino Miranda, Olivier Temam, Mircea Namolaru, Elad Yom-Tov, Ayal Zaks, Bilha Mendelson, Phil Barnard, Elton Ashton, Eric Courtois, Francois Bodin, Edwin Bonilla, John Thomson, Hugh Leather, Chris Williams, Michael O'Boyle. MILEPOST GCC: machine learning based research compiler. Proceedings of the GCC Developers' Summit, Ottawa, Canada, June 2008

    [bib]     [pdf]
  • Shun Long, Grigori Fursin, Björn Franke. A Cost-Aware Parallel Workload Allocation Approach based on Machine Learning Techniques. Proceedings of the IFIP International Conference on Network and Parallel Computing (NPC 2007), LNCS-4672, pages 506-515, Dalian, China, September 2007

    [bib]     [pdf]
  • Grigori Fursin, Cupertino Miranda, Sebastian Pop, Albert Cohen and Olivier Temam. Practical Run-time Adaptation with Procedure Cloning to Enable Continuous Collective Compilation. Proceedings of the GCC Developers’ Summit, Ottawa, Canada, July 2007

    [bib]     [pdf]
  • Grigori Fursin and Albert Cohen. Building a Practical Iterative Interactive Compiler. 1st International Workshop on Statistical and Machine Learning Approaches Applied to Architectures and Compilation (SMART'07), Ghent, Belgium, January 2007

[bib]    [pdf]

  • John Cavazos, Grigori Fursin, Felix Agakov, Edwin Bonilla, Michael F.P.O’Boyle and Olivier Temam. Rapidly Selecting Good Compiler Optimizations using Performance Counters. Proceedings of the 5th  Annual International Symposium on Code Generation and Optimization (CGO), San Jose, USA, March 2007

    [bib]    [pdf]
  • Grigori Fursin, John Cavazos, Michael O’Boyle and Olivier Temam. MiDataSets: Creating The Conditions For A More Realistic Evaluation of Iterative Optimization. Proceedings of the International Conference on High Performance Embedded Architectures & Compilers (HiPEAC 2007), Ghent, Belgium, January 2007

[bib]    [pdf]

  • Grigori Fursin, Albert Cohen, Michael O'Boyle and Oliver Temam. Quick and practical run-time evaluation of multiple program optimizations. Transactions on High-Performance Embedded Architectures and Compilers, 1(1), pages 13-31, 2006

[bib]    [pdf]   [pdf  backup]

  • F. Agakov, E. Bonilla, J. Cavazos, B. Franke, G. Fursin, M.F.P. O'Boyle, J. Thomson, M. Toussaint and C.K.I. Williams. Using Machine Learning to Focus Iterative Optimization. Proceedings of the 4th  Annual International Symposium on Code Generation and Optimization (CGO), New York, NY, USA, March 2006
    (best presentation award)
[bib]    [pdf]
  • Grigori Fursin, Albert Cohen, Michael O'Boyle and Oliver Temam. A Practical Method For Quickly Evaluating Program Optimizations. Proceedings of the 1st International Conference on High Performance Embedded Architectures & Compilers (HiPEAC 2005), number 3793 in LNCS, pages 29-46, Barcelona, Spain, November 2005
    (highest ranked paper, acceptance rate=18%)

[bib]    [pdf]   [pdf  backup]

  • B. Franke, M. O'Boyle, J. Thomson and G. Fursin. Probabilistic Source-Level Optimisation of Embedded Systems Software. Proceedings of the Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES’05), pages 78-86, Chicago, IL, USA, June 2005
[bib]    [pdf]
  • Grigori Fursin. Iterative Compilation and Performance Prediction for Numerical Applications. Ph.D. thesis, University of Edinburgh, Edinburgh, UK, January 2004
[bib]    [pdf]   [pdf  backup]
  • G.G.Fursin, M.F.P.O’Boyle, and P.M.W. Knijnenburg. Evaluating Iterative Compilation. Proceedings of the 15th Workshop on Languages and Compilers for Parallel Computing (LCPC’02), College Park, MD, USA, pages 305-315, 2002
[bib]    [pdf]

All my publications      My bibliography collection       My links to on-line journals and conference


Links:

  • some other groups work on ML for iterative optimizations but they mostly target one or two transformations, instead we look at all transformations (at different granularity) at the same time.

If I forgot some group, please don't hesitate to contact me.





Content & Design (C)opyright 1999-2008 by Grigori Fursin
(unless otherwise stated)