Gromacs 4 broken when compiled with Intel MKL
Created an attachment (id=406)
Temperature coupling plots and run input file for the test simulation.
The simulation results from Gromacs 4 compiled with Intel MKL 9.1 are broken when using PME for the electrostatics. As a clear example, I attach two plots of the temperature coupling to 100 K in a simulation of an ice crystal for two versions of Gromacs, one compiled with fftw3 (temp-FFTW.xvg) and one with MKL (temp-MKL.xvg).
Gromacs 4 was compiled with
./configure --prefix=/opt/gromacs/4.0.7/mkl --with-fft=mkl CFLAGS=-I/opt/intel/mkl/9.1.023/include LDFLAGS=-L/opt/intel/mkl/9.1.023/lib/32
using MKL and
./configure --prefix=/opt/gromacs/4.0.7/fftw3/ --with-fft=fftw3
using FFTW3. I also attach the run input file for the ice crystal simulation (topol.tpr). I have experienced this behavior both on my own computer (x86-ia32) and on our supercomputer cluster (x86-64) with MKL 9 and 10. As additional info, the MKL Gromacs version works if not using PME.
On my own computer I have also tried compiling GROMACS with MKL using the wrapper scripts that are included with the INTEL MKL distribution (i.e. still using the -with-fft=fftw3 flag) and this also works on the same simulation as described here.
#1 Updated by David van der Spoel about 10 years ago
I can not reproduce this with the latest git development code. Ran with MKL in Linkoping and without on my mac, I get the same results for temperature and energies. Have not tried it with 4.0.7 though, and this was with MKL 10.0.4 (I believe they are at version 11 already though).
[neolith1:~] % ldd `which mdrun`
libguide.so => /software/intel/cce/10.1.017/lib/libguide.so (0x00002aca639ed000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003ab6200000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x0000003abaa00000)
libmpi.so => /opt/scali/lib64/libmpi.so (0x00002aca64556000)
libimf.so => /software/intel/cce/10.1.017/lib/libimf.so (0x00002aca64915000)
libsvml.so => /software/intel/cce/10.1.017/lib/libsvml.so (0x00002aca64c79000)
libm.so.6 => /lib64/libm.so.6 (0x0000003ab5a00000)
libintlc.so.5 => /software/intel/cce/10.1.017/lib/libintlc.so.5 (0x00002aca64e05000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000003ab6a00000)
libc.so.6 => /lib64/libc.so.6 (0x0000003ab5600000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003ab5e00000)