From cTuning.org

(Difference between revisions)
Jump to: navigation, search

Revision as of 17:38, 16 March 2009

logo_ctools.gif

Collective Optimization Tools

Enabling Collaborative Research & Development

cTuning community develops common open-source tools with unified APIs (compilers, computer architecture simulators, run-time systems, benchmarks) to enable collaborative research and development of the future intelligent adaptive self-tuning computing systems based on iterative compilation, statistical machine learning and run-time adaptation. We believe that current way of disseminating novel techniques only through publications without providing tools to verify and replicate results or with incompatible unstable prototypes often do not help the community to use these techniques immediately or continue collaborative research. We hope that cTools will help to avoid costly duplicate developments and will boost innovation and replicable research while automating and accelerating design, verification, optimization and benchmarking of the architectures and programs.

These collaborative tools are now supported and extended by the cTuning community. Everyone is welcome to use cTools for their R&D, provide feedback or help to extend them. You can find more information about potential and on-going extension projects or submit your own projects, feedback and suggestions at individual tool pages below. Alternatively, you are welcome to leave general feedback and suggestions at the cTools feedback page.

The list of current collaborative and relatively stable R&D tools:

  • Interactive Compilation Interface (ICI) - a plugin system with high-level API to transform current compilers into collaborative modular interactive R&D toolsets. GCC is the main supported platform, however there are plans to add ICI to LLVM, Open64 and Testerossa compilers. It is currently used in the MILEPOST GCC.
  • Continuous Collective Compilation Framework (CCC) - collaborative framework to perform high-level platform independent iterative optimizations (i.e. search for good combination of program optimizations) and gather various static and dynamic optimization profile data in a Collective Optimization Database. It is used to help end-users optimize their programs automatically (improve execution time/code size, etc) and enable further optimization analysis using statistical and machine learning techniques.

The list of collaborative tools that will be moved here at some point:

  • MILEPOST GCC - machine learning-enabled self-tuning research compiler.
  • MILEPOST Framework - infrastructure that combines MILEPOST GCC, CCC Framework, Collective Optimization Database and UNIDAPT Framework to find "good" program optimizations or architectural configurations for reconfigurable processors entirely automatically using statistical and machine learning techniques.

The list of collaborative tools in an early development/brainstorming stage:

  • Universal Adaptation Framework (UNIDAPT) - hybrid static/dynamic framework to enable run-time adaptation, optimization and scheduling with low overhead for unicore and heterogeneous multi-core architectures (GPGPU, CELL, etc).
  • Collaborative Virtualization Platform - we would like to add common API to current virtualization platforms such as LLVM,GCC4NET,MONO, for example. This project is in infancy so any help will be appreciated

Note: cTuning is an ongoing evolving project - please be patient and tolerant to the community or join us to help with this collaborative effort!

Locations of visitors to this page