Windows 11系统中 GROMACS-GPU版在WSL2-Ubuntu18.04中的编译

一、构建虚拟环境

1、为win11安装cuda(cuda for wsl )驱动

参照官网:

点击下载适合自己GPU的cuda 包,根据默认提示安装

2、安装虚拟环境wsl2和Linux发行版Ubuntu18.04

简单粗暴法:以管理员身份运行Windows Terminal,执行wsl --install 默认安装wsl2 和Ubuntu 18.04

自主选择法:以管理员身份运行Windows Terminal,执行wsl -l -o,查看可选linux版本,执行wsl --install -d <Distribution Name>

本文运行wsl --install -d Ubuntu-18.04

安装完成会提示输入用户名和密码

3、进入wsl虚拟环境

关闭Windows Terminal,重新打开(无需管理员模式)输入bash或wsl,回车。

运行:

sudo apt-get update

sudo apt-get dist-upgrade

以获得最近的更新

二、安装Gromacs

使用sudo su 进入root用户模式(建议该模式下进行安装),非root用户下某些安装权限可能受限(permission denied),可以灵活使用sudo命令执行以下操作。

在home目录下新建文件夹software(mkdir software),进入software(cd ~/software)文件夹进行相关文件夹下载,默认下载到当前目录(该步骤不必须,可以使其他任意位置)。

使用root安装软件时,建议安装在 /usr/local路径下以便管理和使用(形成良好的习惯)。

1、安装cmake:

在Windows Terminal中输入cmake,按照提示命令进行安装

sudo apt install cmake

apt默认安装路径在usr/bin下

2、安装fftw

cd ~/softPackage # 进入上一步建立的software目录,也可以使你新建的任何文件夹路径

wget fftw.org/fftw-3.3.8.tar # 利用wget获取安装包

tar -xzvf fftw-3.3.8.tar.gz # 解压

cd fftw-3.3.8 ## 进入fftw目录

./configure --prefix=/usr/local/fftw338 --enable-sse2 --enable-avx --enable-float --enable-shared --enable-avx2 # 设置编译安装路径,CPU不支持AVX2则删除--enable-avx2,较新CPU应该都没问题。

make install -j #开始编译

最后修改.bashrc (该文件在/home/用户名 路径中)

sudo gedit ~/.bashrc #打开bashrc,如果gedit命令不能使用,可以在win下找到Linux-home-用户名 文件夹中用文本文档打开

将以下两条信息添加在文本最后,

export PATH=$PATH:/usr/local/fftw338/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/fftw338/lib

然后输入wq 回车 #保存并退出

3、安装cuda toolkit:(Linux 不需要安装cuda driver,只需要安装cuda toolkit,本文安装11.1.0版本)参考CSDN帖子

命令如下,默认在安装在/usr/local路径下

wget developer.download.nvidia.com

sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600

wget developer.download.nvidia.com

sudo dpkg -i cuda-repo-wsl-ubuntu-11-1-local_11.1.0-1_amd64.deb

sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-1-local/7fa2af80.pub

sudo apt-get update

sudo apt-get -y install cuda

#修改.bashrc

sudo gedit ~/.bashrc #打开bashrc,如果gedit命令不能使用,可以在win下找到Linux-home-用户名 文件夹中用文本文档打开

将以下两条信息添加在文本最后,

export PATH=$PATH:/usr/local/cuda-11.1/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.1/lib64

重启终端,进入虚拟系统,查看cuda toolkit版本

执行 nvcc --version

4.安装Gromacs(重启终端后记得获取root权限 sudo su)

本文安装gromacs2020.6版本。

wget ftp.gromacs.org/gromacs # 下载安装包

tar -xzvf gromacs-2020.6.tar.gz # 解压

cd gromacs-2020.6 # 进入解压目录

mkdir build #新进build文件夹

cd build #进入build文件夹

export CMAKE_PREFIX_PATH=/usr/local/fftw338 #指定fftw338路径

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/gmx2020.6 -DGMX_GPU=ON -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.1 #指定安装路径和cuda路径

(该过程若出现No CMAKE_CXX_COMPILER could be found.错误,执行以下命令。

sudo apt-get update

sudo apt-get install -y build-essential)

接下来执行

make -j #编译

编译过程如果出现c++: fatal error: Killed signal terminated program cc1plus,表示虚拟内存(swap)不够,需要扩充,我们采用临时扩充的方法

make clean #清除错误编译

free -m #查看当前swap分区大小,发现只有2G

sudo dd if=/dev/zero of=/swapfile bs=1024 count=50000000 #增加到50G,笔者亲试,20G都不行 空间大小为bs*count=50G

sudo mkswap /swapfile #把刚才增加的空间转换为swap格式

chmod 0600 /swapfile #修改录权限

sudo swapon /swapfile #使用刚才创建的50G swap空间

free -m #此时再查看,发现swap空间变为50G

内存扩充后继续 执行

make -j

make check #检查是否有错误,可以省略

make install #最后安装,完成后会在/usr/local路径下出现gmx2020.6文件夹

最后释放临时内存

swapoff -a #gromacs编译结束,释放先前50G内存

free -m #检查swap空间是否变为2G

#修改.bashrc

sudo gedit ~/.bashrc #打开bashrc,如果gedit命令不能使用,可以在win下找到Linux-home-用户名 文件夹中用文本文档打开

在最后一行加入

source /usr/local/gmx2020.6/bin/GMXRC

wq 回车 #保存退出

5.检测

重启终端(无需root权限)

输入

gmx

可以看到版本输出信息

该protocol 参考一下文章,十分感谢

GROMACS-GPU版在WSL2-Ubuntu18.04中的安装方法 - 分子模拟 (Molecular Modeling) - 计算化学公社 (keinsci.com)

(5条消息) Ubuntu | 你的内存不够啦:c++: internal compiler error: Killed (program cc1plus)_搞嵌入式的Lucas-CSDN博客

(6条消息) CMake错误No CMAKE_CXX_COMPILER could be found._1024-CSDN博客

(6条消息) ubuntu下su: Authentication failure的解决办法(su和su - root的区别)_cjmcp的专栏-CSDN博客

(6条消息) 2021年wsl2中配置Ubuntu18.04+CUDA+Pytorch深度学习环境完全版_lifeLover21的博客-CSDN博客

编辑于 2021-12-31 16:58