在尝试运行以下 .sh 文件时,我从 mpirun 收到错误:
文件:(为简洁起见,省略了额外的 python 配置)
NB_MPI_WORKERS=2
SEED=0
mpirun --n ${NB_MPI_WORKERS} python start.py --base_path ~/temp --seed ${SEED}
错误:
Open MPI has detected that a parameter given to a command line
option does not match the expected format:
Option: n
Param: 2
This is frequently caused by omitting to provide the parameter
to an option that requires one. Please check the command line and try again.
我已经确认只需更换${NB_MPI_WORKERS}和2确实有效,所以我对错误在哪里有点困惑,特别是因为 ${seed} 正在工作。
有人可以澄清一下吗?这实际上是格式问题还是类型问题?
版本:
- Linux 薄荷 20.2
- 打开 MPI 4.1.2
答案1
正如评论中所建议的,解决方案是将文件从 DOS 文本文件格式转换为 Unix 文本文件格式以替换行结尾。
由于该文件采用 DOS 文本格式,因此尾随回车符会添加到 和 的值NB_MPI_WORKERS
中SEED
。就 而言SEED
,这似乎不是问题,因为 Python 脚本以某种方式正确处理了该值。但就另一个变量而言,这意味着该--n
选项获得了一个不被视为合法的值。