Acovea: Analysis of Compiler Options via Evolutionary Algorithm
Frequently Asked Questions
by Scott Robert Ladd
30 May 2004
Related Articles
Acovea Overview
Analysis: Acovea 4.0.0 on Pentium 4 and Opteron
Acovea FAQ
A Description of the Genetic Algorithm
FAQ
How is Acovea licensed?
Acovea and all of its component libraries are licensed under the GNU General Public License
version 2. If you wish to incorporate any part of Acovea into a closed-source product, I
negotiate low-cost commercial licenses.
Have you finally started using the GNU autotools?
Yes. All of my libraries and applications now build on Unix and Unix-like systems
using the traditional configure/make/make install process.
Does Acovea run under Windows?
Acovea is written in ISO Standard C++; it should work on any platform that
has a conforming compiler.
Does Acovea support compiler/processor X?
Acovea comes with XML configuration files for GNU C and C++ versions 3.4 and 3.3 on
Pentium and Opteron processors. You can easily modify these files to support other
compilers and hardware platforms; I may also add more configurations in the coming
months.
Is Acovea a general optimization tool?
Acovea is a proof-of-concept application that has practical value in studying how
compiler settings affect generated code performance. I am generalizing the concepts
for a broader set of applications.
Why does Acovea require specially-designed benchmarks? Why doesn't it use a Makefile?
Acovea was designed with "spikes" in mind -- short programs that
implement a limited algorithm that runs quickly (2-10 seconds per
run). Using the default evolutionary settings, Acovea will perform
4,000 compiles and runs of the benchmark; even with a very small
and fast benchmark, this can take several hours.
If your program takes a full minute to compiler, and another
minute to run, Acovea will require 8,000 minutes, or more than
5.5 days to evolve optimal option sets!
Why did you write Acovea?
Many reasons -- it's a mental exercise, it scratches my itch about performance issues,
and it's a chance to apply evolution to practical computing problems.
-- Scott