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


Low-overhead run-time adaptability of statically compiled programs for various constraints on uni-processor systems

Tackling the complexity of future computing systems using machine learning:

Description     Collaborations     Software     Our related publications     Links

Description:

I am moving all my research and software development activities to the UNIDAPT Group. This page will give you some information about my previous activities. Also, my personal research page can give you some more information about my current activities.


    

In 2004/2005 I have been working with Olivier Temam as a postdoctoral researcher and we developed a new concept to combine static and dynamic optimizations by creating self-tuning static binaries based on static code multiversioning and run-time hardware counters monitoring routines to learn run-time program behavior continuously, detect changes due to different program phases, inputs, environments (OS, architecture, virtual layers) and to dynamically react to those changes by selecting appropriately optimized code versions to improve performance, power, fault-tolerance, etc. We used this method to make iterative optimizations practical and to speed up the iterative search by several orders of magnitude by enabling low-overhead run-time phase detection for statically compiled programs (different from SimPoints as we detect phases at run-time at function or loop-level to target complex high-level optimizations). I am developing a UNIDAPT (UNIversal aDAPTation) framework to create self-tuning binaries and libraries and enable practical continuous iterative optimizations by detecting the influence of program optimizations on performance/power consumption in a single run unlike other current feedback-directed techniques that requires multiple runs with the same dataset. This technique also enables practical run-time adaptability for statically compiled programs with any behavior (regular or irregular) for different constraints (performance, power consumption). It does not require complex run-time recompilation frameworks and thus reliable, secure and easy to debug. I am implementing this technique in GCC (and source-to-source) and have some preliminary plans to implement it in Open64. Additional information can be found in my HiPEAC'05 paper and in my talk (January, 2007) at UPC (Spain).

UNIDAPT Framework will be a part of the Continuous Collective Compilation Framework which helps automate and simplify transparent reuse of optimization knowledge among different programs and architectures. It will be used to overcome the complexity of current architectures, compilers, operating systems and programming environments, and to automate and improve architecture and compiler design (particularly for future heterogeneous multi-core systems), optimize and parallelize systems 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. We plan to release CCC Framework v1.0 before the HiPEAC'09 conference. You can subscribe for UNIDAPT announcements to know when it is released.

We are working to extend our technique with the following and would be happy for any help with developments:

  • provide automatic function multiversioning and keep info about hot functions of statically-compiled programs across runs in the collective database
  • be able to apply different optimizations on function clones (using ICI or other tools)
  • provide external libraries with different monitoring routines (based on timers, hardware counters, etc)
  • compile different function versions for architectures with different ISA and provide explicit data transfer mechanisms (on reconfigurable architectures or GPUs for example)
  • learn and cluster different run-time program behavior (for different program inputs, program phases, environments, reconfigurable architectures)
  • select only several most appropriate versions in the final self-tuning adaptive binary
  • reconfigure architectures at run-time based on program phases and optimization cases (performance vs power consumption)
  • select only several most appropriate versions for the final production self-tuning adaptive binary
  • provide feedback from Virtual Machines about switching context to be able to select the appropriate function for a new hardware (we briefly brainstormed this with the AMD guys during HiPEAC ACACES summer school'08)

UNIDAPT Framework development website ]

I now use UNIDAPT in the following projects:


Software: Collaborations:


More Information about my software developments



 
Our related publications:


  • 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]
  • 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]

  • 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]

  • 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]


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


Links:

  • there are several groups working on complex dynamic recompilation techniques - however we use simple static multi-versioning and low-overhead run-time adaptability instead.



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