安装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
修改 /cmake/presets\rm /cmake/presets/cmake/presets 文件夹中的basic.make\rm basic.makebasic.make文件,根据自己需要安装的 package\rm packagepackage 在文件中 进行修改,也可以不修改,后面在命令行中添加即可。将kokkos−cuda.cmake\rm kokkos-cuda.cmakekokkos−cuda.cmake文件中带有 ARCH_GPUARCH\rm ARCH\_GPUARCHARCH_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 ../cmakecmake -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
注意这里的 nvcc_wrappernvcc\_wrappernvcc_wrapper 需要写绝对路径,一般在安装好的lammps/lib/kokkos/bin\rm lammps/lib/kokkos/binlammps/lib/kokkos/bin 目录下变量设置完成后使用如下命令行进行编译,后面的20为编译时使用的核数:
cmake --build . -- -j20
编译完成后会在 build_kokkos_cuda\rm build\_kokkos\_cudabuild_kokkos_cuda 目录下生成可执行文件 lmp\rm lmplmp
使用 lammpslammpslammps 自带的 exampleexampleexample 进行测试,找到 /examples/reaxff\rm /examples/reaxff/examples/reaxff 目录,将 in.reaxff.rdx\rm in.reaxff.rdxin.reaxff.rdx 文件 中的pair_style\rm pair\_stylepair_style 改成 reaxff/kk\rm reaxff/kkreaxff/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