GROMACS
GROMACS with fftpack
Windows原生环境下使用MinGW和CMake编译使用fftpack的GROMACS。
GROMACS源代码下载:
GROMACS下载地址。
工具准备:
MinGW,
CMake,
Python。
从Github上MinGW的release页面下载
x86_64-[版本号]-release-win32-seh-ucrt-rt_v12-rev0.7z 版MinGW编译器,并解压到任意目录,比如 D:/mingw64 。将D:/mingw64/bin目录添加到系统环境变量PATH中。在PowerShell中使用 gcc --version 或 g++ --version 命令验证MinGW是否安装成功。从CMake和Python官网下载对应Windows系统版本的安装程序,安装时勾选添加到环境变量。安装完成后在PowerShell中使用 cmake --version 和 python --version 查看版本信息验证安装。
下载GROMACS源代码,解压到任意目录,比如 F:/VSCodeFile/GROMACS/ 。使用 tar -zxvf [源代码文件名] 解压GROMACS源代码,并进入该目录。在PowerShell中执行以下命令:
cd F:/VSCodeFile/GROMACS
tar -zxvf gromacs-2024.5.tar.gz
cd gromacs-2024.5
进入解压目录后,使用以下指令构建CMake项目:
cmake -S . -B build -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=F:/GROMACS-fftpack -DGMX_FFT_LIBRARY=fftpack -DCMAKE_BUILD_TYPE=Release
cmake --build build -j4 --target install
cmake参数解释:
-S . 指定当前目录作为源代码目录;
-B build 指定构建目录为build文件夹,用于存放编译过程中生成的文件;
-G "MinGW Makefiles" 指定使用MinGW的Makefile生成器。"MinGW Makefiles"生成器会构建MinGW编译器的makefile文件。使用cmake -G查看所有可用的生成器;
-DCMAKE_INSTALL_PREFIX=指定的GROMACS安装路径,比如作者的安装路径F:/GROMACS-fftpack;
-DGMX_FFT_LIBRARY=fftpack 指定使用fftpack库支持FFT (Fast Fourier Transform) 计算。还可以使用fftw3,mkl等其他库;
-DCMAKE_BUILD_TYPE=Release 指定编译类型为发布模式,编译器一般会对Release模式进行优化,提高运行效率;
--build build 指定CMake构建目录,进行编译安装;
-j4 指定并行编译的线程数;
--target install 构建install目标,使用CMakeLists.txt中的install()命令进行安装;
更多编译选项可查看
GROMACS官方文档。
等待编译完成后,GROMACS二进制文件安装到了F:/GROMACS-fftpack/bin目录下。将F:/GROMACS-fftpack/bin目录添加到系统环境变量PATH中,即可使用,即可在windows的CMD或PowerShell中使用gmx命令。使用 gmx -version 命令查看GROMACS版本信息,验证安装是否成功,输出以下信息:
PS C:\Users\TTT> gmx -version
:-) GROMACS - gmx, 2024.5 (-:
Executable: F:\GROMACS-fftpack\bin\gmx.exe
Data prefix: F:\GROMACS-fftpack
Working dir: C:\Users\TTT
Command line:
gmx -version
GROMACS version: 2024.5
Precision: mixed
Memory model: 64 bit
MPI library: thread_mpi
OpenMP support: enabled (GMX_OPENMP_MAX_THREADS = 128)
GPU support: disabled
SIMD instructions: SSE2
CPU FFT library: fftpack (built-in)
GPU FFT library: none
Multi-GPU FFT: none
RDTSCP usage: enabled
TNG support: enabled
Hwloc support: disabled
Tracing support: disabled
C compiler: D:/mingw64/bin/gcc.exe GNU 13.2.0
C compiler flags: -fexcess-precision=fast -funroll-all-loops -msse2 -Wno-missing-field-initializers -O3 -DNDEBUG
C++ compiler: D:/mingw64/bin/c++.exe GNU 13.2.0
C++ compiler flags: -fexcess-precision=fast -funroll-all-loops -msse2 -Wno-missing-field-initializers -Wno-cast-function-type-strict SHELL:-fopenmp -O3 -DNDEBUG
BLAS library: Internal
LAPACK library: Internal
GROMACS with fftw3
Windows系统上使用MSYS2环境编译fftw3库。使用Windows原生环境编译使用fftw3库的GROMACS。
下载安装
MSYS2。打开MSYS2 UCRT64终端,使用以下指令安装MinGW,Python,sphinx,安装过程中输入y确认安装。
pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-ucrt-x86_64-python
pacman -S mingw-w64-ucrt-x86_64-python-sphinx
下载fftw3库源码,解压到任意目录,比如 F:/VSCodeFile/fftw3 。进入解压后的目录。在MSYS2 UCRT64终端中执行以下命令配置并编译fftw3库:
./configure --disable-alloca --with-our-malloc16 --enable-shared --disable-static --enable-threads --with-combined-threads --enable-portable-binary --with-imcoming-stack-boundary=2 --enable-float --enable-sse2 --enable-avx --prefix=/f/fftw3-sse2-avx
make -j4
make install
./configure的参数详细请参考
Windows Installation Notes以及
Installation on Unix。
编译过程中可能会显示缺少某些依赖,可在MSYS2
Base Packages页面搜索相应依赖,并MSYS2终端版本在终端中使用 pacman -S [name of package] 命令安装缺失的依赖。 ./configure 和 make 过程时间较长,尽量第一次就将依赖库安装好。编译完成后,fftw3库安装到了F:/fftw3-sse2-avx/目录下。
打开PowerShell,进入GROMACS源代码目录,使用以下指令构建CMake项目:
cmake -S . -B build -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=F:/GROMACS-fftw3 -DGMX_FFT_LIBRARY=fftw3 -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=F:/fftw3-sse2-avx
cmake --build build -j4 --target install
-DGMX_FFT_LIBRARY=fftw3 指定使用fftw3库支持FFT计算;
-DCMAKE_PREFIX_PATH=F:/fftw3-sse2-avx 指定fftw3库的安装路径,CMake会在此目录下查找fftw3库的头文件和动态链接库。
等待编译完成后,GROMACS二进制文件安装到了F:/GROMACS-fftw3/bin/目录下。将F:/fftw3-sse2-avx/bin/目录下的libfftw3f-3.dll文件复制到F:/GROMACS-fftw3/bin/目录中并添加到系统环境变量PATH中,即可在windows的CMD或PowerShell中使用gmx命令。