使用mpirun/mpiexec调用LAMMPS别名时出现执行文件查找错误
问题解决:mpirun无法识别LAMMPS别名
原因
mpirun/mpiexec是直接调用系统可执行文件的工具,它不会启动你的zsh shell解析别名配置——别名是shell会话级别的自定义规则,仅在当前shell里生效,mpirun不会读取你的.zshrc别名设置,因此会找不到名为lammps的可执行文件。
解决办法
1. 直接使用可执行文件绝对路径
这是最直接的临时方案,把命令里的别名替换成lmp_mpi的绝对路径即可:
mpirun -np 2 /Users/myname/Documents/Project_Packages/lammps-23Jun2022/src/lmp_mpi -in in.fileName
2. 创建全局可访问的软链接
把lmp_mpi链接到系统PATH目录下(比如/usr/local/bin),让系统所有进程都能识别lammps:
# 执行时需输入管理员密码 sudo ln -s /Users/myname/Documents/Project_Packages/lammps-23Jun2022/src/lmp_mpi /usr/local/bin/lammps
创建完成后,直接运行mpirun -np 2 lammps -in in.fileName即可正常工作。
3. 通过shell进程包裹别名调用
让mpirun启动zsh进程来解析别名,命令格式如下:
mpirun -np 2 zsh -c 'lammps -in in.fileName'
注意:如果是多节点集群环境,所有节点都需要在对应的.zshrc里配置相同的别名,否则其他节点会报错找不到lammps。
内容的提问来源于stack exchange,提问作者SpencerSabatino
相关产品推荐
相关产品推荐

