Download Latest Version CCC-V2.5-Build-1020.tar.gz (114.7 kB)
Email in envelope

Get an email when there's a new version of CCCPF

Home / OldFiles
Name Modified Size InfoDownloads / Week
Parent folder
CCC_V2_0_README.txt 2009-05-28 9.2 kB
CCC_V2_0.tar.gz 2009-05-28 98.6 kB
Totals: 2 Items   107.8 kB 0
****************************************************************
Continuous Collective Compilation Framework (CCC)

Continuous Collective Compilation Framework (CCC) is a collaborative modular
plugin-enabled R&D infrastructure to automate program and architecture
optimizations (i.e. iteratively search for good program and architecture
optimizations in a feedback-directed manner) and gather various static and
dynamic optimization profile data in a Collective Optimization Database (COD). 
It supports both global program optimization and fine-grain procedure, loop or
instruction level optimizations if compiler supports Interactive Compilation
Interface. It is used to help end-users optimize their programs, libraries
and whole OS automatically (improve execution time/code size, etc), test and
tune compiler optimization heuristic. It also enables collaborative R&D and
optimization knowledge reuse with statistical and machine learning
techniques.

CCC Framework is a community-driven project - you are welcome to join the project, 
extend it, provide smart search and data analysis plugins, leave feedback and add 
your optimization data to help the community. 

CCC website (downloads and documentation):
 http://ctuning.org/cbench

cTuning/CCC mailing lists (feedback, comments and bug reports):
 http://ctuning.org/community

****************************************************************
Information:

 Continuous Collective Compilation Framework (CCC) has been developed
 by Grigori Fursin to enable collaborative R&D on program optimizations
 and architecture design. It is now a collaborative  plugin-enabled optimization 
 infrastructure to perform  automatic search for good program optimizations to 
 improve execution time, code size, etc and enable further analysis using statistical 
 and machine learning techniques.
 
 CCC written in C (platform dependent part) and PHP (platform independent part and plugins).
 
 Current CCC supports flag optimization of major compilers such as GCC, Open64,
 LLVM, GCC4CLI, PathScale, Intel, IBM, etc. If compiler supports Interactive
 Compilation Interface (http://ctuning.org/ici), the plugins can perform pass selection
 and reordering on function level. We currently extend framework to support
 fine-grain optimizations such as loop unrolling, prefetching, polyhedral
 optimizations (tiling, splitting, fusion/fission), etc.

 CCC supports plugins to perform exhaustive, random, one-off search.
 We have plugins to predict good optimization based on static/dynamic program features,
 statistical analysis and machine learning.

 CCC supports the following benchmarks CBench/MiBench with MiDataSets (http://ctuning.org/cbench),
 EEMBC, SPEC CPU2006, SPEC CPU2000, SPEC CPU95, Polyhedron, etc.
 
 CCC can automatically improve code on most Unix-like major platforms (from server and supercomputer 
 to embedded architectures). It also supports bare-metal embedded systems. 

 All optimization data is either collected off-line or in the Collective Optimization Database
 (http://ctuning.org/cdatabase) to avoid duplicate experiments, improve quality
 of research and boost innovation.

 You can find some additional info about Collective Optimization
 concept in the following publications:
 
 http://unidapt.org/index.php/Dissemination#FT2009
 http://unidapt.org/index.php/Dissemination#FMTP2008

****************************************************************
Developer(s):

 Grigori Fursin, UNIDAPT Group, INRIA Saclay, France 
  http://unidapt.org
  http://fursin.net/research
  grigori.fursin@inria.fr

 I am looking for developers/researchers to maintain this framework.

****************************************************************
Acknowledgments (suggestions, evaluation, bug fixes, etc):

 Abdul Wahid Memon (Paris South University and INRIA, France)
 Menjato Rakoto (Paris South University and INRIA, France)
 Yuanjie Huang (ICT, China)
 Mircea Namolaru (IBM Haifa, Israel)
 John Thomson (University of Edinburgh, UK)

****************************************************************
CCC Framework License:
 This program is free software; you can redistribute it and/or modify it 
 under the terms of the GNU General Public License version 2 as published 
 by the Free Software Foundation.

 This program is distributed in the hope that it will be useful, 
 but WITHOUT ANY WARRANTY; without even the implied warranty 
 of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 See the GNU General Public License for more details:
 http://www.gnu.org/copyleft/gpl.html

****************************************************************
Collective Optimization Database Copyright and License:

 Collective Optimization Database (cDatabase or COD ) has been developed 
 by Grigori Fursin mostly in his spare time (Copyright 2004-current). 
 It is described in FT2009, FMTP2008 and in MILEPOST project proposal 
 and tech. reports (2005-2009). In 2009, Grigori opened public access 
 to this database (http://ctuning.org/cdatabase) in a hope that it is useful 
 to the community. cTuning website provides an open public access to cDatabase 
 since it is intended to share optimization knowledge with the community 
 and to enable community-driven program and system optimization. 
 It is provided AS IS, with no warranty of any kind, express or implied.

 cDatabase is currently hosted by INRIA, France. 
 Replication, mirroring, extension and public re-hosting of cDatabase requires 
 explicit agreement with Grigori Fursin to keep cDatabase and CTools APIs 
 and web-services compatible and open to everyone. If you have any questions 
 or comments, please don't hesitate to contact Grigori.

****************************************************************
CCC Version history:

 V2.0 29.May.2009  Multiple updates based on user feedback:
 
                      * convet ccc-time CXX to C (now only C is needed)
                      * bug with SSL init in send data ...
                      * bug with Makefiles 
                      * bug when file size can be random if file is not generated
                      * remove . from $PATH
                      * set names of the compiler and linker in environment (ZCC, ZCXX, ZFC) 
                        to support different compilers
                      * add CCC_RE (runtime environment such as VM or simulator) to _run scripts
                      * add RE_ID to COD
                      * move compiler and runtime environment from ccc-env to separate files
                        to be able to install different version of the same compiler on the system:
                        # ccc-env.c.<compiler name> - compiler environment
                        # ccc-env.re.<runtime environment name> - runtime environment
                        # ccc-re.cfg - configuration file for runtime environments
                      * ccc-run now support CCC_RUN_RE environment variable to setup runtime environment
                      * add support for uuid / uuidgen in CCC_UUID environment variable
                      * add RUNTIME_ENVIRONMENTS table to COD
                      * sort out mistake at cTuning website to show function-level profiling
                      * update COD version
                      * changed tmp-ccc-run-datasets tmp-ccc-run-cmd
                      * fixed ccc-ml-accumulate-features (sometimes all features =0)
                      * add PathScale, GCC4CLI and LLVM compiler support
                      * save program binary name to _ccc_program_bin (for SPEC2006)
                      * save compiler environment to _ccc_compilation_env_cur (for SPEC2006)
                      * add support for OProfile ...
                      * CCC_OPROF
                      * CCC_OPROF_PARAM
                      * added CCC_TIMED_RUN instead of CCC_TIMEOUT
                      * added CCC_TASKSET
                      * added CCC_PROCESSOR_NUM to execute programs on a specific core
                      * MILEPOST GCC wrapper is added to support automatic feature extractor and quering
		        of COD webservices to predict good optimizations with flags -ml, ml-e, -ml-c

 V1.x 2006-2009 Used in MILEPOST project (http://www.milepost.eu) and UNIDAPT group research (http://unidapt.org)
 
 beta 2004-2006 (called Framework for Continuous Optimization: http://fursin.net/wiki/index.php5?title=Research:Developments:FCO)

****************************************************************
Documentation:
 Currently available online at:
 http://ctuning.org/wiki/index.php/CTools:CCC:Documentation

 You can find some additional info about Collective Optimization
 concept in the following publications:
 
 http://unidapt.org/index.php/Dissemination#FT2009
 http://unidapt.org/index.php/Dissemination#FMTP2008

****************************************************************
Installation:
 Run INSTALL.sh to configure CCC Framework
 
****************************************************************
Future work:
 It's a community-driven project. You can find information
 about extensions at http://ctuning.org/ccc
****************************************************************
  
Source: CCC_V2_0_README.txt, updated 2009-05-28