从 bash 文件调用 mpirun 无法识别 $VAR 格式...?

从 bash 文件调用 mpirun 无法识别 $VAR 格式...?

在尝试运行以下 .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_WORKERSSEED。就 而言SEED,这似乎不是问题,因为 Python 脚本以某种方式正确处理了该值。但就另一个变量而言,这意味着该--n选项获得了一个不被视为合法的值。

相关内容