linux Slurm:带有多个可执行文件的srun

kb5ga3dv  于 2023-10-16  发布在  Linux
关注(0)|答案(1)|浏览(90)

有没有办法让run命令在一个srun下一个接一个地运行?另外,这可以在不运行一个包含所有命令的单独文件的情况下完成吗?
通常我们会这样做:

srun python ./python_code.py

但我想:

srun python ./python_code1.py & python ./python_code2.py

这可能吗?或者它最终会做srun python ./python_code1.py,然后是python ./python_code2.py
或者,我可以有一个包含可执行文件列表的文件,如下所示:
launch.sh:

python ./python_code_1.py
python ./python_code_2.py

我会用srun launch.sh来命名它。
但如果可能的话,我想从一个文件中完成所有这些。
谢谢
利亚姆

pbwdgjma

pbwdgjma1#

一行如

srun python ./python_code1.py & python ./python_code2.py

将启动python ./python_code1.pysrun并将该进程发送到后台,然后立即启动python ./python_code2.py
由于srun需要一个可执行文件,因此不能直接将多个命令作为参数列出。但是它会转发命令的参数,这样你就可以使用bash的中间调用,就像@KamilKuk建议的那样:

srun bash -c 'python ./python_code_1.py ; python ./python_code_2.py'

如果launch.sh是可执行的,那么你提到的launch.sh的替代方案也可以工作,即。具有可执行权限并具有正确的Shebang

相关问题