bash 中的 Ubuntu Supervisor 命令扩展

bash 中的 Ubuntu Supervisor 命令扩展

我需要通过supervisor(Ubuntu 18.04 上的 bash)运行一个命令,该命令启动一个并行进程,其核心数量等于机器核心的一部分。

从命令行我可以成功运行

mpiexec -np $(($(nproc)/2)) pvserver --mesa --force-offscreen-rendering 

这按预期工作。然后我尝试在主管配置文件中添加相同的命令(带有绝对路径)

cmd=mpiexec -np $(($(nproc)/2)) pvserver --mesa --force-offscreen-rendering

但我收到错误

[mpiexec@ip-172-31-16-210] HYD_pmcd_pmi_alloc_pg_scratch (pm/pmiserv/pmiserv_utils.c:527): assert (pg->pg_process_count * sizeof(struct HYD_pmcd_pmi_ecount)) failed
[mpiexec@ip-172-31-16-210] HYD_pmci_launch_procs (pm/pmiserv/pmiserv_pmci.c:108): error allocating pg scratch space
[mpiexec@ip-172-31-16-210] main (ui/mpich/mpiexec.c:340): process manager returned error launching processes

似乎mpiexec收到了错误的论点。不用说,如果我对 np 参数进行硬编码,一切都会正常。

我也尝试过 xargs,但它的语法对我来说不是很清楚。这就是我尝试过的

echo $(($(nproc)/2)) | xargs mpiexec -np {} pvserver --mesa --force-offscreen-rendering

但即使从命令行我也无法让它工作。

有什么建议吗?

相关内容