LAMMPS 安装
LAMMPS 安装
介绍
编译条件
- 兼容 C++11 标准的编译器
- 并行计算库(MPICH 或 OpenMPI 或其他 MPI 实现)
- FFT 傅里叶变换库(FFTW)
- 若平台中若无 MPI 环境,可使用
make mpi-stubs
或安装stubs
package,编译过程中,将提供一个虚拟的 MPI 库,“欺骗” 需要 MPI 环境的包,使其正常编译 - 若没有安装 FFTW,LAMMPS 将会使用自带的 KISS
编译步骤:
- 安装 packages:
make
使用make yes-<package>
;CMake
使用-D PKG_<NAME>=on
- Build LAMMPS
- 安装 packages:
LAMMPS 可在已编译好的基础上添加其他 package 进行补充编译
所有可用的 packages 及其描述:6.1. Available Packages — LAMMPS documentation
packages 细节:6.2. Package details — LAMMPS documentation
Accelerator pcakages(加速器):7.4. Accelerator packages — LAMMPS documentation
- INTEL、GPU、KOKKOS、OPENMP、OPT(OPT、OPENMP 易安装)
安装 GPU package(需确定 GPU 硬件类型及其架构、精度)
1 | # cmake;GPU 硬件类型选择 CUDA;sm_86 或 sm_89 |
- 安装 KOKKOS package:3.7. Packages with extra build options — LAMMPS documentation
1 | # 使用 CUDA (NVIDIA GPU) |
- 安装 LAMMPS Python 模块:2.2. Installation — LAMMPS documentation
1 | # 需以 shared mode 编译 LAMMPS |
- 个人常用 packages
1 | manybody # 多体势(金属体系常用) |
- 参考资料:
- 安装LAMMPS - lammps-tutorial
- Lammps installation - Jia-Xin Zhu
- Linux系统源码编译安装LAMMPS - 我是谁
- 用 Intel® 加速 LAMMPS - Jinzhe Zeng’s Blog
- Linux 软件安装⑥|LAMMPS - Jinzhe Zeng’s Blog
- LAMMPS 所有版本:LAMMPS Source Download Repository
- GitHub - njzjz/lammps-wheel: LAMMPS unofficial Python wheels on PyPi, `pip install lammps`
- OpenMPI 编译:4.1. Quick start: Installing Open MPI — Open MPI 5.0.x documentation
- Build GPU package:3.7. Packages with extra build options — LAMMPS documentation
CMake 编译
适用于较新版本的 LAMMPS;优点:保持 src 目录干净
编译步骤精简
1 | # 导入 Intel oneAPI 套件;Master 可不用 |
在思源平台编译 LAMMPS,得到的可执行文件,其 MPI 是 MPI STUBS,而非 Intel 的 MPI
- 原因:
module load intel-oneapi-mpi/2021.4.0
无法识别 Intel MPI,而module load intel-oneapi-mpi/2021.12.1
可成功识别 Intel MPI(其他版本的也可以)
- 原因:
报错:
clang++: error: unknown argument: '-qopenmp;-qopenmp-simd'
1 | # 编译配置命令: 使用 oneapi.cmake |
- cmake 相关命令及内容
1 | ll cmake/presets # 列出预设 cmake 文件(自行选择安装 package) |
- 配置好后,查看输出到屏幕的
-- <<< Build configuration >>>
编译配置进行检验,示例:- Compilers and Flags
- MPI flags
- FT settings
1 | -- <<< Build configuration >>> |
make 编译
- 编译步骤精简
1 | # 导入 Intel oneAPI 套件;Master 可不用 |
- make 相关命令及内容
1 | cd src # 进入 src 目录 |
检查
编译好后,输入
lmp -h
,检查以下内容- OS(同一平台,不会变)
- Compiler(这个会有差异,如 Intel Classic C++、Intel LLVM C++、GNU C++)
- C++ standard(C++ 11,不会变)
- MPI(这个会有差异,如 Intel (R) MPI Library、LAMMPS MPI STUBS)
- Accelerator configuration(内容一般为空?)
- FFT information(这个会有差异,KISS、MKL)
- Installed packages
- 各种 style options(根据安装的 packages 特性或额外命令,其 options 数目会有不同)
若没有安装任何 packages,最后编译得到的 lmp 可执行程序,查看可用 style options(如下所示),会相对较少
1 | List of individual style options included in this LAMMPS executable |
MC2 LAMMPS 版本编译
LAMMPS 版本:22Aug2018
gibbs_multireplica.ccp 和 gibbs_multireplica.h 需要用到 LAPACK,使用
make intel_cpu
命令,由于 master、超算无 libjpeg 库,因此需修改/注释 Makefile.intel_cpu(文件路径:MAKE/OPTION
) 中的 jpeg 相关选项(共 4 处)
1 | wget https://download.lammps.org/tars/lammps-22Aug2018.tar.gz |
1 | # 检查是否已安装 libjpeg |
相关报错
make mpi
编译报错:对dgelsd_
(LAPACK 里的东西) 未定义的引用;改用make intel_cpu
1 | /usr/bin/ld: gibbs_multireplica.o: in function `LAMMPS_NS::GibbsMultiReplica::inverse(double*, double*, double*, double)': |
- 没有 libjpeg 库:修改/注释 Makefile.intel_cpu 中的 JPEG 相关选项(共 4 处)
1 | ../image.cpp(32): catastrophic error: cannot open source file "jpeglib.h" |
1 | ld: cannot find -ljpeg: No such file or directory |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Seek Another Land!