[gmx-users] Gromacs 4.6 crashes w/AVX acceleration on cygwin

Mirco Wahab mirco.wahab at chemie.tu-freiberg.de
Wed Feb 27 20:31:13 CET 2013


Out of curiosity, I installed cygwin  1.7.17-1 on my AMD/FX-8350
workplace box (W8Pro/x64). This is what I found out:

- Gromacs 4.6 compiles smooth but crashes w/native(AVX_128) on
    simulation start with loads of fp errors (non-reproducible,
    sometimes stops w/no error at all, just stops)

- Gromacs 4.6 runs fine if compiled w/GMX_CPU_ACCELERATION=SSE2,
    even if PME involved (see below)

- Gromacs shared executables (runtime-dlls) didn't start due to
    some erratic dlopen problems with I didn't understand. By
    using GMX_PREFER_STATIC_LIBS=ON, this was solved

I testet a "Martini"-system of ~1 Mio particles (a 50^3nm water
box with a vesicle). Performance comparison:

   VS2010(x64)      - md/cut-off/Reaction-Field : 37.460 ns/day
   cygwin/gcc 4.5.3 - md/cut-off/Reaction-Field : 30.304 ns/day

   VS2010(x64)      - md/cut-off/PME : 10.874 ns/day
   cygwin/gcc 4.5.3 - md/cut-off/PME :  9.283 ns/day

The fftw3f used was installed before from source. I'll attach
a recipe for both builds and some more hints below.

Resumé: cygwin installation of Gromacs 4.6 is (still) cumbersome
and may throw up suprising errors. For windows users, looks much
more promising (imho!) to build Gromacs with the Visual Studio
compiler (which is, through combination of VS2010 express +
SDK 7.1, free of cost).

"works on my machine"-instructions: =>

-------------- next part --------------
Install cygwin 1.7.17-1 
and: gcc-4 g++-4 gfortran-4 make cmake automake autoconf lapack gsl vim procps binutils (and what you like)

#######################
# 1. edit bash env
#######################

cd ~

vi .bashrc

 # insert this at the stop of the file:
   
 # (a) PATH cleanup (don't interfere with other stuff installed on windows machine!)
 # and add /usr/local/lib (for gromacs dll files)
 export PATH=/usr/local/bin:/usr/bin:/usr/local/lib:/cygdrive/c/Windows/system32:/cygdrive/c/Windows:/cygdrive/c/Windows/System32/Wbem:/cygdrive/c/Windows/System32/
   
 # (b) prepare for GROMACS environment
 if [ -e /usr/local/bin/GMXRC.bash ] ; then
    source /usr/local/bin/GMXRC.bash
 fi
   
:x
exit

######################
2. install fftw3f
#######################

cd ~

mkdir fftw3; cd fftw3
wget http://www.fftw.org/fftw-3.3.3.tar.gz
tar xzf fftw-3.3.3.tar.gz
rm -rf fftw3-build/; mkdir fftw3-build/; cd fftw3-build/
CC=gcc-4 CXX=g++-4 F77=gfortran-4 ../fftw-3.3.3/configure --enable-shared --enable-float --enable-sse2 --with-our-malloc
make -j 8 install

#######################
# 3. install gromacs
#######################

cd ~

mkdir gromacs; cd gromacs
wget ftp://ftp.gromacs.org/pub/gromacs/gromacs-4.6.tar.gz
tar xzf gromacs-4.6.tar.gz
rm -rf gromacs-build/; mkdir gromacs-build/; cd gromacs-build/
CC=gcc-4 CXX=g++-4 F77=gfortran-4 cmake -DGMX_OPENMP=ON -DGMX_CPU_ACCELERATION=SSE2 -DGMX_PREFER_STATIC_LIBS=ON -DFFTW3F_INCLUDE_DIR=/usr/local/include -DFFTW3F_LIBRARY=/usr/local/lib/libfftw3f.dll.a -DCMAKE_INSTALL_PREFIX=/usr/local -DGMX_GPU=OFF ../gromacs-4.6
make -j 8 install

exit

relogin



More information about the gromacs.org_gmx-users mailing list