Linux系统源码编译安装LAMMPS
貌似可以apt安装,但是不建议,因为自己一般用的包很少,而且movie这些命令需要一些依赖,GPU、Python配置也需要
编译安装的源码在这里,也可以看 官网安装,GPU加速,python接口
官网很详细,也可以去github提问,作者回复很不错
源码编译安装
如果不知道git,百度
github很慢,建议第二个;其实我最建议的是直接在 github-release 下载稳定版,注意不要预览版(
Pre-release
),一般 100多M
1 | git clone https://github.com/lammps/lammps.git |
或
1 | git clone https://gitee.com/yuhldr/lammps.git |
1 | # 0 防止污染 |
因为安装在 /opt/LAMMPS/apps
,所以要配置 lammps
的 python库
和 c语言库
对应的路径
1 | # ************** LAMMPS ************** |
安装以后使用 lmp
就可以运行lammps了
采坑
比如并行、视频输出、安装目录、python库、GPU支持等
git与cmake
如果没有git,安装一个吧,我这里都以ubuntu20.04、root权限为例,其他系统或者没有root权限,百度吧,网上很多源码编译安装到当前用户的方法,或者联系管理员让他们给你安装 git
cmake3
1 | sudo apt install git cmake3 |
找不到lmp
默认安装在 ~/.local/bin/lmp
,如果你没有设置这个目录在环境变量里,会找不到,所以添加环境变量
如果你用的是 zsh
1 | echo "export PATH=$HOME/.local/bin:$PATH" >> ~/.zshrc && source ~/.zshrc |
如果你用的是bash(一般都是这个)
1 | echo "export PATH=$HOME/.local/bin:$PATH" >> ~/.bashrc && source ~/.bashrc |
视频输出
在 检测
这一步,如果系统没有 ffmpeg
, 编译出来的lammps使用 dump movie
时,会报错
我这里是ubuntu系统,需要依赖:多核并行、输出视频,已知问题,opensuse默认安装的ffmpeg不行,需要手动编译源码安,具体怎么安装,百度吧
1 | sudo apt-get install ffmpeg gzip |
回到刚才的 build
文件夹,删除里面的编译缓存文件,然后重新编译安装lammps
slurm与mpi并行
如果你在使用slurm集群,并且你碰巧编译lammps时,支持了openmpi,但是你这个openmpi与slurm集群的 mpi
不符合,这时候会报错的,一种方法,直接不用并行了
舍弃mpi
回到刚才的 build
文件夹,删除里面的编译缓存文件,然后重新编译安装lammps,但是刚才的
1 | cmake -D PKG_MANYBODY=yes ../cmake |
其他不变
支持mpi
如果在
slurm
集群上运行,必须保证编译lampps
时openmpi
与slurm
集群支持的mpi
一致,先查看slurm
集群支持什么
1 | srun --mpi=list |
一般如下,主要注意有没有pmix,如果 slurm
太过久远或者管理员技术不够的话,没有 pmix
的选项
1 | srun: MPI types are... |
如果集群管理员技术还可以,支持 pmix_v3
的话,系统里是有对应的 openmpi
的,输入 ompi_info
可以看到 openmpi
相关信息,其中有一条 MPI API
必须与 slurm
的对应
如果连 pmix
的选项都没有的话,你让管理员去看一下这个文章:slurm集群安装与踩坑详解,安装合适的 slurm
和 openmpi
如果只是没有合适的 openmpi
,自己按照那个博客编译一个合适的 openmpi
也行
如果 openmpi
已经合适了,删除 build
文件夹,重新编译即可
环境变量
配置路径,没这个有时会报错,尤其是支持 python
和 GPU
1 | vim ~/.zshrc |
末尾添加如下
1 | export LD_LIBRARY_PATH=$HOME/.local/lib:$LD_LIBRARY_PATH |
并且默认安装路径的时候,在 ~/.local/etc/profile.d/
有两个 lammps.sh
lammps.csh
全局的话一般放在 /etc/profile.d
高级
安装路径
在 cmake -D PKG_MANYBODY=yes ../cmake
这一步,会显示其中一条信息
1 | Install path: ~/.local |
我们把在这一步改为
1 | -D CMAKE_INSTALL_PREFIX=/usr/local/lammps-2021-12-26 |
可以安装在 /usr/local/lammps-2021-12-26
,既可以避免文件污染,也方便知道版本信息
安装以后
1 | cd /usr/local && sudo ln -s lammps-2021-12-26 lammps && cd - |
设置环境变量
1 | export LAMMPS_HOME=/usr/local/lammps |
python
ubuntu2004需要依赖
1 | sudo apt install python3-pip |
如果需要python接口
1 | -D BUILD_SHARED_LIBS=on -D LAMMPS_EXCEPTIONS=on |
make install
之前
1 | # 2022以后更新了,必须这么编译python库 |
gpu
GPU需要这个
1 | -D PKG_GPU=on -D GPU_API=cuda |
计算终止恢复
1 | -D PKG_MPIIO=on |
声子色散关系
1 | -D PKG_PHONON=on -D PKG_KSPACE=on |
需要 fftw3
,其他系统也一样,注意 dev
那一个,有的叫 devel
,很多系统喜欢给他们分开打包
1 | sudo apt install fftw3 libfftw3-dev libfftw3-bin -y |
如果报错,换一下源 清华源,注意版本号,我的是ubuntu21.10
以上全部
1 | cmake -D PKG_MANYBODY=yes -D CMAKE_INSTALL_PREFIX=/usr/local/apps/lammps/2022.03.06 -D BUILD_SHARED_LIBS=on -D LAMMPS_EXCEPTIONS=on -D PKG_GPU=on -D GPU_API=cuda -D PKG_MPIIO=on -D PKG_PHONON=on -D PKG_KSPACE=on ../cmake/ |
手册
方法过时了,新的我还没看
编译pdf手册
1 | # 按照前文配置texlive, 并安装如下依赖 |
其他系统说明
fedora
2023.5 最新版
ffmpeg
安装 ffmpeg
时,这个发行版的名字是
1 | dnf install ffmpeg-free-devel ffmpeg-free |
openmpi
安装 openmpi
时
1 | dnf install openmpi openmpi-devel |
!!注意,安装以后,编译或者运行时,比如载入openmpi环境,如下:
1 | module load mpi/openmpi-x86_64 |
本文作者:yuhldr
本文地址: https://yuhldr.github.io/posts/320.html
版权声明:转载请注明出处!