8.19 85.11 vsREMD

  • 22207服务器GMX2022-vsREMD已安装完成:
  • 环境变量:~/.gmx2022-vsREMD.sh
  • 测试路径:/home/g16/zzy/software/test/gmx2022/0819-install/from24-tune-temp-5replica
  • 测试命令:mpirun -np 54 gmx_mpi mdrun -v -deffnm md -multidir md1 md2 md3 md4 md5 md6 -replex 10
  • 测试体系速度:下图1
  • 测试体系交换率:下图2
  • 注:该服务器实际物理核数为56(如图3所示)
vsREMD的编译完全独立,要重新解压从gmx上下载的安装包,替换replicaexchange.cpp文件,在一个新的文件夹下从头安装,所有的路径都要和原来的cmd版本区分开
85.24 /home/lywu/software/gmx/vsremd-2022.5/replicaexchange.cpp

安装GCC

  • # GCC版本不能过低(需要7以上,不然camke报错)
  • conda create -n gcc_8_5 -c conda-forge gxx_linux-64=8.5.0 gcc_linux-64=8.5.0 sysroot_linux-64=2.17 python=3.8 openmpi
  • conda activate gcc_8_5

  • which gcc
  • # 会发现gcc版本没变
  • # /home/g16/anaconda3/envs/gcc_8_5/bin/ 下找不到gcc ,需要创建软链接
  • # 85.11
  • ln -s /home/g16/anaconda3/envs/gcc_8_5/libexec/gcc/x86_64-conda-linux-gnu/8.5.0/gcc /home/g16/anaconda3/envs/gcc_8_5/bin/gcc

  • # conda deactivate
  • conda activate gcc_8_5

  • gcc -v
  • which gcc
  • # gcc 版本已更新为8.5.0

安装cmake

  • # GMX 编译
  • linux下cmake安装配置_linux cmake配置全局-CSDN博客

  • cd /home/g16/zzy/software/cmake
  • wget https://github.com/Kitware/CMake/releases/download/v3.28.5/cmake-3.28.5.tar.gz
  • tar xzvf cmake-3.28.5.tar.gz
  • cd cmake-3.28.5/

  • # echo "-DCMAKE_USE_OPENSSL=OFF" >> configure
  • ./bootstrap --prefix=/home/g16/zzy/software/cmake-3.28/prefix

  • # 编译
  • make -j 50
  • # 安装
  • make install

  • # 添加环境变量
  • export PATH=/home/g16/zzy/software/cmake-3.28/cmake-3.28.5/bin:$PATH

  • # 安装的时候时候需要高版本camke,export一下就可以,这台服务器比较老,不轻易动env
  • # echo "export PATH=/home/g16/zzy/software/cmake-3.28/cmake-3.28.5/bin:$PATH" >> ~/.bashrc
  • # source ~/.bashrc

  • # 查看版本(检验)
  • cmake --version
  • cmake version 3.28.5
  • CMake suite maintained and supported by Kitware (kitware.com/cmake).

检查openmmpi

  • # 该服务器上openmpi已有
  • ###################################################################################
  • (base) [g16@localhost build]$ mpirun --version
  • mpirun (Open MPI) 1.8.8

  • Report bugs to http://www.open-mpi.org/community/help
  • ###################################################################################

安装gmx

  • # /home/g16/zzy/software/
  • scp lywu@172.21.85.24:/home/lywu/software/gmx/vsremd-2022.5/gromacs-2022.5.tar.gz ./
  • tar xvf gromacs-2022.5.tar.gz
  • mv gromacs-2022.5 gromacs-2022.5-vsremd
  • cd gromacs-2022.5-vsremd/

  • # 替换 src 下面的 replicaexchange.cpp 文件
  • locate replicaexchange.cpp
  • #### 一定要检查!!!
  • cd /home/g16/zzy/software/gromacs-2022.5-vsremd/src/gromacs/mdrun
  • # 备份
  • mv replicaexchange.cpp replicaexchange.cpp.bak
  • scp lywu@172.21.85.24:/home/lywu/software/gmx/vsremd-2022.5/replicaexchange.cpp ./

  • cd gromacs-2022.5-vsremd/
  • mkdir build 
  • cd build

  • ### 编译
  • ## -DGMX_SIMD参数的选择,看Installation guide — GROMACS 2022 documentation
  • ## 用下面的命令可以看本机支持的版本,选择和安装指导中共有的参数即可
  • cat /proc/cpuinfo | grep flags

  • # 这台服务器没有 GPU,-DGMX_GPU=off
  • # -DGMX_SIMD=SSE2 这个参数不指定的时候,也会报错
  • cmake .. -DCMAKE_INSTALL_PREFIX=/home/g16/zzy/software/gromacs-2022.5-vsremd/install -DGMX_SIMD=SSE2 -DGMX_GPU=off -DGMX_BUILD_OWN_FFTW=on -DGMX_MPI=on
  • # 有GPU的话,-DGMX_GPU=CUDA
  • # -DGMX_SIMD=SSE2 :指定SIMD(指令集扩展),可以cat /proc/cpuinfo | grep flags,看自己的机器支持什么,较新的处理器可能支持更高级的 SIMD 指令集(如 AVX、AVX2、AVX-512 等),而较老的处理器可能只支持 SSE2。
  • # -DGMX_BUILD_OWN_FFTW=on:在编译过程中自动下载、编译和使用其自带的 FFTW 库,而不是依赖系统中已经安装的 FFTW 库。
  • # -DGMX_MPI=on :支持MPI并行

  • ## 根据服务器空闲核数设置参数
  • make -j 50 
  • make install -j 50                                                                               

  • # 环境变量设置 
  • # gmx2022 
  • # 命令行输入以下命令
  • export PATH=/home/g16/zzy/software/gromacs-2022.5-vsremd/install/bin/:$PATH
  • export LD_LIBRARA_PATH=/home/g16/zzy/software/gromacs-2022.5-vsremd/install/lib64:${LD_LIBRARY_PATH}
  • export LD_LIBRARY_PATH=/home/g16/zzy/software/gcc/prefix/gcc-12.2.0/lib64/:${LD_LIBRARY_PATH}

  • # 测试
  • which gmx_mpi

  • # 若无误,将3行export写入自己的环境变量
  • cp ~/.bashrc ./gmx2022.sh

  • # 需要使用时,source该环境即可

测试

  • scp -r lywu@172.21.85.24:/home/databank/zzy/project/MD/temp-adjust/test/grep_exchange/input ./from24-tune-temp-5replica

  • # 一定要检查线程数!进程数!有时候 -np 后面的 数值和实际调用的核/线程不是一个东西
  • nohup mpirun -np 60 gmx_mpi mdrun -v -deffnm md -multidir md1 md2 md3 md4 md5 md6 -replex 10 &

  • # 检查方法
  • 首先看能否跑通,到log文件里看交换率,如果为0,那就是remd了,如果可以交换,那就是对的

debug

  • # 本次安装流程上没遇到什么问题,在configure的时候,提示GCC,Cmake版本过低,故分别安装
  • # cmake的那一步,编译器参数不设置的话,报错,怀疑是由于服务器版本较老的原因
  • # 编译完成后,测试中发现MD只能用一个进程跑,报错信息如下
  • Inconsistency in user input:
  • The number of ranks (1) is not a multiple of the number of simulations (6)

  • # 从结果论的角度,是因为环境变量没指定
  • # 在创建 conda环境(gcc_8_5)的时候,已经安装了openmpi,在写环境变量的时候,需要指定这个openmpi的环境
  • # 故,本次安装配套的环境变量如下: