1软件介绍,appbrand是什么文件

文件 6
1软件介绍 LAMMPS即Large-scaleAtomic/MolecularMassivelyParallelSimulator,可以翻译为大规模原子分子并行模拟器,主要用于分子动力学相关的一些计算和模拟工作,一般来讲,分子动力学所涉及到的领域,LAMMPS代码也都涉及到了。
2安装环境 lammps版本:lammps-16Mar18操作系统:Ubuntu16.04编译器:GCCcuda:9.0mpi:openmpi-3.0-gnu 3安装步骤3.1CUDA 到/cuda-downloads下载对应操作系统的cuda安装包。
下载后执行:chmod+xcuda_9.0.176_384.81_linux.run#使之具有可执行权限sudoshcuda_9.0.176_384.81_linux.run 然后按照相关的提示输入安装路径即可,本文选择默认路径。
详细安装步骤可以参考CUDA9安装手册。
环境变量:cat/etc/profile.d/cuda-env.shexportPATH=/usr/local/cuda-9.0/bin:$PATHexportLD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATHexportC_INCLUDE_PATH=/usr/local/cuda-9.0/include:$C_INCLUDE_PATH 3.2MPI 目前lammps在gpu环境下选择openmpi-3.0-gnu可以安装成功。
下载链接:/software/ompi/v3.0/
1 3.2.1OpenMPI简介 OpenMPI是一个免费的、开源的MPI实现,兼容MPI-1和MPI-2标准。
OpenMPI由开源社区开发维护,并具有很高的性能。
OpenMPI目前最新版本为openmpi-3.0.0,官方网站:/,可从官网免费下载Openmpi源码安装包。
CUDA-awareMPI:支持CUDA-aware意味着MPI库可以直接接收和发送GPU显存数据,以下版本及之后的版本都支持。
*MVAPICH21.8/1.9b*OpenMPI1.7*CRAYMPI(MPT5.6.2)*IBMPlatformMPI(8.3)*SGIMPI(1.08) 3.2.2安装OpenMPI 以OpenMPI3.0.0为例:$tarzxvfopenmpi-3.0.0.tar.gz$cdopenmpi-3.0.0$./configure--prefix=/public/software/mpi/openmpi-3.0.0--enable-mpirunprefix-by-default--without-psmCC=CXX=g++FC=gfortranF77=gfortran-with-cuda=/usr/local/cuda-9.0$make-j8#8个进程并行编译$makeinstall 设置环境变量脚本:vim/public/software/profile.d/openmpi-3.0.0-env.sh exportMPI_HOME=/public/software/mpi/openmpi-3.0.0exportPATH=${MPI_HOME}/bin:${PATH}exportLD_LIBRARY_PATH=${MPI_HOME}/lib:${LD_LIBRARY_PATH}exportMANPATH=${MPI_HOME}/share/man:${MANPATH} ➢Tips
1.OpenMPI安装会自动检测编译节点本地可用的通信网络设备,如需支持InfiniBand网络,请确保编译MPI前该节点已安装OFED驱动。

2.执行OpenMPI安装目录$MPI_HOME/bin下的ompi_info命令,可查询当前OpenMPI配置信息。

2 3.2.3编译MPI程序 OpenMPI提供了C/C++,Fortran等语言的MPI编译器,如下表所示: 语言类型 MPI编译器
C C++ mpicxx Fortran77 mpif77 Fortran90 mpif90 MPI编译器是对底层编译器的一层包装,通过-show参数可以查看实际使用的编译器。
比如: $-show-I/public/software/mpi/openmpi-3.0.0/include-pthreadL/public/software/mpi/openmpi-3.0.0-intel/lib-lmpi-ldl-lmexport-dynamic-lrt-lnsl-lutil 编译程序示例: -lnuma -Wl,-- $source/public/software/profile.d/openmpi-3.0.0-env.sh$-ohellohello.c$mpif90-ohellohello.f90 3.2.4运行MPI程序 3.2.4.1基本命令 OpenMPI使用自带的OpenRTE进程管理器,启动命令为mpirun/mpiexec/orterun,基本格式如下:$mpirun-npN-hostfile ➢-npN:运行N个进程➢-hostfile:指定计算节点,文件格式如下: node1slots=8node2slots=8 slots=8代表可在该节点上执行8个进程,也可将node1和node2分别写8行。
3.2.4.2选择通信网络 OpenMPI支持多种通信协议,如以太网TCP、IB网络、内存共享等,可通过设置--mcabtl参数进行选择。
如:$mpirun-np12-hostfilehosts--mcabtlself,sm,openib./program 将在节点内使用共享内存,节点间使用IB网络通信,这种方式通信效率较高。

3 ➢mca参数说明  --mcabtlself,tcp  --mcabtlself,sm  --mcabtlself,openib  --mcabtl_tcp_if_includeeth0 有接口(包括IPoIB)  --mcaorte_rsh-agentrsh 使用以太网TCP/IP协议通信单节点运行时使用共享内存,效率较高有Infiniband设备时,使用IB通信以太网通信时使用eth0接口,默认同时使用所 指定节点间通信使用rsh,默认为ssh ➢Tips  --mcabtl参数中必须含有self,单进程自己与自己通信  可同时指定多个btl参数,如--mcabtlself,sm,openib,最先出现者优先级较高  IPoIB设定:--mcabtlself,tcp--mcabtl_tcp_if_includeib0,当然更直接的方式是 在hostfile里使用IB网卡的IP地址或对应的hostname 3.3Lammps安装 下载Lammps: wgethttp://lammps.sandia.gov/tars/lammps-stable.tar.gz解压下载文件: tar-xzvflammps-stable.tar.gzcdlammps-16Mar18编辑配置文件,在VoltaV100环境下编译: visrc/MAKE/OPTIONS/Makefile.kokkos_cuda_mpi---------------#KOKKOS_ARCH=Kepler35KOKKOS_ARCH=Volta70-------------------编译Lammps: #editforvolta $cdsrc$makeclean-all
4 $makeno-all$makeno-lib$makeyes-manybodyyes-moleculeyes-replicayes-kspaceyes-asphereyes-rigidyes-miscyes-user-ompyes-user-reaxc$makeyes-kokkos$makekokkos_cuda_mpi-j32 3.4Lammps基于NGCDocker安装 在NVIDIAGPUCloud(NGC)中,包含Lammps的docker镜像文件,可以直接下载,导入Linuxdocker环境就可以使用。
注册NGC 填写注册信息:
5 登录NGC系统注册NGC后,登录NGC系统,就可以看到下图中所有的HPCApps的dockerimage镜像。

6 Dockerimage下载下载image镜像之前,先要获取APIkey: 点击GetAPIKey,即可获得:
7 点击“GenerateAPIKey”,并点击弹出对话框中的“Confirm”,系统会生成一个APIKey作为nvcr.io的登录密码,并复制该Password,用于登录: 在Linux客户端登录方式如下,作者是在DGX-1平台下,Ubuntu16.04的系统演示的,如下:
8 登录成功以后,就可以进行Lammps容器下载,如下: 将命令“dockerpullnvcr.io/hpc/lammps:patch23Oct2017”复制到Linuxterminal:启动docker并运行Lammps 使用nvidia-docker命令查看Lammps容器镜像信息。

9 启动docker镜像:dgxsa@dgx1:~$nvidia-dockerrun--nameMyLammps-v/home/dgxsa/chengyi/share:/data-itnvcr.io/hpc/lammps:patch23Oct2017/bin/bash dockerrunOptions➔-i-tor-it:交互式,连接到一个"tty"➔--name:给容器命名➔-v/home/dgxsa/chengyi/share:/data:将host主机的/home/dgxsa/chengyi/myshare存储目 录映射到容器的data目录。
启动容器以后,就可以像在一台Linux服务器上操作了,里面已经配置好了所有运行环境,如果需要安装其他软件,可以使用命令:$sudoapt-getupdate$sudoapt-getinstallxxxx进行安装。
如果想退出容器,可以使用命令:Ctrl+D如果想删除容器,可以使用命令:nvidia-dockerrm7b2dfc28da4e;7b2dfc28da4e为docker-ID如果想退出容器登录界面,但保持容器后台运行,可以使用命令:Ctrl+
P,然后Ctrl+Q 10 4标准算例4.1准备算例 使用的Lammps算例in.lj文件如下: #3dLennard-Jonesmelt #Enableelpackagesmandline variablevariablevariablevariable xindex4yindex4zindex4iterationsindex1000 variablevariablevariable xxequal20*$xyyequal20*$yzzequal20*$z units lj atom_styleatomic lattice 0.8442 region boxblock0${xx}0${yy}0${zz} create_box1box create_atoms 1box mass 11.0 velocityallcreate1.4487287loopgeom pair_stylelj/cut2.5pair_coeff111.01.02.5 neighbor0.3bin neigh_modify delay0every20checkno fix 1allnve run ${iterations} 4.2手动运行算例 运行命令及结果如下:root@60e90047d:/mnt/lammps#mpirun--allow-run-as-root-n16--map-bycore/mnt/lammps-22Aug18/src/lmp_kokkos_cuda_mpi-kong2t2-sfkk-pkkokkosbinsizemdevice-vx16-vy8-vz8-vt10-inin.lj 11 参数解释:-kokkoson/off...:turnKOKKOSmodeonoroff(-k),g2t2分别表示2块GPU,每个进程包含2个线程。
-packagestyle...:invokemand(-pk)-suffixgpu/intel/opt/omp:stylesuffixtoapply(-sf) 更多的参数可以运行lmp_kokkos_cuda_mpi-h查阅。
4.3PBS脚本范例 建立提交脚本lammps.pbs #PBS-Nlammps_test #PBS-lnodes=2:gpus=3:ppn=16#PBS-lwalltime=10:00:00#PBS-S/bin/bash#PBS-joe #2个节点,每个节点2块GPU,16核CPU cd$PBS_O_WORKDIRNP=`cat$PBS_NODEFILE|wc-l`NN=`cat$PBS_NODEFILE|uniq–c|wc–l`#节点数PPN=`cat$PBS_NODEFILE|uniq-c|sed-n'1,1p'|awk'{print$1}'`#每个节点的进程数,本例中PPN=
4 mpirun-n$NP--map-bycore/mnt/lammps-22Aug18/src/lmp_kokkos_cuda_mpi-kong2t2-sfkk-pkkokkosbinsizemdevice-vx16-vy8-vz8-vt10-inin.lj 提交作业,并查看是否正确运行。
qsublammps.pbsqstat 4.4slurm脚本范例 建立提交脚本batch.lammps#!
/bin/bash 12 #SBATCH--job-name=lammps_test#SBATCH--nodes=2#总的节点数#SBATCH--ntasks=32#总的CPU核数#SBATCH--partition=hsw_v100_32g#集群的队列名称#SBATCH--gres=gpu:2#SBATCH--time=01:00:00cd$PBS_O_WORKDIRLAMMPS=/mnt/lammps-22Aug18/src/lmp_kokkos_cuda_mpiINPUT=in.ljmpirun-n$NP--map-bycore$LAMMPS-kong2t2-sfkk-pkkokkosbinsizemdevice-vx16-vy8-vz8-vt10-in$INPUT>log.out2>&
1 关于lammps的slurm运行脚本中指定GPU,需要在slurm.conf中配置,需要把下面的配置文件slurm.conf中关于genericresource(gres)的配置注释去掉:[chengyi@psgclustertest]$cat/cm/pute-image/etc/slurm/slurm.conf|grepGresTypes#GresTypes=gpu 13

标签: #能干 #文件 #文件夹 #编程器 #文件 #文件 #文件夹 #灰色