[gmx-users] CygWin and Gromacs 4.5.5

Mirco Wahab wahab-mail at gmx.de
Sun Nov 13 02:10:51 CET 2011


On 10.11.2011 15:28, Szilárd Páll wrote:
> On Tue, Nov 8, 2011 at 11:59 PM, Mark Abraham<Mark.Abraham at anu.edu.au>wrote:
>> Actually I don't think this issue has been addressed. Some NUMA-aware
>> thread_mpi stuff does not work under Cygwin, and code added since 4.5.4
>> assumes that it does. I can find no reason to support that assumption.
>>
>> To work around, use configure --disable-threads.

This seems to be correct for the current situation
(CygWin 2.738 + Gromacs 4.5.5).

I was able to build Gromacs 4.5.5 (32 bit) on Cygwin (gcc 4.5.3)
w/o threads:

  $ tar xzf gromacs-4.5.5.tar.gz
  $ mkdir build; cd build
  $ LDFLAGS="-L/usr/local/lib/ -llapack -lblas -lgfortran" \
        ../gromacs-4.5.5/configure \
        --disable-threads --with-fft=fftw3 --with-gsl
        --with-external-lapack --with-external-blas
  $ make install

This worked *after* I compiled and installed fftw3:

  $  ./configure --with-our-malloc16 --enable-threads \
                 --enable-float --enable-sse
  $ make -j 4

and Lapack 3.3.1 from source on this cygwin installation
(packaged version won't work due to missing s* linkage,
as fas as I understood).

Performance on the system I tested is rather poor.
I used a membrane system w/10^6 Particles (Martini/NPT,
coulombtype=Shift), the main memory used ~ 300MB.
This has been tested on a PhenomII/X6 @3400MHz.
(The same system is runnning also under Linux
on a i7/2600K @4.2GHz) :

****************************************************************
4.5.5/32b | Cygwin-version: <0.5 GFlops (single process only)
4.5.5/64b | Windows-version: ~10 GFlops (6 threads)
4.5.5/64b | Linux/icc:       ~20GFlops  (8 threads)
****************************************************************

>> I'd be surprised. Why should MSVC outperform gcc?
>
> That statement was based on my previous experience which, admittedly, might
> be outdated. I don't remember the exact details, but from what I recall,
> the I had to fiddle quite a lot with gcc optimizations to get the
> performance close to MSVC. One detail might be important: the code I was
> working on is C/C++ mix which quite a lot of ++ in it.
>
> Anyway, to get a better picture, it would be nice if people running GROMACS
> on Windows could share their experience/performance numbers.

The Linux-compiled (both gcc and icc) versions *and* the
native Windows-64 report after startup:
	...
	Configuring nonbonded kernels...
	Configuring standard C nonbonded kernels...
	Testing x86_64 SSE2 support... present.
	...

whereas, the Cygwin-compiled version says:
	...
	Configuring nonbonded kernels...
	Configuring standard C nonbonded kernels...
	Testing ia32 SSE2 support... present.
	...

So I don't have any idea why it would be that slow,
(even scaled by 6 or processor affinity set) compared
to the msvc-64 (2010) compiled version. There's enough
memory and no disk activity during tests.


Regards,

M.



More information about the gromacs.org_gmx-users mailing list