From cTuning.org
Continuous Collective Compilation Framework documentation
Navigation: cTuning.org > CTools > CCC
Contents |
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.
If you found this software useful, you are welcome (but not obliged) to reference http://ctuning.org website and these publications FT2009,FMTP2008 in your derivative works.
Framework high-level overview
Requirements
To successfully install CCC Framework, you need:
- C/C++ compiler (GCC) (we hope to convert 1 program that uses C++ to C).
- MySQL client and development headers /include/mysql/* (not strictly required but functionality will be reduced).
- PHP (not strictly required but functionality will be reduced).
Directory structure
- /
- README.txt - brief README and GPL license info
- INSTALL.sh - main installation script that calls ccc-configure* scripts one by one
- ccc-configure* - distributed configuration scripts for different tasks (See Installation section)
- ccc-build.cfg - CCC Framework build number
- ccc-build-db.cfg - lower and upper version number of the Collective Optimization Database which this version is intended to work with (to avoid incompatibility when both CCC Framework and COD are evolving).
- /src-plat-dep - platform dependent tools and plugins
- /include/ccc - CCC Framework header files
- /lib - auxiliary functions
- /plugins - plugins sources
- /compilation - iterative feedback-directed compilation plugins
- /ml-prediction - machine learning prediction plugins
- /tools - low-level tools
- /ccc-time - substitution for standard time program to collect different profile info about program including hardware counters support
- /ccc-comp - basic tool dealing with program compilation
- /ccc-run - basic tool dealing with program execution and profiling collection
- /ccc-db-send-stats-comp - send compilation statistics to COD
- /ccc-db-send-stats-comp-passes - send info about compiler optimizations (at function-level) to COD
- /ccc-db-send-stats-prog-feat - send info about program static features (machine learning) to COD
- /ccc-db-send-stats-run - send execution statistics to COD
- /tools-aux - auxiliary tools if system supports that
- /hardware-counters-papi - collecting hardware counters statistics (dynamic program features for machine learning or statistical analysis)
- /src-plat-indep - platform independent tools and plugins
- /include/ccc_script_functions.php - library that supports platform independent plugins and deals mostly with COD
- /plugins - plugins and scripts
- /cfg - CCC configuration directories for different architectures/environments/compilers
- /default - default configurations including optimizations for several compilers (GCC,Open64,PathScale)
- /install - installation directory for (platform-dependent) tools and scripts
- /apps - applications converted to work with CCC and scripts to automate iterative compilation
Installation
Collective Optimization Database
Applications
Low-level tools
Iterative compilation example
Plugins
Iterative compilation plugins
Machine learning plugins
Data Analysis plugins