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 http://www.fftw.org/fftw-3.3.8.tar.gz # 利用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 https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
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://ftp.gromacs.org/gromacs/gromacs-2020.6.tar.gz # 下载安装包
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博客