Centos 安装GPU并行lammps

以下描述了如何在Centos服务器上安装GPU版本的lammps。

安装环境

目标属性
系统Linux/CentOS 7.6
CPU12*Intel® Xeon® CPU E5-2609 v3 @ 1.90GHz
GPU2*NVIDIA Tesla K80/CUDA 8.0

安装准备

1. CUDA
由于是安装GPU版本lammps,首先应确保系统安装有显卡所对应的驱动以及CUDA。并将cuda及其组件加入环境变量。
2. openmpi
yum install openmpi
3. module
yum install environment-modules
需要module来控制openmpi,module avail 查看可用的模块。
4. mpicc&mpicxx相关组件
在后面编译的时候会用到,如果只安装openmpi是无法运行mpicc的。通过yum install openmpi-devel。先通过cd /usr/lib64/openmpi/binls查看是否安装好了openmpi及其相关组件。

[huang@localhost openmpi]$ cd /usr/lib64/openmpi/bin
[huang@localhost bin]$ ls
mpic++     mpif77-vt    ompi-top      orte-server  otfdecompress   shmemrun         vtfilter-mpi
mpicc      mpif90       opal_wrapper  orte-submit  otfinfo         vtc++            vtfort
mpiCC      mpif90-vt    opari         orte-top     otfmerge        vtcc             vtrun
mpicc-vt   mpifort      ortecc        oshcc        otfmerge-mpi    vtCC             vtunify
mpiCC-vt   mpifort-vt   orte-clean    oshfort      otfprint        vtcxx            vtunify-mpi
mpic++-vt  mpirun       orted         oshmem_info  otfprofile      vtf77            vtwrapper
mpicxx     ompi-clean   orte-dvm      oshrun       otfprofile-mpi  vtf90
mpicxx-vt  ompi_info    orte-info     otfaux       otfshrink       vtfilter
mpiexec    ompi-ps      orte-ps       otfcompress  shmemcc         vtfiltergen
mpif77     ompi-server  orterun       otfconfig    shmemfort       vtfiltergen-mpi

如果有mpicc,mpicxx,mpirun,mpiexec,说明安装openmpi及其组件成功。接下来通过
export PATH=$PATH:/usr/lib64/openmpi/bin将其导入环境变量。ps.如果是32位系统,上述lib64改成lib即可。module add mpi/openmpi-x86_64来加载openmpi模块。
5* 安装fftw
yum install fftw
6* 更新软件和内核
yum update
5,6两步非必要,但是很多其他教程都执行了类似的步骤。

编辑lammps GPU模块

首先在lammps官网下载最新的lammps安装包。 当前稳定版应该是Stable version (12 Dec 2018)。主文件夹下,建立安装lammps的文件夹,mkdir lammps_install。将下载的lammps-stable.tar.gz 拷贝到这个文件夹。通过tar -xzvf lammps*.tar.gz解压。得到lammps-12Dec18 文件夹。
通过 cd lammps-12Dec18/lib/gpu 进入gpu文件夹。编辑Makefile.linux。vi Makefile.linux修改如下几项。

CUDA_HOME = /usr/local/cuda              # 这里是安装cuda的文件夹
NVCC=nvcc                                #$(CUDA_HOME)/bin/nvcc
CUDA_ARCH=-arch=sm_37       #这里是显卡对应的型号,可以去cuda官网查看,一定不能弄错。K80对应的是sm_37
CUDA_PRECISION=_D_DOUBLE_DOUBLE  #计算精度

修改完以后保存。接下来通过make -f Makefile.linux -j 20 编译。可以生成 nvc_get_devices可执行文件,可以通过./nvc_get_devices查看GPU信息,并验证是否正确安装GPU模块。

安装lammps

cd lammps-12Dec18/src进入src文件夹。src文件夹和lib文件夹都在 lammps-12Dec18文件夹下。

$ cd  ../src
$ make no-all
$ make yes-asphere yes-rigid yes-colloid yes-class2 yes-molecule yes-kspace yes-manybody yes-dipole yes-gpu #选择所需要的模块
$ make mpi -j 20

之后会生成一个lmp_mpi的可执行文件。测试:

$ cd lammps-12Dec18/examples/accelerate
# mpirun --allow-run-as-root -n 2 ../../src/lmp_mpi -sf gpu -in in.rhodo

似乎是必须加上**–allow-run-as-root**才能写入lammps文件,否则只运行,不能写入。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部