[gmx-developers] Building 5.0 on Cygwin x64

Mirco Wahab mirco.wahab at chemie.tu-freiberg.de
Wed Jul 9 12:37:24 CEST 2014


After seeing some patches reaching gerrit, I tried to build it
on Cygwin x64 w/recent gcc 4.8.3 (which comes ootb).

three minor problems found:

1) missing time.h in impl.h (inherited from 4.6.x), can be solved
    by hot-patching for now by:
    perl -i.bak -pe '$once||=s/\A/#define HAVE_SYS_TIME_H\n/' 
src/external/thread_mpi/src/impl.h

2) in a recent patch (3764/5), set(CXX11_FLAG "-std=gnu++0x")
    has been added for Cygwin, but it also will work perfectly using
    "-std=gnu++11". In the 5.0-Release, this can eg. be written by hand
    into CMakeCache.txt:
    CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -std=gnu++11 -DNDEBUG

3) could not get gromacs w/shared fftw3 libs built for unknown reasons.
    Had to add -DBUILD_SHARED_LIBS=off,  maybe this wont change anytime
    soon in the cygwin world.

Voila, a working Gromacs-5-system can be built. The previous obligatory
additional mdrun_mpi doesn't seem necessary any more but can be built
too. Comparison using an old 1 Mio atom MARTINI membrane system
(Phenom II X6, SSE2, RF electrostatics):

Cygwin x64:

  mdrun
    Using 6 MPI threads
    Using 1 OpenMP thread per tMPI thread
    22.273 ns/day

  mdrun_mpi
    Using 1 MPI process
    Using 6 OpenMP threads
    19.341 ns/day


Comparison to the host system (Windows 8.1 x64, VS 2012 x64 native):

  gmx mdrun -nb cpu
    Using 6 MPI threads
    Using 1 OpenMP thread per tMPI thread
    20.546

  gmx mdrun (CUDA6, GTX-660Ti)
    Using 1 MPI thread
    Using 6 OpenMP threads
    33.594 ns/day


Not bad so far!

Regards

M.






More information about the gromacs.org_gmx-developers mailing list