Project

General

Profile

Bug #85

mdrun with PME gives different results with MPI

Added by David van der Spoel about 13 years ago. Updated almost 12 years ago.

Status:
Closed
Priority:
High
Category:
mdrun
Target version:
Affected version - extra info:
Affected version:
Difficulty:
uncategorized
Close

Description

When mdrun is run from mpirun as
mpirun -c 1 mdrun -s
it gives different results than when run as
mdrun -s
and when it is compiled without MPI it gives yet different results.
The differences are very minor and are due to PME. Currently we suspect that it
has to do with bsplines stuff

History

#1 Updated by Anonymous about 13 years ago

Compiling with: ./configure --with-fft=fftpack(or fftw3) --without-x
and compiling with an additional line of #define DEBUG in src/mdlib/pme.c also
gives different results. Maybe it is caused by the same bug.

The difference is also very small. Running mdrun -debug resulted in different
adresses for Grid and different entries at some locations in the qgrid array.

I checked that the adress does not change after the memory allocation.

After this I suspected that somewhere a pointer array is exceeded (because
adding fprintf statements in pme.c could result in changing the manifestation of
the bug) and the information is put into the Grid memory area. So I compiled
with dmalloc, but it did not give any out of bounds warnings.

However dmalloc does not check for static pointer arrays. Maybe the problem is
in one of the static pointer arrays, but I do not know how to check them.

Same problem can occur when implementing new force functions.

#2 Updated by David van der Spoel almost 12 years ago

I can not reproduce this bug anymore, neither with the 3.3 CVS or the 4.0 CVS code. (Not with vanilla 3.2.1 either). This could have been caused by compilation issues. Tested on both Mac an Linux box.

Also available in: Atom PDF