[gmx-developers] Slow PME with git master and gcc 4.3.3 & 4.3.4
roland at utk.edu
Sat May 15 09:36:44 CEST 2010
it is caused by gcc using expf instead of exp.
By changing pme.c in the two places where exp is called this way:
- tmp1[kx] = exp(tmp1[kx]);
+ double t = tmp1[kx];
+ tmp1[kx] = exp(t);
gcc 4.3.4 is as fast as gcc 4.4.2.
See also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35202
(The bug is not related to performance but it discusses the replacement from
But what I don't understand at all is why expf is so much slower (expf 7-8x
as slow in pme.c than exp (*)). A small test program which computes exp on
an array, compiled with gcc 4.3.4 is actually faster than with 4.4.2 (30%).
Thus for the test-program the expf seams to be faster. Why expf is so slow
in pme.c is odd.
*) Got that measurement form HPCToolkit. Shows performance line-by-line.
Thus it was easy to pin-point the cause.
On Fri, May 14, 2010 at 10:43 AM, Berk Hess <hess at cbr.su.se> wrote:
> The PME code in git master is a lot faster than the current 4.0.7
> release code.
> However, there seems to be a bug in gcc version 4.3.3 and 4.3.4 (4.3.2
> and 4.4.1 are fine)
> that make the pme_solve part 5 times (!) slower than with proper
> compiler versions.
> This is between 10% and 20% of the total mdrun performance.
> We are currently trying to figure out what triggers this issue and we
> are sending
> a bug report to the gcc mailing list.
> I someone has a hint, please reply.
> gmx-developers mailing list
> gmx-developers at gromacs.org
> Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-developers-request at gromacs.org.
ORNL/UT Center for Molecular Biophysics cmb.ornl.gov
865-241-1537, ORNL PO BOX 2008 MS6309
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the gromacs.org_gmx-developers