全部產品
Search
文件中心

Elastic High Performance Computing:使用LAMMPS軟體進行工業模擬

更新時間:Jul 06, 2024

本文介紹如何使用E-HPC叢集運行LAMMPS開源模擬軟體,以3d Lennard-Jones melt模型進行工業模擬,並通過可視化的方式查看模擬結果。

背景資訊

LAMMPS(Large-scale Atomic/Molecular Massively Parallel Simulator)是一款經典分子動力學軟體。 LAMMPS包含的勢函數可用於固體材料(金屬、半導體)、軟物質(生物大分子,彙總物)、粗粒化或介觀尺度模型體系。

E-HPC作為高效能且彈性的計算叢集,可為複雜工程和力學結構提供輔助分析,通過大量資料模擬類比最佳化產品結構和效能,目前在工業模擬領域的應用越來越多。

準備工作

  1. 建立E-HPC叢集。具體操作,請參見使用嚮導建立叢集

    配置叢集時,本文使用的軟硬體參數配置樣本如下:

    參數

    說明

    硬體參數

    部署方式為標準,包含2個管控節點,1個計算節點和1個登入節點,其中計算節點使用vCPU≥32的執行個體規格(例如ecs.c7.8xlarge)。

    說明

    本樣本計算量不大,實際使用中可以依據作業計算量增加計算節點的數量。

    軟體參數

    鏡像選擇CentOS 7.6公用鏡像,調度器選擇pbs,並開啟VNC開關。

  2. 建立叢集使用者。具體操作,請參見建立使用者

    叢集使用者用於登入叢集,進行編譯軟體、提交作業等操作,本文建立的使用者樣本如下:

    • 使用者名稱:testuser

    • 使用者組:sudo許可權組

  3. 安裝軟體。具體操作,請參見安裝軟體

    需安裝的軟體如下:

    • lammps-openmpi,版本為31Mar17

    • openmpi,版本為1.10.7

    • vmd,版本為1.9.3

步驟一:串連叢集

選擇以下一種方式串連叢集。本文使用的使用者名稱為testuser,串連叢集後會預設登入到/home/testuser

  • 通過用戶端

    該方式僅支援使用PBS調度器的叢集。操作前,請確保您已下載安裝E-HPC用戶端,且已配置用戶端所需環境。具體操作,請參見配置用戶端所需環境

    1. 開啟並登入E-HPC用戶端。

    2. 在用戶端左側導覽列,單擊會話管理

    3. 會話管理頁面的右上方,單擊terminal,開啟Terminal視窗。

  • 通過控制台

    1. 登入彈性高效能運算控制台

    2. 在頂部功能表列左上方處,選擇地區。

    3. 在左側導覽列,單擊叢集

    4. 叢集頁面,找到目的地組群,單擊遠端連線

    5. 遠端連線頁面,輸入集群使用者名稱、登入密碼和連接埠,單擊ssh串連

步驟二:提交作業

  1. 執行以下命令建立算例檔案,算例檔案命名為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
  2. 執行以下命令建立作業指令檔,指令檔命名為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檔案的路徑
  3. 執行以下命令提交作業。

    qsub lammps.pbs

    預期返回如下,表示產生的作業ID為0.scheduler。

    0.scheduler

步驟三:查看作業結果

  1. 執行以下命令查看作業結果。

    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
  2. 使用VNC可視化查看作業結果。

    1. 開啟VNC。

      說明

      請確保叢集所屬安全性群組已開啟VNC所需連接埠。控制台操作時系統會自動開啟12016連接埠,用戶端操作時,請您自行開啟連接埠,首個VNC視窗使用12017連接埠,如果有多個使用者使用VNC,則連接埠號碼按順序遞增。

      • 通過用戶端

        1. 在用戶端的左側導覽列,單擊會話管理

        2. 在會話管理頁面的右上方,單擊VNC,開啟VNC視窗。

      • 通過控制台

        1. 彈性高效能運算控制台的左側導覽列,單擊叢集

        2. 叢集頁面,找到目的地組群,單擊更多 > VNC

        3. 使用VNC遠端連線可視化服務。具體操作,請參見串連可視化服務

    2. 在VNC視窗中,選擇Application>System Tools>Terminal

    3. 運行/opt/vmd/1.9.3/vmd開啟VMD軟體。

    4. 在VMD Main對話方塊中,選擇File > New Molecule...

    5. 單擊Filename處對應的Browse...,選擇結果檔案sample.xyz。

      說明

      sample.xyz檔案的路徑為/home/testuser/sample.xyz。

    6. 單擊Load,可在VMD 1.9.3 OpenGL Display視窗查看可視化結果。

      lammps-vnd