Bug #85

mdrun with PME gives different results with MPI

Added by David van der Spoel almost 15 years ago. Updated over 13 years ago.

Target version:
Affected version - extra info:
Affected version:


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


#1 Updated by Anonymous over 14 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 over 13 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