关注 M r . m a t e r i a l , \color{Violet} \rm Mr.material\ , Mr.material , 更 \color{red}{更} 更 多 \color{blue}{多} 多 精 \color{orange}{精} 精 彩 \color{green}{彩} 彩!
主要专栏内容包括:
†《LAMMPS小技巧》:
‾
\textbf{ \underline{\dag《LAMMPS小技巧》:}}
†《LAMMPS小技巧》: 主要介绍采用分子动力学(
L
a
m
m
p
s
Lammps
Lammps)模拟相关安装教程、原理以及模拟小技巧(难度:
★
\bigstar
★)
††《LAMMPS实例教程—In文件详解》:
‾
\textbf{ \underline{\dag\dag《LAMMPS实例教程—In文件详解》:}}
††《LAMMPS实例教程—In文件详解》: 主要介绍采用分子动力学(
L
a
m
m
p
s
Lammps
Lammps)模拟相关物理过程模拟。(包含:热导率计算、定压比热容计算,难度:
★
\bigstar
★
★
\bigstar
★
★
\bigstar
★)
†††《Lammps编程技巧及后处理程序技巧》:
‾
\textbf{ \underline{\dag\dag\dag《Lammps编程技巧及后处理程序技巧》:}}
†††《Lammps编程技巧及后处理程序技巧》: 主要介绍针对分子模拟的动力学过程(轨迹文件)进行后相关的处理分析(需要一定编程能力。难度:
★
\bigstar
★
★
\bigstar
★
★
\bigstar
★
★
\bigstar
★
★
\bigstar
★)。
††††《分子动力学后处理集成函数—Matlab》:
‾
\textbf{ \underline{\dag\dag\dag\dag《分子动力学后处理集成函数—Matlab》:}}
††††《分子动力学后处理集成函数—Matlab》: 主要介绍针对后处理过程中指定函数,进行包装,方便使用者直接调用(需要一定编程能力,难度:
★
\bigstar
★
★
\bigstar
★
★
\bigstar
★
★
\bigstar
★)。
†††††《SCI论文绘图—Python绘图常用模板及技巧》:
‾
\textbf{ \underline{\dag\dag\dag\dag\dag《SCI论文绘图—Python绘图常用模板及技巧》:}}
†††††《SCI论文绘图—Python绘图常用模板及技巧》: 主要介绍针对处理后的数据可视化,并提供对应的绘图模板(需要一定编程能力,难度:
★
\bigstar
★
★
\bigstar
★
★
\bigstar
★
★
\bigstar
★)。
††††††《分子模拟—Ovito渲染案例教程》:
‾
\textbf{ \underline{\dag\dag\dag\dag\dag\dag《分子模拟—Ovito渲染案例教程》:}}
††††††《分子模拟—Ovito渲染案例教程》: 主要采用
O
v
i
t
o
\rm Ovito
Ovito软件,对
L
a
m
m
p
s
\rm Lammps
Lammps 生成的轨迹文件进行渲染(难度:
★
\bigstar
★
★
\bigstar
★)。
专栏说明(订阅后可浏览对应专栏全部博文):
‾
\color{red}{\textbf{ \underline{专栏说明(订阅后可浏览对应专栏全部博文):}}}
专栏说明(订阅后可浏览对应专栏全部博文):
注意:
\color{red} 注意:
注意:如需只订阅某个单独博文,请联系博主邮箱咨询。
l
a
m
m
p
s
_
m
a
t
e
r
i
a
l
s
@
163.
c
o
m
\rm lammps\_materials@163.com
lammps_materials@163.com
♠
\spadesuit
♠
†
\dag
† 开源后处理集成程序:请关注专栏《LAMMPS后处理——MATLAB子函数合集整理》
♠
\spadesuit
♠
†
\dag
†
†
\dag
† 需要付费定制后处理程序请邮件联系:
l
a
m
m
p
s
_
m
a
t
e
r
i
a
l
s
@
163.
c
o
m
\rm lammps\_materials@163.com
lammps_materials@163.com
安装lammps及相关库的步骤网上很多,这里介绍在前期步骤准备好的情况下,如果in文件中包含反应力 场以及需要通过voronoi库计算应力,如何通过基于gpu架构的kokkos+openmp实现计算加速
下载lammps稳定版本安装包,在同目录下键入命令行:tar -xvzf lammpsxxx.tar.gz
具体方法参照 ubuntu安装cmake_yuanzhoulvpi的博客-CSDN博客_ubuntu安装cmake
安装完成后cmake --version查看安装版本,which cmake 查看安装路径
在解压好的lammps目录下执行如下命令行:
mkdir build_kokkos_cuda
cd build_kokkos_cuda
修改 / c m a k e / p r e s e t s \rm /cmake/presets /cmake/presets 文件夹中的 b a s i c . m a k e \rm basic.make basic.make文件,根据自己需要安装的 p a c k a g e \rm package package 在文件中 进行修改,也可以不修改,后面在命令行中添加即可。将 k o k k o s − c u d a . c m a k e \rm kokkos-cuda.cmake kokkos−cuda.cmake文件中带有 A R C H _ G P U A R C H \rm ARCH\_GPUARCH ARCH_GPUARCH那一行删
在build_kokkos_cuda目录下进行编译,对于多核+gpu,
参考官方网址
3.7. Packages with extra build options — LAMMPS documentation,
编译需要设置如下变量:
其中HOSTARCH以及GPUARCH需要根据自己机器型号参考官网给出的表进行修改, 机器具体型号可参考官网:https://ark.intel.com/content/www/us/en/ark.html#@Processors
使用如下命令行设置上述相关变量:
cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake DKokkos_ENABLE_OPENMP=on -DKokkos_ARCH_SKX=on -DBUILD_OMP=on ../cmake
cmake -C ../cmake/presets/basic.cmake -C ../cmake/presets/kokkos-cuda.cmake DKokkos_ARCH_AMPERE86=on -DKokkos_ENABLE_CUDA=on -DCMAKE_CXX_COMPILER= ${HOME}/lammps/lib/kokkos/bin/nvcc_wrapper ../cmake
注意这里的 n v c c _ w r a p p e r nvcc\_wrapper nvcc_wrapper 需要写绝对路径,一般在安装好的 l a m m p s / l i b / k o k k o s / b i n \rm lammps/lib/kokkos/bin lammps/lib/kokkos/bin 目录下变量设置完成后使用如下命令行进行编译,后面的20为编译时使用的核数:
cmake --build . -- -j20
编译完成后会在 b u i l d _ k o k k o s _ c u d a \rm build\_kokkos\_cuda build_kokkos_cuda 目录下生成可执行文件 l m p \rm lmp lmp
使用 l a m m p s lammps lammps 自带的 e x a m p l e example example 进行测试,找到 / e x a m p l e s / r e a x f f \rm /examples/reaxff /examples/reaxff 目录,将 i n . r e a x f f . r d x \rm in.reaxff.rdx in.reaxff.rdx 文件 中的 p a i r _ s t y l e \rm pair\_style pair_style 改成 r e a x f f / k k \rm reaxff/kk reaxff/kk,在此目录下键入如下命令
mpirun -np 2 /home/groupc/lammps-new/lammps-3Nov2022/build_kokkos_cuda/lmp -k on g 1 sf kk -pk kokkos newton on neigh half -in in.reaxff.rdx
进入安装好的 l a m m p s \rm lammps lammps 的 l i b / v o r o n o i \rm lib/voronoi lib/voronoi 文件夹
在
V
o
r
o
+
+
−
D
o
w
n
l
o
a
d
(
l
b
l
.
g
o
v
)
\rm Voro++ - Download (lbl.gov)
Voro++−Download(lbl.gov)下载voro++压 缩安装包
也可以用wget+网址命令进行下载。下载好后
tar -xvzf voro++-0.4.6.tar.gz
进入解压好的voro++文件夹,执行make,完成后执行sudo make install
cd …退回lib/voronoi目录,键入如下命令:
ln -s voro++-0.4.6/src includelink
ln -s voro++-0.4.6/src liblink
会生成两个软链接includelink和liblink
进入安装好的lammps/src目录,在此目录下安装需要的package,根据自己的需要安装 package。每个package关联的命令见6.1. Available Packages — LAMMPS documentation。这 里不建议通过make yes-all,make no-lib,make no-ext三个命令将所有不需要外接库的 包直接装上,建议make yes-package安装自己需要的那些包,不然后续编译可能会出错。 这里除了需要的简单包,还需要make yes-voronoi,即安装上我们需要的voronoi包。通 过命令make package-status查看包的安装情况。安装完成后执行命令make mpi即可,编 译完成后会在src目录下生成lmp_mpi文件
进入 l a m m p s / e x a m p l e s / v o r o n o i \rm lammps/examples/voronoi lammps/examples/voronoi 文件夹,运行 m p i r u n − n p N l m p _ m p i ( p a t h ) − i n i n . v o r o n o i \rm mpirun -np\ N\ lmp\_mpi(path)\ -in\ in.voronoi mpirun−np N lmp_mpi(path) −in in.voronoi,测试是否安装上。这里 l m p _ m p i ( p a t h ) \rm lmp\_mpi(path) lmp_mpi(path) 指的是需要写出可执行文件的路径, 如果不想这么麻烦,可以把这个路径写到系统变量中即可。
这里编译完成后有两个可执行文件,一个是
b
u
i
l
d
_
k
o
k
k
o
s
_
c
u
d
a
\rm build\_kokkos\_cuda
build_kokkos_cuda 目录下有一个
l
m
p
\rm lmp
lmp文件,另一个 是
l
a
m
m
p
s
/
s
r
c
\rm lammps/src
lammps/src 目录下有一个
l
m
p
_
m
p
i
\rm lmp\_mpi
lmp_mpi 文件。如果你的 in 文件中使用的是反应力场,并且包含
c
o
m
p
u
t
e
v
o
r
o
n
o
i
/
a
t
o
m
\rm compute voronoi/atom
computevoronoi/atom 命令,我建议使用如下方式进行加速并调用
v
o
r
o
n
o
i
\rm voronoi
voronoi 库进行计算,这么 做的原因一方面是因为
k
o
k
k
o
s
\rm kokkos
kokkos 加速主要在gpu完成计算(我的
g
p
u
\rm gpu
gpu 使用率达到97%),而
v
o
r
o
n
o
i
\rm voronoi
voronoi 库的计算主要在cpu上完成,这么做可以发挥gpu及cpu的最大性能;另一方面是因为我 暂时还不知道如何在
k
o
k
k
o
s
+
o
p
e
n
m
p
\rm kokkos+openmp
kokkos+openmp 编译时同时实现
v
o
r
o
n
o
i
\rm voronoi
voronoi 的编译,方式如下: