使用LAMMPS軟件進(jìn)行工業(yè)仿真
本文介紹如何使用E-HPC集群運(yùn)行LAMMPS開(kāi)源仿真軟件,以3d Lennard-Jones melt模型進(jìn)行工業(yè)仿真,并通過(guò)可視化的方式查看仿真結(jié)果。
背景信息
LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是一款經(jīng)典分子動(dòng)力學(xué)軟件。 LAMMPS包含的勢(shì)函數(shù)可用于固體材料(金屬、半導(dǎo)體)、軟物質(zhì)(生物大分子,聚合物)、粗粒化或介觀尺度模型體系。
E-HPC作為高性能且彈性的計(jì)算集群,可為復(fù)雜工程和力學(xué)結(jié)構(gòu)提供輔助分析,通過(guò)大量數(shù)據(jù)仿真模擬優(yōu)化產(chǎn)品結(jié)構(gòu)和性能,目前在工業(yè)仿真領(lǐng)域的應(yīng)用越來(lái)越多。
準(zhǔn)備工作
創(chuàng)建E-HPC集群。具體操作,請(qǐng)參見(jiàn)使用向?qū)?chuàng)建集群。
配置集群時(shí),本文使用的軟硬件參數(shù)配置示例如下:
參數(shù)
說(shuō)明
硬件參數(shù)
部署方式為標(biāo)準(zhǔn),包含2個(gè)管控節(jié)點(diǎn),1個(gè)計(jì)算節(jié)點(diǎn)和1個(gè)登錄節(jié)點(diǎn),其中計(jì)算節(jié)點(diǎn)使用vCPU≥32的實(shí)例規(guī)格(例如ecs.c7.8xlarge)。
說(shuō)明本示例計(jì)算量不大,實(shí)際使用中可以依據(jù)作業(yè)計(jì)算量增加計(jì)算節(jié)點(diǎn)的數(shù)量。
軟件參數(shù)
鏡像選擇CentOS 7.6公共鏡像,調(diào)度器選擇pbs,并打開(kāi)VNC開(kāi)關(guān)。
創(chuàng)建集群用戶(hù)。具體操作,請(qǐng)參見(jiàn)創(chuàng)建用戶(hù)。
集群用戶(hù)用于登錄集群,進(jìn)行編譯軟件、提交作業(yè)等操作,本文創(chuàng)建的用戶(hù)示例如下:
用戶(hù)名:testuser
用戶(hù)組:sudo權(quán)限組
安裝軟件。具體操作,請(qǐng)參見(jiàn)安裝軟件。
需安裝的軟件如下:
lammps-openmpi,版本為31Mar17
openmpi,版本為1.10.7
vmd,版本為1.9.3
步驟一:連接集群
選擇以下一種方式連接集群。本文使用的用戶(hù)名為testuser,連接集群后會(huì)默認(rèn)登錄到/home/testuser
。
通過(guò)客戶(hù)端
該方式僅支持使用PBS調(diào)度器的集群。操作前,請(qǐng)確保您已下載安裝E-HPC客戶(hù)端,且已配置客戶(hù)端所需環(huán)境。具體操作,請(qǐng)參見(jiàn)配置客戶(hù)端所需環(huán)境。
打開(kāi)并登錄E-HPC客戶(hù)端。
在客戶(hù)端左側(cè)導(dǎo)航欄,單擊會(huì)話管理。
在會(huì)話管理頁(yè)面的右上角,單擊terminal,打開(kāi)Terminal窗口。
通過(guò)控制臺(tái)
在頂部菜單欄左上角處,選擇地域。
在左側(cè)導(dǎo)航欄,單擊集群。
在集群頁(yè)面,找到目標(biāo)集群,單擊遠(yuǎn)程連接。
在遠(yuǎn)程連接頁(yè)面,輸入集群用戶(hù)名、登錄密碼和端口,單擊ssh連接。
步驟二:提交作業(yè)
執(zhí)行以下命令創(chuàng)建算例文件,算例文件命名為lj.in。
vim lj.in
算例內(nèi)容示例如下:
# 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
執(zhí)行以下命令創(chuàng)建作業(yè)腳本文件,腳本文件命名為lammps.pbs。
vim lammps.pbs
作業(yè)腳本內(nèi)容示例如下:
說(shuō)明以下示例使用1個(gè)計(jì)算節(jié)點(diǎn)的32 vCPU,使用32個(gè)MPI任務(wù)進(jìn)行高性能計(jì)算。請(qǐng)根據(jù)實(shí)際計(jì)算節(jié)點(diǎn)規(guī)格配置vCPU數(shù),算力要求vCPU≥32。
#!/bin/sh #PBS -l select=1:ncpus=32:mpiprocs=32 #PBS -j oe export MODULEPATH=/opt/ehpcmodulefiles/ #module命令依賴(lài)的環(huán)境變量 module load lammps-openmpi/31Mar17 module load openmpi/1.10.7 echo "run at the beginning" mpirun lmp -in ./lj.in #請(qǐng)根據(jù)實(shí)際修改lj.in文件的路徑
執(zhí)行以下命令提交作業(yè)。
qsub lammps.pbs
預(yù)期返回如下,表示生成的作業(yè)ID為0.scheduler。
0.scheduler
步驟三:查看作業(yè)結(jié)果
執(zhí)行以下命令查看作業(yè)結(jié)果。
cat lammps.pbs.o0
說(shuō)明如果您不指定作業(yè)標(biāo)準(zhǔn)輸出路徑,則默認(rèn)按照調(diào)度器行為生成輸出文件。默認(rèn)作業(yè)結(jié)果文件輸出
/home/<用戶(hù)名>/
目錄下,本示例中的作業(yè)結(jié)果文件為/home/testuser/lammps.pbs.o0
。預(yù)期返回如下:
...... 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可視化查看作業(yè)結(jié)果。
打開(kāi)VNC。
說(shuō)明請(qǐng)確保集群所屬安全組已打開(kāi)VNC所需端口。控制臺(tái)操作時(shí)系統(tǒng)會(huì)自動(dòng)打開(kāi)12016端口,客戶(hù)端操作時(shí),請(qǐng)您自行打開(kāi)端口,首個(gè)VNC窗口使用12017端口,如果有多個(gè)用戶(hù)使用VNC,則端口號(hào)按順序遞增。
通過(guò)客戶(hù)端
在客戶(hù)端的左側(cè)導(dǎo)航欄,單擊會(huì)話管理。
在會(huì)話管理頁(yè)面的右上角,單擊VNC,打開(kāi)VNC窗口。
通過(guò)控制臺(tái)
在彈性高性能計(jì)算控制臺(tái)的左側(cè)導(dǎo)航欄,單擊集群。
在集群頁(yè)面,找到目標(biāo)集群,單擊更多 > VNC。
使用VNC遠(yuǎn)程連接可視化服務(wù)。具體操作,請(qǐng)參見(jiàn)連接可視化服務(wù)。
在VNC窗口中,選擇Application>System Tools>Terminal。
運(yùn)行
/opt/vmd/1.9.3/vmd
打開(kāi)VMD軟件。在VMD Main對(duì)話框中,選擇File > New Molecule...。
單擊Filename處對(duì)應(yīng)的Browse...,選擇結(jié)果文件sample.xyz。
說(shuō)明sample.xyz文件的路徑為/home/testuser/sample.xyz。
單擊Load,可在VMD 1.9.3 OpenGL Display窗口查看可視化結(jié)果。