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
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 $.