Acovea
What's New in 5.0
and
Frequently Asked Questions
If you find this article useful, please consider supporting the author's free software efforts with a donation, no matter how small.
What's New in Acovea 5.0?
- Improved analysis to give you "better" solutions
- Makefile support
- Automatic generation of comparisons between Acovea solutions and baselines
- A new GUI interface, Acovea-GTK
- A generic engine designed to be wrapped in different drivers
FAQ
-
What is Acovea good for?
In terms of compilers, Acovea is akin to a profiler, in that booth tools help optimize the performance-critical sections of your code. A profiler tells you which functions use the most execution time; Acovea, in turn, tells you which compiler switches produce the fastest code for such functions.
Another use for Acovea is in algorithm tuning. Many algorithms depend on various factors; a B-tree's performance, for example, depends on its "order." Acovea can help find optimal selections for such factors. -
Should I use Acovea to optimize the complete build of a Linux system (aka, "the Gentoo question")?
No.
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 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 compile, and another minute to run, Acovea will require 8,000 minutes, or more than 5.5 days to evolve optimal option sets!
Results from running Acovea against a few algorithms should NOT be applied across a broad spectrum of applications. For my Gentoo-based systems, I don't set the value of make.conf's CFLAGS based on Acovea results; I build specific, time-critical applications using algorithm-specific options. -
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. -
Does it work with Makefiles?
Yes. See the gcc34_makefile.acovea configuration file and Makefile.example. -
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++ version 3.4 on Pentium and Opteron processors. You can easily modify these files to support other compilers and hardware platforms; I may also add more configurations to this web site as I complete them.- Is Acovea a general optimization tool?
Acovea is becoming more generalized with each release. I've optimized the performance of a video codec, for example, using Acovea to test the encoder with a variety of parameter sets.- Isn't Acovea just doing a random search?
Acovea evolves good solutions with only 4,000 compiles. Given the huge number of possibilities, Acovea has shown a remarkable ability to sift the wheat from the chaff, so to speak. While nay-sayers on Slashdot will claim that Acovea is no better than a random search, I have yet to see any of them produce an alternative.- 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. The technology is applicable to a variety of applications beyond compilers; it can perform stress testsing, optimize compression algorithms, compare algorithms, and otherwise test compute-bound software. - Does Acovea support compiler/processor X?

