[gmx-users] Status of GROMACS native Windows Builds

Wahab Mirco Mirco.Wahab at chemie.tu-freiberg.de
Wed Jan 9 16:54:15 CET 2019


There was currently a thread regarding ways of using Gromacs on
Windows systems. This cause me to try to download v.2019 to
a Windows build machine and see what the NATIVE BUILD looks like.

Installed on the Machine and used for the build were:
  - Visual Studio 2017 ("Visual Studio 15 Win64" in cmake)
  - fftw3f v.3.3.8, compiled in VS 2017 to a static library
  - boost 1.69.0 
(https://sourceforge.net/projects/boost/files/boost-binaries/)

First, standard Gromacs without GPU acceleration and
without external MPI (thread-MPI only). Using a CMD file:

   SET BOOST_ROOT=D:\usr\x64\boost_1_67_0
   SET BOOST_LIBRARYDIR=D:\usr\x64\boost_1_67_0\lib
   SET BOOST_INCLUDEDIR=D:\usr\x64\boost_1_67_0

   cmake -G "Visual Studio 15 Win64"             ^
     -DCMAKE_INSTALL_PREFIX="D:/Gromacs2019"     ^
     -DCMAKE_PREFIX_PATH="D:/Usr/x64"            ^
     -DGMX_GPU=OFF                               ^
     -DGMX_MPI=OFF                               ^
     -DFFTWF_LIBRARY=D:/Usr/x64/lib/libfftwf-3.3.8-vc141.lib ^
     -DCMAKE_BUILD_TYPE=Release                  ^
      ..\gromacs-2019

and finally:

   devenv Gromacs.sln /build Release              ^
       /project ALL_BUILD /projectconfig Release  ^
       /project INSTALL

created a 15 MB executable (gmx.exe) running flawlessly on the machine
and appears reliable and fast.

The build machine also has an old GTX-680 4GB with working CUDA 10 and
working OpenCL 1.2. Neither a Cuda-Build nor an OpenCL build would
succeed (see Appendix).

Q: is further support for the windows platform to be expected?

Thanks & Regards

M.


-----------------------------------------------------------------------

Appendix:

CUDA: cmake (3.13.2)  would fail creating a makefile by complaining:

-- Check for working NVCC/C compiler combination
CMake Error at cmake/gmxManageNvccConfig.cmake:180 (message):
   message called with incorrect number of arguments
Call Stack (most recent call first):
   cmake/gmxManageGPU.cmake:204 (include)
   CMakeLists.txt:590 (gmx_gpu_setup)


-- Check for working NVCC/C compiler combination - broken
CMake Error at cmake/gmxManageNvccConfig.cmake:185 (message):
   CUDA compiler does not seem to be functional.
Call Stack (most recent call first):
   cmake/gmxManageGPU.cmake:204 (include)
   CMakeLists.txt:590 (gmx_gpu_setup)



OpenCL: cmake detects OpenCL 1.2 and creates a makefile, but compilation
fails at several places:

1>fft_binary_lookup.cpp
1>D:\LibSrc\Gromacs2019\gromacs-2019\src\external\clFFT\src\library\fft_binary_lookup.cpp(123): 
error C2664: 'HANDLE 
CreateFileA(LPCSTR,DWORD,DWORD,LPSECURITY_ATTRIBUTES,DWORD,DWORD,HANDLE)': 
cannot convert argument 1 from 'const _Elem *' to 'LPCSTR'
1>        with
1>        [
1>            _Elem=wchar_t
1>        ]
1>D:\LibSrc\Gromacs2019\gromacs-2019\src\external\clFFT\src\library\fft_binary_lookup.cpp(129): 
note: Types pointed to are unrelated; conversion requires 
reinterpret_cast, C-style cast or function-style cast
1>Done building project "clFFT.vcxproj" -- FAILED.
2

and

2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135): 
error C2672: 'std::max': no matching overloaded function found
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135): 
error C2780: '_Ty std::max(std::initializer_list<_Elem>)': expects 1 
arguments - 2 provided
2>C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\algorithm(5399): 
note: see declaration of 'std::max'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135): 
error C2782: 'const _Ty &std::max(const _Ty &,const _Ty &) 
noexcept(<expr>)': template parameter '_Ty' is ambiguous
2>C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\algorithm(5385): 
note: see declaration of 'std::max'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135): 
note: could be 'unsigned long'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135): 
note: or       'size_t'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135): 
error C2784: 'const _Ty &std::max(const _Ty &,const _Ty &) 
noexcept(<expr>)': could not deduce template argument for 'const _Ty &' 
from 'unsigned long'
2>C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\algorithm(5385): 
note: see declaration of 'std::max'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135): 
error C2784: '_Ty std::max(std::initializer_list<_Elem>,_Pr)': could not 
deduce template argument for 'std::initializer_list<_Elem>' from 'size_t'
2>C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\algorithm(5375): 
note: see declaration of 'std::max'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135): 
error C2780: 'const _Ty &std::max(const _Ty &,const _Ty &,_Pr) 
noexcept(<expr>)': expects 3 arguments - 2 provided
2>C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include\algorithm(5367): 
note: see declaration of 'std::max'
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135): 
error C2789: 'gridLinesPerBlock': an object of const-qualified type must 
be initialized
2>D:\LibSrc\Gromacs2019\gromacs-2019\src\gromacs\ewald\pme-gpu-internal.cpp(1135): 
note: see declaration of 'gridLinesPerBlock'
2>Done building project "libgromacs.vcxproj" -- FAILED.


More information about the gromacs.org_gmx-users mailing list