From cTuning.org

(Difference between revisions)
Jump to: navigation, search
Current revision (16:23, 17 February 2019) (view source)
 
(80 intermediate revisions not shown.)
Line 1: Line 1:
 +
'''''We moved all developments to our new [http://cKnowledge.org Collective Knowledge Framework] in 2015!'''''
 +
 +
 +
 +
{{Reference}}
<div style="font-style: italic;" >
<div style="font-style: italic;" >
-
It may not always be visible to the IT users, but developing and optimizing current and emerging computing systems using available technology is excessively inefficient, time consuming and costly. During last several decades, many research papers have been published with suggestions about how to easily solve all these problems! Unfortunately, we often struggled replicating those results in realistic environments or finding stable practical tools based on these research papers. Therefore, we decided to create this collaborative Collective Tuning wiki-based portal to develop common practical open-source extensible collaborative infrastructure, benchmarks and collective optimization repository based on multiple research techniques and production tools to parametrize, automate and simplify program, compiler and architecture design and optimization using collective tuning, run-time adaptation, statistical and machine learning techniques. This technology minimizes repetitive time consuming tasks and human intervention: even though there is still a lot to be done, we are glad to see it helping several companies, end users and researchers to improve execution time, code size, power consumption, reliability and other important characteristics of the available computing systems ranging from supercomputers to mobile systems automatically.  
+
It may not be always visible to the end-users, but developing and optimizing emerging computer systems using current methodology and tools is excessively inefficient, time consuming and costly. During past decades, many research papers have been published about how to design and optimize computer systems. However, most of the time, we struggle to reproduce their results in realistic environments, or to find common open-source tools based on these research papers. Therefore, we created this collaborative tuning center with a public optimization repository to share data about behavior of computer systems, share free open-source code, benchmarks, data sets, and models from these tools, and let the community improve predictive models that correlate behavior of computer systems with various properties and characteristics of computer systems. cTuning technology is used to help academia and industry to collaboratively improve execution time, code size, power consumption, reliability and other important characteristics of emerging computer systems from HPC to mobile devices.  
</div>
</div>
-
{|border="0" cellpadding="15" cellspacing="0"
+
<div style="color:red; font-weight:bold">cTuning web-site and infrastructure is totally free and maintained by end-users (basically by you). It is an on-going project, so please be patient or join the effort by sharing optimization data, extending tools, exchanging ideas, referencing this work, etc. We created cTuning.org because we believe in the power of collaborative and open R&D, and because we would like to change sad trends in academic research where a number of published papers is often more important than usefulness, reproducibility and reusability of results including code, data and models!</div>
-
| valign="top" |
+
 
 +
'''Current design of our Collective Optimization Framework''':
 +
<div align="center">http://ctuning.org/wiki/images/ctuning.gif</div>
We developed [http://cTuning.org/cdatabase Collective Optimization Database] to continuously collect a large number of optimization cases from the community to learn how to correlate program features, program and system behavior and good optimizations between multiple programs, datasets, compilers, operating systems and architectures. This repository is also intended to improve the quality of academic research by avoiding costly duplicate experiments and providing reproducible results.
We developed [http://cTuning.org/cdatabase Collective Optimization Database] to continuously collect a large number of optimization cases from the community to learn how to correlate program features, program and system behavior and good optimizations between multiple programs, datasets, compilers, operating systems and architectures. This repository is also intended to improve the quality of academic research by avoiding costly duplicate experiments and providing reproducible results.
-
cTuning open-source infrastructure is still far from solving all optimization problems but we hope that it already opens up some interesting collaborative R&D opportunities to the community to develop intelligent self-tuning adaptive computing systems. We hope that cTuning-like technology will one day eventually improve production compilers that we use including [http://gcc.gnu.org GCC], [http://llvm.org LLVM], [http://rosecompiler.org Rose source-to-source tool], [http://www.open64.net Open64], IBM [http://www-01.ibm.com/software/awdtools/fortran XL] and [http://j9tr.blogspot.com Testarossa], [http://www.caps-entreprise.com/fr/page/index.php?id=49&p_p=36 HMPP directive based compiler for hybrid multicore systems], [http://software.intel.com/en-us/intel-compilers Intel] compiler suites, and operating systems including [http://moblin.org Moblin], [http://www.android.com Android], standard desktop/server Linux distributions, [http://www.microsoft.com/WINDOWS Windows], cloud/distributed operating systems and so on. We would like to thank all [[Community:People|cTuning colleagues and users]] who are or have been helping with this project.
+
cTuning open-source infrastructure is still far from solving all optimization problems but we hope that it already opens up some interesting collaborative R&D opportunities to the community to develop intelligent self-tuning adaptive computing systems. We hope that cTuning-like technology will one day eventually improve production compilers that we use including [http://gcc.gnu.org GCC], [http://llvm.org LLVM], [http://rosecompiler.org Rose source-to-source tool], [http://www.open64.net Open64], IBM [http://www-01.ibm.com/software/awdtools/fortran XL] and [http://j9tr.blogspot.com Testarossa], [http://www.caps-entreprise.com/fr/page/index.php?id=49&p_p=36 HMPP directive based compiler for hybrid multicore systems], [http://software.intel.com/en-us/intel-compilers Intel] compiler suites, and operating systems including [http://moblin.org Moblin], [http://www.android.com Android], standard desktop/server Linux distributions, [http://www.microsoft.com/WINDOWS Windows], cloud/distributed operating systems and so on. We would like to thank all [[Community:People|cTuning colleagues and users]] who have been helping with this project.
'''''Note:''' cTuning is an ongoing evolving project - please be patient and tolerant to the community. You are warmly welcome to [[Join|join cTuning community]] to help us parametrize and automate code, compiler and architecture design and optimization!''  
'''''Note:''' cTuning is an ongoing evolving project - please be patient and tolerant to the community. You are warmly welcome to [[Join|join cTuning community]] to help us parametrize and automate code, compiler and architecture design and optimization!''  
-
'''Current design of our Collective Optimization Framework''':
+
'''We have been participating in the following collaborative activities since 2006:'''
-
<div align="center">http://ctuning.org/wiki/images/ctuning.gif</div>
+
-
 
+
-
'''We are participating in the following collaborative activities:'''
+
* Develop common open-source tools with unified APIs (universal compilers adaptable to any heterogeneous multi-core architecture, computer architecture simulators, adaptive run-time systems) to optimize programs and architectures collectively using iterative compilation, statistical and machine learning techniques. <div align="right">''More information is available at [[CTools|cTools page]].''</div>  
* Develop common open-source tools with unified APIs (universal compilers adaptable to any heterogeneous multi-core architecture, computer architecture simulators, adaptive run-time systems) to optimize programs and architectures collectively using iterative compilation, statistical and machine learning techniques. <div align="right">''More information is available at [[CTools|cTools page]].''</div>  
Line 23: Line 27:
'''Motivation example:'''
'''Motivation example:'''
-
Example of complex optimization search spaces for susan_c from [[CTools:CBench|Collective Benchmark]] after using [[CTools:CCC|CCC framework]] (that has some similarities with the useful [http://www.coyotegulch.com/products/acovea ACOVEA tool] but also allows automatic sharing of optimization knowledge with the community in the [[CDatabase|Collective Optimization Database]] and uses plugins to implement various search techniques besides genetic algorithms) and [[CTools:MilepostGCC|MILEPOST GCC 4.4.0]]:
+
Example of complex optimization search spaces for susan_c (including optimization space frontier for multi-objective optimizations) from [[CTools:CBench|Collective Benchmark]] after using [[CTools:CCC|CCC framework]] (that has some similarities with the useful [http://www.coyotegulch.com/products/acovea ACOVEA tool] but also allows automatic sharing of optimization knowledge with the community in the [[CDatabase|Collective Optimization Database]] and uses plugins to implement various search techniques besides genetic algorithms) and [[CTools:CTuningCC|cTuning CC]]/[[CTools:MilepostGCC|MILEPOST GCC 4.4.x]]:
-
<div align="center">http://unidapt.org/images/fig_opt_case_susan_c_1.gif http://ctuning.org/wiki/images/fig_opt_case_susan_c_2.gif</div>
+
<div align="center">http://ctuning.org/wiki/images/fig_opt_case_susan_c_1.gif http://ctuning.org/wiki/images/fig_opt_case_susan_c_2.gif</div>
-
Example of program similarities based on [[CTools:MilepostGCC:StaticFeatures|static program features]] and based on best found program optimizations continuously collected in the [[CDatabase|cTuning optimization repository]] that improve execution time (though it can be any combination of execution time, code size, compilation time, etc):
+
Example of program similarities using [[CTools:MilepostGCC:StaticFeatures|static program features]] and based on best found program optimizations continuously collected in the [[CDatabase|cTuning optimization repository]] that improve execution time (as well as code size, compilation time, etc):
-
<div align="center">http://unidapt.org/images/img_influence_features.gif http://unidapt.org/images/img_influence_optimizations.gif</div>.
+
<div align="center">http://ctuning.org/wiki/images/img_influence_features.gif http://ctuning.org/wiki/images/img_influence_optimizations.gif</div>.
-
[[CTools:MilepostGCC|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.
+
[[CTools:CTuningCC|cTuning CC]]/[[CTools:MilepostGCC|MILEPOST GCC]] uses online machine learning and prediction plugins to correlate program features and optimizations on the fly and quickly predict profitable optimizations for a previously unseen program and for multiple user objectives (balancing execution time, code size, compilation time, etc).
-
| valign="top" |
+
[[CMind|Collective Mind]] framework and repository is the latest development by [http://cTuning.org/lab/people/gfursin Grigori Fursin] that aggregates all his past R&D to deliver new universal plugin-based framework to systematize and automate computer engineering using crowdsourcing and machine learning.
-
{{News1|
+
-
* '''2010.May.14''' - Call for papers: [http://asplos11.cs.ucr.edu ASPLOS 2011].
+
<hr>
-
 
+
cTuning foundation (non-profit association run by the community) is the outcome of the [http://ctuning.org/project-milepost EU FP6 MILEPOST project (2006-2009)]!
-
* '''2010.April.28''' - List of all projects accepted for Google Summer of Code 2010 is now [http://socghop.appspot.com/gsoc/program/list_projects/google/gsoc2010 available on-line]. There are many projects related to [http://gcc.gnu.org/wiki/SummerOfCode GCC], LLVM, MONO, etc.<BR>Discussion page about GCC as a research compiler [[Dissemination:Workshops:GROW10:GCC_as_a_research_compiler|has been updated]].<BR>Diego Novillo started a proposal to [http://gcc.gnu.org/wiki/ModularGCC modularize GCC].
+
-
 
+
-
* '''2010.April.14''' - Long awaited GCC 4.5 has been [http://gcc.gnu.org/gcc-4.5 released]! It features new plugin framework with some parts of [http://cTuning.org/ici ICI] to continue GCC modularization and parametrization, simplify pass manipulation and reordering, and enable better integration with [http://cTuning.org cTuning]/[http://cTuning.org/milepost-gcc MILEPOST] tools to automate optimization space exploration and prediction of profitable combinations of program transformations during multi-objective optimizations (balancing execution time, code size, compilation time, etc) for a given program/dataset/architecture.
+
-
 
+
-
* '''2010.March.17''' - We pre-released all tools including [[CTools:MilepostGCC|MILEPOST GCC]], [[CTools:CCC|CCC framework]], [[CTools:CBench|cBench]] and [[CDatabase|cDatabase]]. It's a major update of cTuning tools including changes behind  to support transparent optimizations of programs and libraries, better multi-objective optimization (including balancing of execution time, code size and compilation time), bug fixes in averaging multiple optimization cases, C++ support in MILEPOST GCC, support of all version of GCC 4.4, new static features in MILEPOST GCC, extended documentation, etc. Feedback and comments are welcome [http://groups.google.com/group/ctuning-discussions/browse_thread/thread/c22a6109d57905f7 here].
+
-
 
+
-
* '''2010.March.01''' - CGO'10 program is available [http://www.cgo.org/cgo2010/program.html on-line].
+
-
 
+
-
* '''2010.February.10''' - Accepted papers for PLDI'10 are now available [http://www.cs.stanford.edu/pldi10/PLDI2010Papers.html on-line].
+
-
 
+
-
* '''2010.January.28''' - Proceedings and slides from [[Dissemination:Workshops:GROW10:Program|GROW'10]] and [[Dissemination:Workshops:SMART10:Program|SMART'10]] are now available online.
+
-
 
+
-
* '''2010.January.25''' - We added [http://www.prism.uvsq.fr/~touati/sw/ST Speedup Test beta plugin] to [http://cTuning.org/cdatabase cTuning collective optimization database] to enable precise and rigorous statistical analysis of the performance of benchmarks.
+
-
 
+
-
* '''2010.January.4''' - Call for participation: GROW'10 and SMART'10 workshops will be held on the 23rd and 24th of January in Pisa, Italy co-located with the [http://www.hipeac.net/conference/pisa/program HiPEAC conference]. Preliminary programs are available: [http://ctuning.org/wiki/index.php/Dissemination:Workshops:SMART10:Program SMART'10 program] and [http://ctuning.org/wiki/index.php/Dissemination:Workshops:GROW10:Program GROW'10 program].
+
-
 
+
-
*'''2010.January.1''' - We wish you all a very happy and prosperous New Year with lots of exciting achievements maybe even related to cTuning technology ;) !
+
-
 
+
-
*'''2009.November.11''' - Small [http://cTuning.org/ccc CCC] analysis plugins update available at SVN to speedup queries when dealing with large amount of optimization data in [http://cTuning.org/cdatabase cDatabases] (gigabytes of data).
+
-
 
+
-
*'''2009.November.7''' - Submission deadline for [http://cTuning.org/workshop-smart10 SMART'10 workshop] has been extended until the 22nd of November, 2009.
+
-
 
+
-
*'''2009.October.2''' - We successfully passed the final [http://cTuning.org/project-milepost MILEPOST] review and the project is officially over. We would like to thank all the partners from the University of Edinburgh, IBM Haifa, CAPS and ARC for a great collaborative work during last 3 years and [http://cTuning.org/community cTuning community] for a very interesting feedback and extensions! We released all the tools from the project and hope to continue extending them within community-driven [http://cTuning.org cTuning.org]. This infrastructure should open up many interesting research opportunities for performance auto-tuning based on statistical and machine learning techniques so we hope to see many more interesting extensions to the MILEPOST/cTuning technology soon ;) !..
+
-
 
+
-
*'''2009.September.25''' - New CFP for [http://ctuning.org/workshop-smart10 SMART'10 workshop] co-located with HiPEAC'10 conference in Pisa, Italy is now available. [http://www.cs.rice.edu/~keith Prof. Keith Cooper] from Rice University kindly agreed to give a keynote talk.
+
-
 
+
-
*'''2009.September.22''' - Congratulations to Dr.Christophe Dubach who has won a presitigious BCS/CPHC Distinguished Dissertation Award for his thesis "Using Machine-Learning to Efficiently Explore the Architecture/Compiler Co-Design Space" supervised by Prof. Michael O'Boyle. This topic is related to cTuning technology!
+
-
 
+
-
*'''2009.September.1''' - The documentation of [http://ctuning.org/milepost-gcc MILEPOST GCC]/[http://ctuning.org/ici GCC ICI] extensions by Yuanjie and Liang during GSOC'09 program is now available: [http://ctuning.org/wiki/index.php/CTools:ICI:Projects:GSOC09:Function_cloning_and_program_instrumentation Function cloning and program instrumentation] and [http://ctuning.org/wiki/index.php/CTools:ICI:Projects:GSOC09:Fine_grain_tuning Fine grain program tuning]. We would like to fully test and sync these developments with mainline GCC within next month or two.
+
-
 
+
-
*'''2009.August.05''' - The colleagues from the [http://unidapt.org UNIDAPT Group] started investigating the use of [http://ctuning.org cTuning]/[http://cTuning.org/project-milepost MILEPOST] technology and the [http://ctuning.org/unidapt UNIDAPT framework] to predict good optimization and parallelization schemes for hybrid heterogeneous CPU/GPU-like architectures together with [http://www.caps-entreprise.com CAPS Entreprise] based on run-time adaptation and profiling, empirical iterative compilation, statistical analysis, machine learning, program and dataset features and run-time decision trees ({{Ref|FT2009}}, {{Ref|LCWP2009}}, {{Ref|Fur2009}}, {{Ref|JGVP2009}}, {{Ref1|TWFP2009}}, {{Ref|FMTP2008}}, {{Ref|LFF2007}}, {{Ref|FCOP2005}}). They plan to add new optimization cases to the [http://ctuning.org/cdatabase Collective Optimization Database] in Autumn, 2009.
+
-
 
+
-
*'''2009.July.27''' - The paper "Portable Compiler Optimization Across Embedded Programs and Microarchitectures using Machine Learning" ({{Ref|DJBP2009}}) has been accepted for the [http://www.microarch.org/micro42 42nd IEEE/ACM International Symposium on Microarchitecture (MICRO)]. The research has been led by the colleagues from the University of Edinburgh - congratulations!
+
-
 
+
-
*'''2009.July.22''' - cTuning-related CFP: [http://ctuning.org/workshop-smart10 SMART'10] and [http://ctuning.org/workshop-grow10 GROW'10] workshops will be co-located with [http://www.hipeac.net/conference HiPEAC'10 conference] in Pisa, Italy at the end of January, 2009. You are warmly invited to submit your novel research results and developments to our workshops! At the websites of these workshops you can find all information about topics, PC, deadlines and submission procedures.
+
-
 
+
-
*'''2009.July.15''' - New optimization cases to improve execution time, code size and compilation time are now available in [http://ctuning.org/cdatabase Collective Optimization Database] for [http://ctuning.org/cbench cBench], [http://www.eembc.org EEMBC], [http://www.spec.org SPEC] and other applications with multiple datasets using [http://ctuning.org/milepost-gcc MILEPOST GCC 4.4.0] and 2 architectures ([http://www.intel.com Intel] and [http://www.amd.com AMD]) from [http://www.grid5000.fr GRID5000] (infrastructure for large scale parallel and distributed computing research).
+
-
 
+
-
*'''2009.July.08''' - The preprint of a paper "Collective Tuning Initiative: automating and accelerating development and optimization of computing systems" describing cTuning infrastructure is now available online ({{Ref|Fur2009}}).
+
-
 
+
-
*'''2009.June.29''' - Stable MILEPOST GCC 4.4.0 has been [[CTools:MilepostGCC|released]]. Follow further community developments at [http://ctuning.org/ici cTuning GCC ICI page] and [http://groups.google.com/group/ctuning-discussions cTuning development mailing list].<BR>Next, we plan to use MILEPOST/cTuning technology to enable realistic adaptive parallelization, data partitioning and scheduling for heterogeneous multi-core systems using statistical and machine learning techniques.
+
-
 
+
-
*'''2009.June.26''' - The pdf of the paper that describes Collective Tuning Infrastructure and cTuning concept (presented at the GCC Summit'09) will be available in a few weeks [http://unidapt.org/index.php/Dissemination#Fur2009 here].
+
-
 
+
-
*'''2009.June.17''' - We participated in discussions to include plugin system similar to [http://ctuning.org/ici ICI] to mainline GCC for a long time and finally GCC 4.5 will feature a low-level plugin system. We are now synchronizing high-level ICI/MILEPOST with the mainline to be able to reuse all our available plugins. We also develop several new plugins within [http://socghop.appspot.com/org/home/google/gsoc2009/gcc Google Summer of Code'2009] to enable XML representation of the compilation flow, fine-grain program optimizations and instrumentation, automatic tuning of optimization heuristic based on machine learning, and function-level run-time adaptation. Comparison of GCC low-level and high-level ICI plugins is available [http://gcc.gnu.org/wiki/GCC_PluginComparison here]. The ICI development and discussions mailing list is available [http://groups.google.com/group/ctuning-discussions here].
+
-
 
+
-
*'''2009.June.10''' - Extended version of the "Collective Optimization" paper ({{Ref|FT2009|}}) describing collective tuning concept has been accepted for ACM Transactions on Architecture and Code Optimization (TACO).
+
-
 
+
-
*'''2009.June.03-10''' - We gave several talks/demos/tutorials about cTuning at the [http://www.hipeac.net/industry_workshop7 HiPEAC Computing week] (Infineon, Munich, Germany) and [http://www.gccsummit.org/2009 GCC Summit] (Montreal, Canada).
+
-
 
+
-
* '''2009.June.01''' - After nearly 1 year of developments we released/updated all our open-source collaborative [[CTools|R&D tools]]:
+
-
** fully redesigned and documented [[CTools:ICI|Interactive Compilation Interface]] v2.0 for GCC 4.4.0 synchronized with the official plugin GCC branch - transforming compilers into plugin-enabled research toolsets
+
-
** [[cTools:MilepostGCC|MILEPOST GCC 4.4.0]] pre-release version at SVN - automating program optimization and compiler optimization heuristic tuning using machine learning
+
-
** [[CTools:CCC|Continuous Collective Compilation Framework v2.0]] - enabling automatic collaborative program optimization based on statistical and machine learning techniques
+
-
** [[CTools:CBench|Collective Benchmark/MiDataSets v1.0]] - enabling realistic program optimization research and benchmarking using multiple open-source programs/datasets.<BR><BR>We also updated [[CDatabase|Collective Optimization Database]] with various optimization cases for Intel and AMD processors and comparison of different compilers including GCC, LLVM, Open64, Intel, etc - enabling sharing and reuse of optimization knowledge.<BR><BR>We would like to thank [[Community:People|cTuning community]] for feedback, help and support! You are welcome to join this [[Community|community effort]] to automate program optimization and compiler/architecture design.
+
-
 
+
-
* '''2009.April.27''' - We gave a talk at the University of Illinois at Urbana-Champaign about [http://ctuning.org Collective Tuning Initiative and tools] and [http://cTuning.org/project-milepost MILEPOST project] ("Collective Optimization, run-time adaptation and machine learning"). Presentation is available [http://unidapt.org/presentations/presentation_fursin_uiuc2009.pdf here]. We would like to thank all the UIUC&nbsp;colleagues for a very interesting and useful feedback.<br>
+
-
 
+
-
* '''2009.April.23''' - Preview version of the optimization predictor based on static program features and machine learning (to improve program execution time, code size, etc) is now available [http://ctuning.org/wiki/index.php/Special:CPredict on-line]. It is an on-going project, so please be patient. Comments are welcome!
+
-
 
+
-
<BR>
+
-
:::::: ''[http://groups.google.com/group/ctuning-announce News archive]''
+
-
 
+
-
}}
+
-
 
+
-
|}
+
-
 
+
-
<br>
+
-
<div align="center">
+
-
{| cellspacing="0" cellpadding="3" border="0" width="100%" style="color: black;"
+
-
|-
+
-
| align="center" width="240" style="background: rgb(0, 100, 159) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: white;" | '''cTuning concept:'''
+
-
| width="50" | <br>
+
-
| align="center" style="background: rgb(0, 100, 159) none repeat scroll 0% 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; color: white;" | '''cTuning friends:'''
+
-
|-
+
-
| align="center" valign="top" | {{CTuning:Logo_Hosted}}
+
-
| <br>
+
-
| align="center" valign="top" | {{CTuning:Logo_Friends}}
+
-
|}
+
-
</div>
+

Current revision

We moved all developments to our new Collective Knowledge Framework in 2015!


cTuning.org is based on the following reference publications: GCC Summit'09, CPE'04, HiPEAC'05, PhD thesis'04, SMART'09, PLDI'10, HiPEAC'09, IJPP'11

It may not be always visible to the end-users, but developing and optimizing emerging computer systems using current methodology and tools is excessively inefficient, time consuming and costly. During past decades, many research papers have been published about how to design and optimize computer systems. However, most of the time, we struggle to reproduce their results in realistic environments, or to find common open-source tools based on these research papers. Therefore, we created this collaborative tuning center with a public optimization repository to share data about behavior of computer systems, share free open-source code, benchmarks, data sets, and models from these tools, and let the community improve predictive models that correlate behavior of computer systems with various properties and characteristics of computer systems. cTuning technology is used to help academia and industry to collaboratively improve execution time, code size, power consumption, reliability and other important characteristics of emerging computer systems from HPC to mobile devices.

cTuning web-site and infrastructure is totally free and maintained by end-users (basically by you). It is an on-going project, so please be patient or join the effort by sharing optimization data, extending tools, exchanging ideas, referencing this work, etc. We created cTuning.org because we believe in the power of collaborative and open R&D, and because we would like to change sad trends in academic research where a number of published papers is often more important than usefulness, reproducibility and reusability of results including code, data and models!

Current design of our Collective Optimization Framework:

ctuning.gif

We developed Collective Optimization Database to continuously collect a large number of optimization cases from the community to learn how to correlate program features, program and system behavior and good optimizations between multiple programs, datasets, compilers, operating systems and architectures. This repository is also intended to improve the quality of academic research by avoiding costly duplicate experiments and providing reproducible results.

cTuning open-source infrastructure is still far from solving all optimization problems but we hope that it already opens up some interesting collaborative R&D opportunities to the community to develop intelligent self-tuning adaptive computing systems. We hope that cTuning-like technology will one day eventually improve production compilers that we use including GCC, LLVM, Rose source-to-source tool, Open64, IBM XL and Testarossa, HMPP directive based compiler for hybrid multicore systems, Intel compiler suites, and operating systems including Moblin, Android, standard desktop/server Linux distributions, Windows, cloud/distributed operating systems and so on. We would like to thank all cTuning colleagues and users who have been helping with this project.

Note: cTuning is an ongoing evolving project - please be patient and tolerant to the community. You are warmly welcome to join cTuning community to help us parametrize and automate code, compiler and architecture design and optimization!

We have been participating in the following collaborative activities since 2006:

  • Develop common open-source tools with unified APIs (universal compilers adaptable to any heterogeneous multi-core architecture, computer architecture simulators, adaptive run-time systems) to optimize programs and architectures collectively using iterative compilation, statistical and machine learning techniques.
    More information is available at cTools page.
  • Share interesting optimization cases from the community for programs/libraries/OS (compiler optimizations/architecture configurations to improve execution time, code size, architecture size, power consumption, etc) in the Collective Optimization Database to help users optimize their systems, enable replicable collaborative research and enable further analysis using statistical and machine learning techniques.
    More information is available at cDatabase page.
  • Enable collaborative research using cTools 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.
    More information is available at cResearch page.

Motivation example:

Example of complex optimization search spaces for susan_c (including optimization space frontier for multi-objective optimizations) from Collective Benchmark after using CCC framework (that has some similarities with the useful ACOVEA tool but also allows automatic sharing of optimization knowledge with the community in the Collective Optimization Database and uses plugins to implement various search techniques besides genetic algorithms) and cTuning CC/MILEPOST GCC 4.4.x:

fig_opt_case_susan_c_1.gif fig_opt_case_susan_c_2.gif

Example of program similarities using static program features and based on best found program optimizations continuously collected in the cTuning optimization repository that improve execution time (as well as code size, compilation time, etc):

img_influence_features.gif img_influence_optimizations.gif
.

cTuning CC/MILEPOST GCC uses online machine learning and prediction plugins to correlate program features and optimizations on the fly and quickly predict profitable optimizations for a previously unseen program and for multiple user objectives (balancing execution time, code size, compilation time, etc).

Collective Mind framework and repository is the latest development by Grigori Fursin that aggregates all his past R&D to deliver new universal plugin-based framework to systematize and automate computer engineering using crowdsourcing and machine learning.


cTuning foundation (non-profit association run by the community) is the outcome of the EU FP6 MILEPOST project (2006-2009)!

Locations of visitors to this page