实验室只有 Windows 或 Linux,导师却要求你先在 macOS 上验证 LAMMPS 输入文件。

本周最快的做法:先用 Homebrew 或 Conda 在 Apple Silicon Mac 上完成最小可运行环境;Mac 用于开发、验收和小规模回归,涉及大规模生产、GPU 或复杂 MPI 时,直接保留 Linux HPC 双轨方案。

这篇文章适合三类人:材料、化学、物理方向研究生,用它快速验证输入文件;课题组科研开发者,用它维护插件、脚本和可复现构建;高校技术支持人员,用它交付没有实体 Mac 的远程 macOS 环境。

角色分流:先选路线,再执行安装

LAMMPS 在 Apple Silicon Mac 上可以安装并运行,但安装方式不应由“哪条命令最短”决定,而应由你后续是否需要 MPI、OpenMP、Python 接口、额外 package 或自定义插件决定。

使用角色 默认路线 适合解决的问题 需要回退的信号
个人研究生 Homebrew 或 Conda 快速启动、验证输入文件、运行小规模样例 需要特定 package、插件或固定构建参数
课题组开发者 CMake 源码构建 固定编译器、MPI、OpenMP 和 package,形成可复现环境 只是临时跑一次脚本,不值得维护源码构建
高校技术支持人员 预编译环境起步,再按项目固化 为多人交付统一路径、目录和验收样例 用户需要集群级 MPI、GPU 或长时间生产任务

LAMMPS 官方把 macOS 列为可编译和运行的平台,但也明确说明,部分可选功能会受到操作系统、外部库和构建系统限制。官方还指出,Linux 是主要开发平台,因此“可以编译运行”和“适合完整科研工作流”必须分开判断。LAMMPS 可移植性与兼容性说明

如果你只是第一次验证课题组已有的 in.* 输入文件,不要一开始就下载源码、配置编译器和手动拼接依赖。先建立一个能被记录、能被删除、能被重新创建的预编译环境,失败时再进入 CMake 路线。

预编译安装:个人研究生的最低维护方案

Homebrew 路线

Homebrew 适合你已经在 Mac 上使用命令行工具,并希望用较少步骤得到 LAMMPS 可执行文件的情况。官方 macOS 安装页给出的基本方式是:

brew install lammps

安装完成后,官方文档说明会提供串行与 MPI 相关可执行文件,同时带有文档、势函数、工具和示例目录。你可以先运行:

brew test lammps -v

这一步不是完整科研验收,但能快速判断包管理器安装的 LAMMPS 是否能够启动并完成官方测试。LAMMPS macOS 安装说明

需要注意的是,官方当前 macOS 安装页会列出部分受限的可选能力。不要因为 Apple Silicon 有集成 GPU,就把 brew install lammps 之后的 CPU 可运行环境描述成 GPU 加速环境。涉及 GPU 或 KOKKOS 时,应重新核对当前构建页面和实际 package 列表。

Conda 路线

Conda 更适合你的 LAMMPS 需要与 Python 数据处理、可视化脚本或其他科研依赖隔离的情况。官方示例使用独立环境:

conda config --add channels conda-forge
conda create -n my-lammps-env
conda activate my-lammps-env
conda install lammps

这条路线的主要价值是环境隔离,而不是保证所有 package 都符合你的课题需求。LAMMPS 官方提醒,Conda 中的预编译二进制由打包维护者配置和更新,LAMMPS 开发者不控制这些具体构建选择。因此,你必须在安装后用 lmp -h、真实输入文件和输出日志做验收。LAMMPS Conda 安装说明

如果你的课题只需要串行运行、基础势函数和 Python 后处理,Homebrew 与 Conda 都可以作为起点。若你需要固定 MPI 实现、启用某个额外 package,或要让课题组成员在不同机器上得到相同构建结果,就不要把预编译包当成最终交付物。

最小验收:从能启动到结果可复核

安装成功不等于科研环境合格。你至少要完成下面这条验收链,避免“命令返回成功,但真实脚本缺 package、找不到势函数或没有生成结果文件”。

第一个里程碑:确认架构和可执行文件

先记录机器架构、命令路径和帮助信息:

uname -m
which lmp
lmp -h

如果 Homebrew 安装后命令名称不是 lmp,先用:

brew list lammps

查看实际安装路径,再使用对应的 lammps_seriallammps_mpi。不要把网上其他系统的路径直接复制到你的环境中。

lmp -h 的价值在于查看当前可执行文件编译进了哪些 styles 和 package。你还可以利用命令行帮助确认输入文件、日志和运行参数是否被当前版本支持。

第二个里程碑:运行官方最小样例

优先使用发行包自带的 examplesbench 目录,不要先拿课题组最复杂的输入文件测试。LAMMPS 官方示例目录包含多个样例问题,每个样例通常由输入文件、初始数据文件和输出结果组成。LAMMPS 示例目录说明

典型运行方式是:

lmp -in in.lj

如果你的安装提供的是 MPI 可执行文件,可以使用变量形式的并行启动命令:

mpirun -np N lmp_mpi -in in.lj

或者:

mpiexec -np N lmp -in in.lj

这里的 N 不是固定推荐值,而是你在当前输入规模、内存条件和课题组要求下需要记录的实际进程数。先确认命令能启动,再比较串行与 MPI 运行是否生成完整日志和结果文件。

第三个里程碑:验证 MPI 与 OpenMP 不被混淆

MPI 是多进程并行,OpenMP 是线程并行,两者不是同一个开关。CMake 在检测到可用 MPI 时可以构建 MPI 支持;检测到兼容编译器时,也可以构建 OpenMP 支持,但最终是否启用,仍取决于构建配置和运行参数。

如果你使用 OpenMP 相关功能,需要在启动前设置线程数,例如:

export OMP_NUM_THREADS=N
lmp -sf omp -in in.lj

这里的 N 应使用你实际测试并记录的线程数,不要直接把 CPU 核心数量当成最佳值。LAMMPS 的不同输入文件对 MPI 进程数和线程数的反应可能不同,部分功能也不支持完整的 OpenMP 并行。LAMMPS 运行与 package 说明

第四个里程碑:用真实科研脚本闭环

最小样例通过后,再复制一份课题输入文件到独立目录,按以下顺序检查:

  • 输入文件引用的势函数、数据文件和表格路径是否改为相对路径或明确的项目路径;
  • 是否生成 log、轨迹、能量、重启或其他课题要求的结果文件;
  • 日志中的初始条件、步数、时间步长、温度和压力设置是否符合预期;
  • 脚本需要的 pair_stylefixcompute 是否出现在 lmp -h 的构建能力中;
  • 重新执行时,是否会覆盖旧结果,是否需要清理临时文件。

随机种子、初始结构、输入文件版本和势函数文件都应一并记录。否则你即使在 Mac 上得到结果,也很难在 Linux HPC 上复现。

源码构建:课题组开发者的可复现路线

当你需要固定构建选项、开发插件、接入 Python 或让课题组成员复用同一环境时,才值得使用 CMake 源码构建。LAMMPS 当前源码构建要求兼容 C++17 的编译器,CMake 至少需要 3.20;这些要求应以官方可移植性页面为准,而不是照搬旧教程。LAMMPS 编译器与构建系统要求

建议把源码目录与构建目录分开:

git clone https://github.com/lammps/lammps.git
cd lammps
cmake -S cmake -B build \
  -D CMAKE_BUILD_TYPE=Release \
  -D BUILD_MPI=on \
  -D BUILD_OMP=on
cmake --build build

上面的参数只是构建思路示例。真正交付时,你需要根据官方 CMake 选项确认 MPI、OpenMP、FFT、Python 接口和各个 PKG_* 设置。配置阶段会检测相关依赖,并在最后输出所选配置。LAMMPS CMake 构建说明

不要在同一个源代码目录里反复混用旧式 make 和 CMake。传统构建与 CMake 的 package 处理方式不同,部分新 package 也要求使用 CMake。需要 KOKKOS 时,更要回到当前官方 Build extras 页面确认构建方式;不要仅凭 Apple Silicon 的 CPU 架构推断 KOKKOS 或 GPU 能力已经可用。LAMMPS 额外构建选项

建议你在课题组仓库中保存以下记录:

  • LAMMPS 源码版本或提交标识;
  • macOS 与 Apple Silicon 架构信息;
  • CMake 配置命令和编译器路径;
  • BUILD_MPIBUILD_OMP 与各项 PKG_* 设置;
  • 最小回归样例、输入文件、势函数和预期结果;
  • 运行命令、MPI 进程数、OpenMP 线程数与日志文件。

这样交付的不是“某台 Mac 上能运行的二进制文件”,而是一套可以重新构建和复核的科研环境。

⚠️ 注意:Apple Silicon CPU、OpenMP、MPI、GPU 和 KOKKOS 是不同层次的能力。看到 mpirun 能启动,不代表 GPU 加速可用;看到 OpenMP 能运行,也不代表所有 LAMMPS styles 都支持同等线程并行。

Mac 与 Linux HPC:按任务类型分工

Apple Silicon Mac 更适合交互式建模、输入文件开发、短时回归、参数少的教学实验和 macOS 特有环境验证。你可以在本地或远程 Mac 上快速修改输入文件,观察日志,检查输出轨迹,再把已确认的脚本交给 Linux HPC 执行。

以下情况应优先迁移到 Linux HPC:

  • 任务运行时间长,失败后重新开始代价高;
  • 需要多人排队、作业调度、共享存储或模块化软件环境;
  • 依赖集群上已经配置好的 MPI、GPU 或特定编译器;
  • 使用的 LAMMPS package 在 macOS 预编译路线中不可用;
  • 需要大规模生产计算,而不是小规模验证。

LAMMPS 官方运行文档说明,MPI 任务映射、进程绑定和内存分布都会影响并行运行;能在单台 Mac 上启动 MPI,不等于它具备多节点 HPC 的网络、调度和存储能力。LAMMPS 并行运行基础

因此,建议采用“同一输入文件、两个环境、同一验收指标”的双轨方案。先在 Mac 上验证语法、package、路径和小规模物理结果;再在 Linux HPC 上验证生产规模、MPI 映射、作业提交和长任务恢复。跨平台时不要只比较总耗时,还要比较能量、温度、压力、粒子数、轨迹文件和结束状态。

如果你没有实体 Mac,可以先查看 VMSPIN 的远程 Mac 使用入口,把它作为 macOS 环境验收节点,而不是直接把它宣传成 HPC 替代品。通过 SSH 运行批处理最适合脚本和日志,通过 VNC 适合图形化配置,网页控制台适合首次登录、账号初始化和基础环境检查。

高校技术支持:远程交付的五个检查面

高校技术人员交付远程 Mac 时,重点不是“用户能不能连上桌面”,而是用户能否在权限、目录和任务恢复方面稳定使用。

账号权限。 为每位研究者建立独立账号或项目目录,避免多人共享主目录。需要安装包、修改 shell 配置或写入项目目录时,应明确哪些操作由管理员完成。

环境初始化。 交付架构识别、命令路径、LAMMPS 版本、安装来源和 package 记录。不要只发一条安装命令,让用户自行猜测可执行文件在哪里。

数据目录。 把输入文件、势函数、结果、日志和临时文件分开。为用户准备只读示例,避免第一次运行就覆盖课题组的原始输入或势函数。

任务断线恢复。 SSH 适合批处理,但远程连接中断不应导致任务状态无法判断。要求脚本写入日志、保存重启文件,并记录启动时间、工作目录和输出文件位置。

结果导出。 交付前确认用户能通过 SSH 或网页控制台找到结果文件,并能把日志、输入文件、势函数和环境记录一起导出。VNC 的桌面响应速度只代表交互体验,不能推断 LAMMPS 模拟性能。

你可以把 VMSPIN 的方案页面 作为临时环境选择入口,但正式课题仍应根据数据安全、运行周期、物理接口和实验室存储政策判断是否适合租赁。若任务只是短期验证或跨平台验收,远程 Mac 的价值在于减少一次性购机和维护负担;若任务长期满载运行,Linux HPC 或实验室自有设备通常更合适。

正式放行清单:决定继续、迁移还是双轨

在把 Mac 环境交给课题组使用前,逐项完成下面检查:

  • ✅ 架构识别结果已记录,确认使用的是 Apple Silicon 原生环境还是兼容层;
  • ✅ 可执行文件路径固定,lmp -h 能显示所需 styles 和 package;
  • ✅ 官方 Lennard-Jones 或等价公开样例能够完成串行运行;
  • ✅ MPI 启动命令能够运行,并且日志显示任务数符合预期;
  • ✅ 若使用 OpenMP,线程数、启动参数和输入文件要求已记录;
  • ✅ 真实科研脚本能生成完整日志、轨迹、能量或重启文件;
  • ✅ 势函数、初始结构、随机种子和输入文件版本已归档;
  • ✅ Mac 与 Linux HPC 使用同一输入文件完成过结果回归;
  • ✅ 需要的 GPU、KOKKOS 或其他可选 package 已按官方文档单独确认,而不是凭 CPU 可运行推断;
  • ✅ 远程环境的 SSH、VNC、网页控制台、断线恢复和结果导出路径均已测试。

如果你只需要开发输入文件、验证 package 和运行短时样例,可以继续使用 Apple Silicon Mac。若任务依赖集群级 MPI、GPU、调度器或长时间生产计算,应迁移到 Linux HPC。若前两类需求同时存在,就保留双轨:Mac 负责开发与验收,Linux HPC 负责正式计算。

常见问题

LAMMPS 能在 Apple Silicon Mac 上正常运行吗?

可以。官方文档确认 macOS 可通过 Homebrew、Conda 或源码构建获得 LAMMPS 可执行环境,但“能够运行”不等于“具备完整 HPC 加速能力”。如果你的任务依赖特定 GPU、KOKKOS 或集群 MPI 配置,仍应在 Linux HPC 上做生产计算。

Apple Silicon Mac 安装 LAMMPS,Homebrew 和 Conda 该怎么选?

只想快速得到可执行文件并验证输入脚本,优先选择 Homebrew 或 Conda 预编译路线。Homebrew 命令更短,Conda 更适合把 LAMMPS 与 Python、分析脚本放入独立环境;需要定制 package、MPI 或插件时,再转向 CMake 源码构建。

如何在 Mac 上验证 LAMMPS 的 MPI 和科研脚本?

先用 lmp -h 或对应可执行文件查看已编译的 styles 和 package,再运行官方 Lennard-Jones 示例。确认串行运行、mpirunmpiexec 并行运行、日志文件、输出轨迹和关键物理量都能闭环,最后用你的真实输入文件做一次回归。

Mac 版 LAMMPS 可以替代 Linux HPC 吗?

通常不能直接替代。Mac 更适合输入文件开发、短时回归、教学实验和交互调试;Linux HPC 更适合长时间、大规模、多人共享以及依赖集群 MPI、GPU 或特定加速包的生产任务。最稳妥的做法是 Mac 开发验收、Linux HPC 生产计算。

没有 Mac,怎样远程运行 LAMMPS?

你可以租用一台真实的远程 Mac,通过 SSH 批处理,通过 VNC 完成图形化配置,也可以用网页控制台做初次登录和环境初始化。远程 Mac 适合先验证 macOS 环境与科研脚本;正式生产前,仍要把同一输入文件放到 Linux HPC 上复核。

如果你当前只有 Windows 或 Linux,而课题又要求先验收 macOS 环境,可以先通过 VMSPIN 的远程 Mac 方案 完成最小样例和真实输入文件测试。等验收结果明确后,再决定是短期租用远程 Mac、长期保留双轨,还是把全部生产任务迁移到 Linux HPC。