Jump to: navigation, search
Navigation: > CTools > CCC

CCC framework: Frequently Asked Questions:

Do I really need CCC framework? I thought that compilers already produce perfect code

If you think that compilers produce optimal code, look carefully at the following motivation example (produced by CCC framework):

Example of complex optimization search spaces for susan_c from Collective Benchmark and MILEPOST GCC 4.4.0 after randomly selecting about 80 optimization flags:

fig_opt_case_susan_c_1.gif fig_opt_case_susan_c_2.gif

We can automatically improve execution time of the program by nearly 2 times over the highest GCC optimization level after using CCC framework (we obtain similar results on LLVM, Open64, Intel and IBM compilers). We can also use CCC framework to perform multi-objective optimizations (selecting optimization cases on the optimization space frontier shown by red circles and blue dots) such as:

  • optimize both execution time and code size (important for optimizing libraries and embedded/mobile computing systems)
  • optimize just execution time (important for desktop computers and HPC servers/supercomputers)
  • optimize both execution time and compilation time (important for cloud computing services and real-time systems)

Furthermore, we are developing MILEPOST GCC to correlate program features and behavior to predict good optimizations for unseen programs based on prior learning.

Is CCC framework similar to ACOVEA tool?

Yes, there are some similarities with the useful ACOVEA tool. However, from the start we have been developing CCC framework to enable automatic sharing of optimization cases with the community through Collective Optimization Database to enable learning of optimizations across multiple programs and architectures in MILEPOST GCC, which is the main difference with ACOVEA tool. Also, we provided possibility for third-party high-level plugins to implement various search techniques besides genetic algorithms. In fact, some time ago, we have been discussing with ACOVEA author a possibility to implement ACOVEA genetic search algorithm as one of the search plugins for the CCC framework in the future.

Locations of visitors to this page