本帖最后由 欢乐多 于 2024-3-19 06:39 编辑
笔者的电脑使用Centos stream 9一段时间后频繁死机,一个计算任务算开始一两个小时后,就无故死机,也没有找到系统报错日志,需要重启恢复,严重影响正常工作,(经过多次软硬件方面排查,比如进行主板、硬盘、CPU、内存等检查,装不同的Linux和Window等,最后发现随机死机、蓝屏、黑屏等现象是由于内存条损坏导致,与系统及所安装的程序毫无关系),为了排除是Centos stream 9系统不完善导致,笔者也换用Rocky Linux 9.3系统,详见《Rocky Linux 9.3系统安装及Gromacs,Gaussian, xtb, ORCA, SVM等程序安装》,但是发现ocky Linux 9.3系统也随机死机,而换用一个新内存条后,计算机工作正常。因此,Centos stream 9 系统也是相当稳定的,请放心安装使用。 Centosstream 9 安装Gromacs 2023.1(GPU加速版)体验 0前言
笔者以天然产物出身,发现实验背后的理论能解答我们日常实验的疑惑,茶余饭后就学习了量子化学计算,最近对分子模拟感兴趣,于是从模拟必备的硬件系统到软件系统进行了逐步探索。
1硬件配置
配置如下: 处理器:AMD Ryzen™ 9 7950X 16-Core, 32-Thread Unlocked Desktop Processor 主板:GIGABYTE B650M AORUS Elite AX 处理器散热器:Cooler Master Hyper 212 Halo Black CPU Air Cooler 显卡:ASUS TUF GeForce RTX® 4090 OC Edition Gaming Graphics Card 内存:CORSAIR VENGEANCE DDR5 RAM 64GB (2x32GB) 5200MHz C40-40-40-77 硬盘:Seagate Iron Wolf Pro 8TB Enterprise NAS Internal HDD Hard Drive – CMR 3.5 Inch SATA6Gb/s 7200 RPM 256MB Cache for RAID Network Attached Storage, Rescue Services -FFP (ST8000NTZ01) 电源:Seasonic FOCUS GX-1000 机箱:Corsair 4000D Airflow Tempered Glass Mid-Tower ATX PC Case – Black 总计:$3386,合计人民币23697元 以上硬件基本按照sob老师社长大人博文《计算化学购机配置推荐》推荐进行配置,显示器及键盘鼠标是与其他电脑共用,因此未配置。笔者打算在该机子上安装Linux系统,除了安装系统用以一下显示器及键盘鼠标,日常使用根本不会在该电脑上使用,并且笔者习惯于在win 10系统进行远程登陆或ssh登陆,用MobaXterm对终端进行操作或互传文件极其方便。 从订购到包裹收齐4天的时间,这边快递小哥还是挺负责吧,由于以前装过几次机器,也喜欢折腾,刚开始自己摸索,装上并没有点亮,搜索一下网上的教程,又结合一些说明书,算是都正确安装了,但是通电开机还是不能点亮,主板上RAM的提示灯一直亮,不能登陆Bioss界面,主板的硬件毛病,联系商家退货,又重新买了一块主板,不幸的是第二块主板不能连接硬盘,后来想想如果按照说明书手动恢复一下出厂设置可能会解决这个问题,再次联系商家退货,又买了一块,第三块主板看起来正常,开机点亮顺利进入Bioss界面,并识别硬盘。因此,所有硬件及线路连接看似连接正确。
2操作 系统安装
硬件已经备齐,并且貌似都正常,接下来是系统和软件,先找了一块已有的128G的固态硬盘,笔者先前在国内网上买了一个装win系统的U盘,极其好用,不用担心兼容问题,装上Win10系统检查了一下硬件,特别是显卡与主板能否兼容,发现运行不错,安装社长已经编译好的GPU加速版Gromacs2020.6,运行良好,再次确认硬件完全兼容,没啥问题。因为笔者已有一台win系统的笔记本,并且觉得在Win上远程登陆Linux,进行计算等操作非常方便,并且这台新机器上还可以使用Gaussian进行量化计算,接下来就是考虑在这台新机子上安装Linux系统及相关软件。笔者还有一台普通的24个物理核心的双路服务器,操作系统是Centos7.6,运行Gromacs2018.8还不错,虽然Gromacs2018.8版各方面模拟设计还比较合理,但是不支持加速,速度比较慢,因此决定配置这台新机器,专门负责安装GPU加速版Gromacs2023.1,两者正好互补,正好。此外,提一句,笔者地处美国加州,外网比较方便,文件下载速度比U盘复制的速度都要快,Linux系统及相关软件也较为方便。 首先是尝试安装Centos7.6这个比较常用的系统,用UltroISO制作U盘启动安装盘,由于硬件较新,Centos 7.6软件内核不支持新的硬件,提示kernelpanic not syncing错误,尝试各种方法制作U盘启动盘,均得到相同不兼容提示,因此最终还是放弃了Centos7.6的安装。而当用Centos stream 8 和Centosstream 9这两个系统与新硬件完全兼容,而此时用UltroISO制作U盘启动盘,发现安装时找不到U盘位置,网上很多教程说装前,在开机选择界面,按e键进入编辑窗口,去更正U盘路径,其实用Win32 Disk Imager制作就不会出现此问题,正常安装就行,比较简单。而Win32 Disk Imager制作后的U盘用win系统并不能识别,当完成系统安装,需要还原U盘时,笔者使用能识别该U盘的MAC电脑进行了格式化。 Centos stream 8安装后,进行了NVIDIA驱动及CUDA安装,并且尝试进行Gromacs安装,并未完成,问题比较多,一会儿是python版本不对,一会儿是gcc不行,简单快速的尝试后,还是放弃Centos stream 8。 随即转向了Centosstream 9安装,期待这个最新的系统能兼容最新的硬件和最新的Gromacs2023.1。下载最新的CentOS-Stream-9-latest-x86_64-dvd1.iso (外网真是快,近10G,1分钟左右下载完成),Win32 Disk Imager制作U盘。进入安装界面,进行语言选择,设置root用户及密码,选择Centos stream 9安装类型为workstation,根据社长《VMware 15中安装CentOS 7.6 Linux系统的过程演示》推荐选择计算相关套件,对8T硬盘进行了适当分区/home/为2T,根目录/分了2T,以备存储数据并提供充足的计算空间,等等以上选项设定好之后,安装过程读取数据还是比较快的,三四分钟就完成,感觉这个比Centos7.6要快多了,因此成功安装了Centos stream 9(具体型号Linux5.14.0-312.el9.x86_64)。
3分子模拟软件的安装
笔者是win10远程登陆新装的Centos stream 9,对于一些命令的复制、粘贴及保存非常方便,笔者有一个专门的存储Shell命令的txt文档,收藏经常使用的命令,随时使用快捷键复制粘贴到终端,一些繁琐的命令根本不用逐字输入。
3.1 禁用默认的驱动程序
硬件有两个显卡,一是主板内置的显卡(驱动是centos系统自带的驱动),另一是装的GTX4090显卡(驱动是另外安装的NVIDIA驱动,见下文),禁用的驱动是系统自带的驱动,使得能够使用NVIDIA的驱动,这样Gromacs能够调用。 首先查看默认的驱动程序 就会出来几行信息,接下来就是禁用这种默认的驱动程序, - vim /usr/lib/modprobe.d/dist-blacklist.conf
复制代码# blacklist nvidiafb #注释该行 blacklist nouveau #添加此行 options nouveau modeset=0 #添加此行 保存退出此文档,编辑第二个文档
GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512Mresume=/dev/mapper/cs_tjgpu-swap rd.lvm.lv=cs_tjgpu/rootrd.lvm.lv=cs_tjgpu/swap rhgb quiet rd.driver.blacklist=nouveaunouveau.modeset=0" #其中一行信息添加rd.driver.blacklist=nouveaunouveau.modeset=0,就是开机时按e键进行编辑的那个文档。 - grub2-mkconfig -o /boot/grub2/grub.cfg
复制代码重启机器,如果未禁用默认显卡成功, 再运行如下命令,这些命令还不理解具体含义,再尝试一通如下操作极大可能就行得通: - mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
- dracut /boot/initramfs-$(uname -r).img$(uname -r)
- systemctl set-default multi-user.target
复制代码重启,应该能够禁用成功,即使显示器连接机器,此时Linux的图形界面是没有的,只有命令行的界面。待所有软件安装成功,想要尝试图形界面的话,以下两个命令是开启和关闭图形界面的命令,可留存备用。 - systemctl stop gdm.service
- systemctl start gdm.service
复制代码
再次运行lsmod | grep nouveau命令就没有信息弹出,说明禁用默认网卡成功。
3.2 NVIDIA驱动的安装
Win系统下下载最新的NVIDIA驱动NVIDIA-Linux-x86_64-525.116.04.run文件,上传至Linux系统 - chmod +x *
- ./NVIDIA-Linux-x86_64-525.116.04.run
复制代码安装过程出现如下弹窗均是正常(图1-4):
图3感觉此处yes 或no均可,笔者选的yes。 还有一处弹窗询问是否需要安装32位兼容的数据库,笔者的liunx系统是64位,所以并未选择该选项,最后安装成功会有如下提示(图4): 运行nvidia-smi命令会有如下提示(图5):(如果在计算过程中,每隔10s实时监测GPU使用情况,输入命令:watch -n 10 nvidia-smi) 说明安装成功。
对于新装的系统,--kernel内核是一致的,对于出现不一致的提示,rpm -qa | grep kernel,显示是否存在不一样的内核,若如下图存在,将不一样的删除yum remove kernel-5.14.0-362.el9.x86_64,按照网上教程《CentOS下的CUDA安装和使用指南》修改即可。
虽然此时,NVIDIA的信息显示CUDAVersion:12.0,但是机子上并没有真正有CUDA的功能,如果你去安装GPU加速版Gromacs2023.1并不成功,能成功的只是不加速的普通版。如果您不信,可以进行尝试,熟悉编译过程,此外也正好对比一下GPU加速版与普通版的速度差别。当你按照官方手册安装Gromacs2023.1时,在cmake步骤中不用-DGMX_GPU=CUDA(GPU加速)选项,也能顺利安装完成,此时查看版本信息,用命令gmx -version, 可以看到GPUsupport是disabled状态,说明是普通版(图6)。
因此,想要实现GPU加速版Gromacs2023.1还需要进行额外CUDA的安装。
3.3 CUDA12.1安装
CUDA安装,笔者尝试CUDA11.3,11.4,11.7安装,虽然能够安装成功,但并不能成功编译GPU加速版Gromacs2023.1,Gromacs2022.5,其尝试的过程,在此就不再赘述了,如果您需要尝试,值得一试,说不定能编译成功,并且能迫使你去学习一些编译的相关命令。最终,笔者选择最新版的CUDA12.1进行安装,过程比较简单,去网页下载最新的CUDA12.1, win 下载如下图7,选version7, runfile (local)就行,version 7感觉像是给Centos 7用的,但是大胆尝试就行,这并不影响成功安装CUDA12.1和GPU加速版Gromacs 2023.1。
Liunx界面操作的话,进入一个你的常用目录,直接输入以下命令,
- wget https://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.run
- chmod +x *
- ./cuda_12.1.1_530.30.02_linux.run
复制代码
安装完成后屏幕提示设置环境变量: 加入如下两行: - export PATH="/usr/local/cuda-12.1/bin:$PATH"
- export LD_LIBRARY_PATH="/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH"
复制代码重新加载环境变量, 查看CUDA12.1是否安装成功,弹出信息说明安装成功。
此信息说明安装完成。
4.1 安装GPU加速版Gromacs2023.14.1基础库文件的安装
Centos stream 9系统的cmake, gcc 和g++对于Gromacs2023.1都兼容,使用默认的就行,不用担心不兼容情况,最好不要刻意去更改。 安装cmake3如下 - yum install epel-release
- yum install cmake3
复制代码若出现yum install cmake3 不能安装cmake的情况,去cmake网站下载https://cmake.org/download/,对cmake软件包解压,进入目录,用如下进行安装 - ./bootstrap --prefix=/usr --datadir=share/cmake --docdir=doc/cmake && make
- make install
- cmake -version
复制代码
4.2 安装GPU加速版Gromacs2023.1
可以用win系统下载Gromacs2023.1软件包,然后上传Linux,进行安装。 也可以Linux命令行进行下载,进入你的软件安装常用目录,在命令终端,复制粘贴以下命令: - wget https://ftp.gromacs.org/gromacs/gromacs-2023.1.tar.gz
- tar xfz gromacs-2023.1.tar.gz
- cd gromacs-2023.1
- mkdir build
- cd build
- cmake .. -DCMAKE_INSTALL_PREFIX=/root/soft/gmx_GPU_2023.3 -DGMX_BUILD_OWN_FFTW=ON -DREGRESSIONTEST_DOWNLOAD=ON -DGMX_SIMD=AVX2_256 -DGMX_GPU=CUDA -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.3
- make
- make check
- make install
复制代码其中cmake ..(上一级目录) -DCMAKE_INSTALL_PREFIX=/sob/gmx_GPU_2023.1(指定你要安装到哪个文件夹里,若不指定会安装到默认目录里) -DGMX_BUILD_OWN_FFTW=ON(是否用FFTW库)-DREGRESSIONTEST_DOWNLOAD=ON(如果需要自动下载功能) -DGMX_SIMD=AVX2_256(512指令集) -DGMX_GPU=CUDA(GPU加速) -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-12.1(CUDA路径) 笔者在make时没有加-j,只用单核进行编译,大概花费20分钟左右完成安装,有兴趣的同学可以试试加-j,多核是否更快,应该也不会出现啥问题。安装完成,接下来添加环境变量吧。 重新加载环境变量 查看一下GPU加速版Gromacs2023.1信息,用如下命令
可以看到GPU support是CUDA状态,说明是GPU加速版(图9)。
安装成功,找个例子(附件1)测试一下,加速版每天能跑3208ns(图10)
普通版1325ns(图11),加速近3倍。
而4核普通笔记本Win系统Gromacs2020.6加速版速度是每天428ns(图12),
由此可见,硬件的的加速效果还是比较明显的。而普通双路服务器24个物理核心Gromacs2018.8速度每天能跑110ns(图13),
总体结果核预想的差不多,性能较强的CPU+GPU对模拟的速度影响很大。此外,运行的速度还与Gromacs版本有关,笔者按照上述步骤又尝试安装加速版Gromacs2022.5,其速度是2556 ns/day,明显低于加速版Gromacs2023.1 (3208 ns/day)。
硬件及软件 | 速度ns/day | 耗时hour/day | AMD Ryzen 9 7950X+ RTX® 4090(16个物理核心)+ GPU加速版Gromacs2023.1 | 3208 | 0.007 | AMD Ryzen 9 7950X+ RTX® 4090(16个物理核心)+ GPU加速版Gromacs2022.5 | 2556 | 0.009 | AMD Ryzen 9 7950X+ 普通版Gromacs2023.1 | 1325 | 0.018 | 4核普通笔记本+ GPU加速版Gromacs2020.6 | 428 | 0.056 | Intel(R)Xeon(R) CPU E5-2678 v3 (24个物理核心)+ Gromacs2018.8 | 110 | 0.216 |
安装成功后,在此说两句,如果硬件是比较新的,软件也是选择最新的版本进行安装,安装基本是按照官方指导进行,安装的未出现异常情况。相反,如果考虑Centos的版本,CUDA 版本,Cmake的版本,FFTW版本,gcc版本,g++的版本和Gromacs版本,去更换其中的任何一个的版本,或这或那总会出现问题,折腾的不清,最后还安装不成功,建议不要考虑那么多版本问题,简简单单都选最新的软件,并按照官方手册进行按照,大概率都会安装成功。总之,Centosstream 9+ CUDA12.1+ Gromacs2023.1都选最新的版本,并且按照官方的指导手册,就会安装成功。
总之,由于笔者本人学习计算化学和分子模拟本就凭自己兴趣,随便摸索尝试,本文不失为一个成功的案例,鉴于笔者水平有限,在此借着这个优质的平台进行吐槽和交流,把笔者的计算化学的故事分享给大家,仅供大家批评指正。
|