Centos 安装GPU并行lammps
以下描述了如何在Centos服务器上安装GPU版本的lammps。
安装环境
| 目标 | 属性 |
|---|---|
| 系统 | Linux/CentOS 7.6 |
| CPU | 12*Intel® Xeon® CPU E5-2609 v3 @ 1.90GHz |
| GPU | 2*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/bin,ls查看是否安装好了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文件,否则只运行,不能写入。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
