Libacovea
Download Source: | http://www.coyotegulch.com/distfiles/libacovea-5.1.1.tar.gz |
---|
Contents
Introduction to Libacovea
ACOVEA (Analysis of Compiler Options via Evolutionary Algorithm) is a benchmarking utility that uses a genetic algorithm to find the "best" options for compiling C/C++ programs with GCC. These "best" flag combinations are machine-specific.
Project Homepage: http://www.coyotegulch.com/products/acovea/index.html
Dependencies
Required
Optional
Non-Multilib
Compile the package:
./configure --prefix=/usr && make
If you have Doxygen installed, build the documentation:
make docs
Install the package:
make install
Multilib
32Bit
Compile the package:
CC="gcc ${BUILD32}" CXX="g++ ${BUILD32}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH32}" \ ./configure --prefix=/usr && make
If you have Doxygen installed, build the documentation:
make docs
Install the package:
make install
N32
Compile the package:
CC="gcc ${BUILDN32}" CXX="g++ ${BUILDN32}" PKG_CONFIG_PATH="${PKG_CONFIG_PATHN32}" \ ./configure --prefix=/usr --libdir=/usr/lib32 && make
If you have Doxygen installed, build the documentation:
make docs
Install the package:
make install
64Bit
Compile the package:
CC="gcc ${BUILD64}" CXX="g++ ${BUILD64}" PKG_CONFIG_PATH="${PKG_CONFIG_PATH64}" \ ./configure --prefix=/usr --libdir=/usr/lib64 && make
If you have Doxygen installed, build the documentation:
make docs
Install the package:
make install
Configuring
There are example XML files created in /usr/share/libacovea/config that provide different combinations of flags for different GCC versions and different processors. Copy one of these and edit for your machine and GCC version. This configuration file is passed as an argument to runacovea along with the C/C++ program being benchmarked.
Benchmarking programs are provided in /usr/share/libacovea/benchmarks. Acovea is not intended to use large applications, so don't try to benchmark using Gtk+! Each of the benchmarks could be executed for a given configuration with the following script:
#!/bin/sh BENCHES="alma evo fft huff lin mat1 tree" CONFIGS="g++33_pentium4" for config in $CONFIGS; do for bench in $BENCHES; do echo "" echo "*** $bench ***" time runacovea -config /usr/share/libacovea/config/${config}.acovea -input /usr/share/libacovea/benchmarks/${bench}bench.c 1> ${bench}_${config}.run 2> ${bench}_${config}.err done done
It will take quite awhile to execute every combination. For example, 20 iterations of the fftbench required 1 hour and 40 minutes on an machine with an AMD64 X2 5600+ processor and 2GB of 533MHz DDR2 RAM.
Contents
Installed Directories: | /share/libacovea/benchmarks, /share/libacovea/config |
---|---|
Installed Programs: | None |
Installed Libraries: | libcyotl.{a,la,so} |
Short Descriptions
runacovea | is a program to investigate the "best" GCC complier options for your machine. |
---|---|
libacovea | is the library containing the evolutionary algorithm functions. |