From cTuning.org

(Difference between revisions)
Jump to: navigation, search
Line 35: Line 35:
** ''/include/ccc'' - CCC Framework header files
** ''/include/ccc'' - CCC Framework header files
** ''/lib'' - auxiliary functions
** ''/lib'' - auxiliary functions
-
** ''/plugins''
+
** ''/plugins'' - plugins sources
-
*** ''/compilation''
+
*** ''/compilation'' - iterative feedback-directed compilation plugins
-
*** ''/ml-prediction''
+
*** ''/ml-prediction'' - machine learning prediction plugins
-
** ''/tools''
+
** ''/tools'' - low-level tools
-
*** ''/ccc-time''
+
*** ''/ccc-time'' - substitution for standard time program to collect different profile info about program including hardware counters support
-
*** ''/ccc-comp''
+
*** ''/ccc-comp'' - basic tool dealing with program compilation
-
*** ''/ccc-run''
+
*** ''/ccc-run'' - basic tool dealing with program execution and profiling collection
-
*** ''/ccc-db-send-stats-comp''
+
*** ''/ccc-db-send-stats-comp'' - send compilation statistics to COD
-
*** ''/ccc-db-send-stats-comp-passes''
+
*** ''/ccc-db-send-stats-comp-passes'' - send info about compiler optimizations (at function-level) to COD
-
*** ''/ccc-db-send-stats-prog-feat''
+
*** ''/ccc-db-send-stats-prog-feat'' - send info about program static features (machine learning) to COD
-
*** ''/ccc-db-send-stats-run''
+
*** ''/ccc-db-send-stats-run'' - send execution statistics to COD
-
** ''/tools-aux''
+
** ''/tools-aux'' - auxiliary tools if system supports that
-
*** ''/hardware-counters-papi''
+
*** ''/hardware-counters-papi'' - collecting hardware counters statistics (dynamic program features for machine learning or statistical analysis)
* '''/src-plat-indep''' - platform independent tools and plugins
* '''/src-plat-indep''' - platform independent tools and plugins
-
** ''/include/ccc_script_functions.php''
+
** ''/include/ccc_script_functions.php'' - library that supports platform independent plugins and deals mostly with COD
-
** ''/plugins''
+
** ''/plugins'' - plugins and scripts
-
* '''/cfg'''
+
* '''/cfg''' - CCC configuration directories for different architectures/environments/compilers
-
** ''/default''
+
** ''/default'' - default configurations including optimizations for several compilers (GCC,Open64,PathScale)
-
* '''/install'''
+
* '''/install''' - installation directory for (platform-dependent) tools and scripts
-
* '''/apps'''
+
* '''/apps''' - applications converted to work with CCC and scripts to automate iterative compilation
=== Installation ===
=== Installation ===
Line 64: Line 64:
=== Collective Optimization Database ===
=== Collective Optimization Database ===
-
=== Tools ===
+
=== Applications ===
-
=== Plugins ===
+
=== Low-level tools ===
 +
=== Iterative compilation example ===
 +
 +
=== Plugins ===
==== Iterative compilation plugins ====
==== Iterative compilation plugins ====

Revision as of 14:57, 26 March 2009

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

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 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


























Locations of visitors to this page