From cTuning.org

Revision as of 14:57, 26 March 2009 by Gfursin (Talk | contribs)
Jump to: navigation, search

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