|
|
(26 intermediate revisions not shown.) |
Line 1: |
Line 1: |
- | '''Continuous Collective Compilation Framework documentation'''
| |
- |
| |
| {{CMenu:CTools|CCC|}} | | {{CMenu:CTools|CCC|}} |
| | | |
- | === License ===
| + | '''Continuous Collective Compilation Framework documentation''' |
- | | + | |
- | 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 [http://www.gnu.org/copyleft/gpl.html 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 {{Ref|FT2009}},{{Ref|FMTP2008}} in your derivative works.
| + | |
- | | + | |
- | === Framework high-level overview ===
| + | |
- | | + | |
- | http://ctuning.org/wiki/images/figure_ccc.gif
| + | |
- | | + | |
- | === 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 [[CDatabase|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 ====
| + | |
| | | |
- | <BR>
| + | * [[CTools:CCC:Documentation:CCC_V2.5|CCC V2.5]] |
- | <BR>
| + | * [[CTools:CCC:Documentation:CCC_V2.0x|CCC V2.0x]] |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |
- | <BR>
| + | |