[gmx-users] Overflow problem with test-particle insertion

Kevin Daly kdaly at princeton.edu
Fri Sep 10 00:16:34 CEST 2010


Thank you for taking the time to fix the issue. I would be very interested
in testing out the modified code, but unfortunately I have had some
difficulties compiling the Gromacs code obtained straight from GIT. In
particular, I encounter the following error:

~/gromacs/src/tools/gmx_membed.c:1095: error: expected declaration
specifiers or ‘...’ before ‘gmx_global_stat_t’

If you are curious to see the log and CMake cache files from the build, I
have attached them to this email. I could also just patch the relevant parts
of version 4.5.1 and test that out. If this would be feasible, then what
specific lines should I modify?


Date: Thu, 9 Sep 2010 17:19:36 +0200
From: Berk Hess <gmx3 at hotmail.com>
Subject: RE: [gmx-users] Overflow problem with test-particle insertion
To: Discussion list for GROMACS users <gmx-users at gromacs.org>
Message-ID: <COL113-
W1513821AC701A1763B351B8E730 at phx.gbl>
Content-Type: text/plain; charset="iso-8859-1"


I realized now that this is an SSE issue.
Normally you would get NAN (or is it INF?). That is treated correctly in the
But in SSE a float "wraps around" when it overflows, which could, in very
few cases, lead to a reasonably
looking energy value (I check for very high and very low values).
I found that you can check for overflows in SSE and committed a fix for
I also filled the first 10 points (up to r=0.02 nm) of the potential/force
tables, these used to be zero.
These values are only relevant for energy minimization or TPI with extreme
atomic overlap.


From: gmx3 at hotmail.com
To: gmx-users at gromacs.org
Subject: RE: [gmx-users] Overflow problem with test-particle insertion
Date: Thu, 9 Sep 2010 09:39:42 +0200


This is an interesting issue.
The chance is quite small that this happens, but maybe not negligible.
In single precision the maximum a float can store is 2^127.
This gives a minimum distance of (2^127)^-1/12 = 6.5e-4 nm.
The chance of inserting a particle within this radius is dens*3e-10,
where dens is the number of particles per nm^3.
A typical density of LJ particles is 30 per nm^3, which leads to a chance of
Such insertion numbers can be reached, so we probably have to worry about

However, in your example the distance seems to be around 4e-3, which would
give r^-12 = 6e28. This still fits in a float and should not cause problems.
So we should make sure we understand what's going on here.
Could you file a bugzilla with the files to reproduce this and which
is the problematic one?

I so two possible solutions:
Force tabulated potentials with TPI, this can currently be achieved by
the environment variable GMX_FORCE_TABLES
Or require double precision.
But I think both solutions would lead to about 40% lower performance.


Date: Wed, 8 Sep 2010 21:16:46 -0400
From: kdaly at princeton.edu
To: gmx-users at gromacs.org
Subject: [gmx-users] Overflow problem with test-particle insertion

Hello Gromacs users,

I sent a message to the list in June describing what appeared to be a float
overflow issue with the energy calculation for test-particle insertions:

I have recently tried the test-particle insertion mode in Gromacs-4.5.1, and
it seems the problem is still there. Does anyone know how to work around or
fix this problem without using tabulated potentials?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-users/attachments/20100909/ca71067b/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build_output.tar.gz
Type: application/x-gzip
Size: 16003 bytes
Desc: not available
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-users/attachments/20100909/ca71067b/attachment.gz>

More information about the gromacs.org_gmx-users mailing list