build_hoomd_from_source
非 root 用户安装 miniconda3 (optional)
从中科大镜像下载最新的 miniconda3 文件
1 | wget https://mirrors.ustc.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh |
加上执行权限
1 | chmod +x Miniconda3-latest-Linux-x86_64.sh |
运行
1 | ./Miniconda3-latest-Linux-x86_64.sh |
根据提示进行 Miniconda3
的安装。
如果安装成功,可以使用以下命令查看关于 conda 的信息
1 | which conda |
1 | conda info |
根据安装的过程决定是否运行 conda 的初始化命令
1 | /home/$USER/miniconda3/condabin/conda init |
可以使用以下命令更新 conda 本体
1 | conda update -n base -c conda-forge conda |
非 root 用户安装 micromamba (optional)
micromamba 是一个 C++ 实现的 conda 替代品,使用方法基本与 conda 一致
直接运行命令安装 micromamba
1 | "${SHELL}" <(curl -L micro.mamba.pm/install.sh) |
如果遇到网络问题,可以尝试下载 micro.mamba.pm/install.sh
之后在 shell 中运行。
更新 micromamba 的命令:
1 | micromamba self-update |
从源码安装 HOOMD
直接从 conda-forge 安装的 HOOMD 不支持 MPI 并行。想要安装并行版的 HOOMD,需要 build frome sourse
主要参考了 https://hoomd-blue.readthedocs.io/en/latest/building.html 的官方教程。
首先,新建一个虚拟环境 (以 hoomd5
为例)
1 | conda create -c conda-forge -n hoomd5 |
1 | micromamba create -c conda-forge -n hoomd5 |
激活该虚拟环境
1 | conda activate hoomd5 |
1 | micromamba activate hoomd5 |
在我的使用过程中,即使已经安装了
mpich
,在 cmake 配置的阶段总是找不到mpicc
、mpicxx
之类的路径。
mpich
可能存在一些问题,建议使用openmpi
,可以尝试在 conda 环境中删除mpich
,然后安装openmpi
1 conda remove mpich
1 conda install -c conda-forge openmpi
下载前置的包
1 | conda install -c conda-forge cmake cereal eigen git python numpy pybind11 openmpi ninja -y |
1 | micromamba install -c conda-forge cmake cereal eigen git python numpy pybind11 openmpi ninja -y |
安装 HOOMD 本体
下载 HOOMD 源码,有两种方法,一种方法是使用 git
(--recursive 是必要的)
1 | git clone --recursive https://github.com/glotzerlab/hoomd-blue |
如果之前已经 git clone 过了,可以拉取最新的源码
1 | cd hoomd-blue |
1 | git pull --recurse-submodules |
还有一种方法是直接在 https://hoomd-blue.readthedocs.io/en/latest/building.html#obtain-the-source 或者在 https://github.com/glotzerlab/hoomd-blue/releases 下载最新的打包好的源码。
1 | wget https://github.com/glotzerlab/hoomd-blue/releases/download/v5.3.1/hoomd-5.3.1.tar.gz |
解压缩
1 | tar -zxvf hoomd-5.3.1.tar.gz |
重命名,和上一种方法保持一致
1 | mv hoomd-5.3.1 hoomd-blue |
通过以上两种中的一种方式下载好源码之后,使用 cmake
进行
configure,启用 MPI (ENABLE_MPI=on)
确保已经进入 hoomd-blue
文件夹
1 | cd hoomd-blue |
如果不使用 GPU,只使用 CPU 运行 HOOMD,可以使用以下命令编译 (ENABLE_GPU=off)
1 | cmake -B build -S . -GNinja -DENABLE_MPI=on -DENABLE_GPU=off |
如果需要使用 GPU 运行 HOOMD,可以使用以下命令编译 (ENABLE_GPU=on)
1 | cmake -B build -S . -GNinja -DENABLE_MPI=on -DENABLE_GPU=on |
使用 ninja
进行 build (其中 -j8
是并行编译的参数,可以省略或根据机器的实际情况填写合适的参数)
1 | cd build |
1 | ninja -j8 |
使用 ninja
进行 install
1 | ninja install |
至此,从源码安装 HOOMD 告一段落。
测试 HOOMD 的 MPI 并行
简易测试
创建 mpi_test.py
文件,内容如下
1 | import os |
运行测试命令:
1 | mpirun -n 4 python3 mpi_test.py |
如果能输出类似于下面的结果,则表明安装成功
1 | True |
hoomd-benchmarks
具体细节可以参考 HOOMD 在 github
提供的 benchmark 仓库 的 README
文件的说明。
克隆仓库
1 | git clone --branch trunk --depth 1 https://github.com/glotzerlab/hoomd-benchmarks.git |
进入目录
1 | cd hoomd-benchmarks |
运行测试
1 | mpirun -n 4 python3 -m hoomd_benchmarks.hpmc_md_pair_lj --device CPU -N 4000 --repeat 10 |
其他常用的 package
运行以下命令安装其他常用的包
1 | conda install -c conda-forge freud fresnel gsd matplotlib jupyter signac signac-flow pandas coxeter row rowan |
或
1 | micromamba install -c conda-forge freud fresnel gsd matplotlib jupyter signac signac-flow pandas coxeter row rowan |
需要注意的是 signac-flow
已停止更新,可以酌情选择作为其精神后继的 row
来安排多任务。
CHANGE LOG (v5.3.1)
- 2025/08/26 增加了 hoomd-benchmarks 的简单使用方法; by Harry
- 2025/08/26 增加了对于网络问题的处理; by Harry
- 2025/08/13 增加了对于 signac-flow -> row 的描述; by Harry
- 2025/07/04 mpi 部分换用 openmpi; by Harry
- 2025/04/23 改进了部分描述; by Harry
- 2025/03/15 加入了 micromamba 的描述; by Harry
- 2025/01/10 改进了部分描述; by Harry
- 2024/09/21 改进了部分描述; by Harry
- 2024/04/09 更改对于可能出现的问题的解决方案; by Harry
- 2024/04/06 加入 CUDA 安装方式; by 日华
- 2024/04/03 重新加入对于可能出现的问题的解决方案; by Harry
- 2024/03/22 大幅度改动; by Harry
- 2024/03/19 优化部分 bug; by 时六
- 2024/03/10 优化部分 bug; by 日华
- 2024/01/03 优化部分 bug; by 时六
- 2023/10/27 添加 GPU 前置和常用包安装选段; by 时六