本文介绍如何使用E-HPC集群运行LAMMPS开源仿真软件,以3d Lennard-Jones melt模型进行工业仿真,并通过可视化的方式查看仿真结果。
背景信息
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是一款经典分子动力学软件。 LAMMPS包含的势函数可用于固体材料(金属、半导体)、软物质(生物大分子,聚合物)、粗粒化或介观尺度模型体系。
E-HPC作为高性能且弹性的计算集群,可为复杂工程和力学结构提供辅助分析,通过大量数据仿真模拟优化产品结构和性能,目前在工业仿真领域的应用越来越多。
准备工作
- 创建E-HPC集群。具体操作,请参见使用向导创建集群。 - 配置集群时,本文使用的软硬件参数配置示例如下: - 参数 - 说明 - 硬件参数 - 部署方式为标准,包含2个管控节点,1个计算节点和1个登录节点,其中计算节点使用vCPU≥32的实例规格(例如ecs.c7.8xlarge)。 说明- 本示例计算量不大,实际使用中可以依据作业计算量增加计算节点的数量。 - 软件参数 - 镜像选择CentOS 7.6公共镜像,调度器选择pbs,并打开VNC开关。 
- 创建集群用户。具体操作,请参见创建用户。 - 集群用户用于登录集群,进行编译软件、提交作业等操作,本文创建的用户示例如下: - 用户名:testuser 
- 用户组:sudo权限组 
 
- 安装软件。具体操作,请参见安装软件。 - 需安装的软件如下: - lammps-openmpi,版本为31Mar17 
- openmpi,版本为1.10.7 
- vmd,版本为1.9.3 
 
步骤一:连接集群
选择以下一种方式连接集群。本文使用的用户名为testuser,连接集群后会默认登录到/home/testuser。
- 通过客户端 - 该方式仅支持使用PBS调度器的集群。操作前,请确保您已下载安装E-HPC客户端,且已配置客户端所需环境。具体操作,请参见配置客户端所需环境。 - 打开并登录E-HPC客户端。 
- 在客户端左侧导航栏,单击会话管理。 
- 在会话管理页面的右上角,单击terminal,打开Terminal窗口。 
 
- 通过控制台 - 登录弹性高性能计算控制台。 
- 在顶部菜单栏左上角处,选择地域。 
- 在左侧导航栏,单击集群。 
- 在集群页面,找到目标集群,单击远程连接。 
- 在远程连接页面,输入集群用户名、登录密码和端口,单击ssh连接。 
 
步骤二:提交作业
- 执行以下命令创建算例文件,算例文件命名为lj.in。 - vim lj.in- 算例内容示例如下: - # 3d Lennard-Jones melt variable x index 1 variable y index 1 variable z index 1 variable xx equal 20*$x variable yy equal 20*$y variable zz equal 20*$z units lj atom_style atomic lattice fcc 0.8442 region box block 0 ${xx} 0 ${yy} 0 ${zz} create_box 1 box create_atoms 1 box mass 1 1.0 velocity all create 1.44 87287 loop geom pair_style lj/cut 2.5 pair_coeff 1 1 1.0 1.0 2.5 neighbor 0.3 bin neigh_modify delay 0 every 20 check no fix 1 all nve dump 1 all xyz 100 sample.xyz run 10000
- 执行以下命令创建作业脚本文件,脚本文件命名为lammps.pbs。 - vim lammps.pbs- 作业脚本内容示例如下: 说明- 以下示例使用1个计算节点的32 vCPU,使用32个MPI任务进行高性能计算。请根据实际计算节点规格配置vCPU数,算力要求vCPU≥32。 - #!/bin/sh #PBS -l select=1:ncpus=32:mpiprocs=32 #PBS -j oe export MODULEPATH=/opt/ehpcmodulefiles/ #module命令依赖的环境变量 module load lammps-openmpi/31Mar17 module load openmpi/1.10.7 echo "run at the beginning" mpirun lmp -in ./lj.in #请根据实际修改lj.in文件的路径
- 执行以下命令提交作业。 - qsub lammps.pbs- 预期返回如下,表示生成的作业ID为0.scheduler。 - 0.scheduler
步骤三:查看作业结果
- 执行以下命令查看作业结果。 - cat lammps.pbs.o0说明- 如果您不指定作业标准输出路径,则默认按照调度器行为生成输出文件。默认作业结果文件输出 - /home/<用户名>/目录下,本示例中的作业结果文件为- /home/testuser/lammps.pbs.o0。- 预期返回如下: - ...... Per MPI rank memory allocation (min/avg/max) = 3.777 | 3.801 | 3.818 Mbytes Step Temp E_pair E_mol TotEng Press 0 1.44 -6.7733681 0 -4.6134356 -5.0197073 10000 0.69814375 -5.6683212 0 -4.6211383 0.75227555 Loop time of 9.81493 on 32 procs for 10000 steps with 32000 atoms Performance: 440145.641 tau/day, 1018.856 timesteps/s 97.0% CPU use with 32 MPI tasks x no OpenMP threads MPI task timing breakdown: Section | min time | avg time | max time |%varavg| %total --------------------------------------------------------------- Pair | 6.0055 | 6.1975 | 6.3645 | 4.0 | 63.14 Neigh | 0.90095 | 0.91322 | 0.92938 | 0.9 | 9.30 Comm | 2.1457 | 2.3105 | 2.4945 | 6.9 | 23.54 Output | 0.16934 | 0.1998 | 0.23357 | 4.3 | 2.04 Modify | 0.1259 | 0.13028 | 0.13602 | 0.8 | 1.33 Other | | 0.06364 | | | 0.65 Nlocal: 1000 ave 1022 max 986 min Histogram: 5 3 6 3 4 4 2 2 1 2 Nghost: 2705.62 ave 2733 max 2668 min Histogram: 1 1 0 3 7 5 4 5 4 2 Neighs: 37505 ave 38906 max 36560 min Histogram: 7 3 2 4 5 2 3 3 2 1 Total # of neighbors = 1200161 Ave neighs/atom = 37.505 Neighbor list builds = 500 Dangerous builds not checked Total wall time: 0:00:10
- 使用VNC可视化查看作业结果。 - 打开VNC。 说明- 请确保集群所属安全组已打开VNC所需端口。控制台操作时系统会自动打开12016端口,客户端操作时,请您自行打开端口,首个VNC窗口使用12017端口,如果有多个用户使用VNC,则端口号按顺序递增。 - 通过客户端 - 在客户端的左侧导航栏,单击会话管理。 
- 在会话管理页面的右上角,单击VNC,打开VNC窗口。 
 
- 通过控制台 - 在弹性高性能计算控制台的左侧导航栏,单击集群。 
- 在集群页面,找到目标集群,单击更多 > VNC。 
- 使用VNC远程连接可视化服务。具体操作,请参见连接可视化服务。 
 
 
- 在VNC窗口中,选择Application>System Tools>Terminal。 
- 运行 - /opt/vmd/1.9.3/vmd打开VMD软件。
- 在VMD Main对话框中,选择File > New Molecule...。 
- 单击Filename处对应的Browse...,选择结果文件sample.xyz。 说明- sample.xyz文件的路径为/home/testuser/sample.xyz。 
- 单击Load,可在VMD 1.9.3 OpenGL Display窗口查看可视化结果。 