Compiler Hints

FreePOOMA requires a more or less standard conforming C++ compiler to be compiled. This includes GCC version 3.4 and up, and commerical compilers built on top of the EDG C++ frontend.

Recent optimization work on the library has focused on the GNU compiler. The upcoming GCC 4.1.x supports the flatten function attribute formerly known as leafify which helps inlining decisions and thus application speed a lot. If you want to use earlier versions of the GNU compiler, I suggest you apply one of the leafify patches you can find here.

A set of further patches help FreePOOMA performance with GCC 4.1, namely this and that. Brave people will check out the redhat/gcc-4_1-branch from the subversion repository at gcc.gnu.org, which has OpenMP support from the upcoming GCC 4.2 merged. Together with the two mentioned patches this results in excellent performance on clusters of small SMP systems.

To get an idea what the performance difference can be using different compiler versions, you can check out the tramp3d-v4 selfcontained testcase. Using (unpatched) GCC 4.1 you can expect performance to triple compared to (unpatched) GCC 3.3 or 3.4.


Copyright (C) 2005 Richard Günther
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
Last updated $Date: 2005/12/02 22:04:09 $ by $Author: richi $.