gpt4 book ai didi

bash - 在 SLURM 之外使用 srun

转载 作者:行者123 更新时间:2023-12-04 15:50:05 26 4
gpt4 key购买 nike

我有一段代码通常在 SLURM 下运行。有点像

if ! lengthy_command
then
echo "Error occured"
fi

出于会计目的,我想转移到基于 srun 的命令启动:

if ! srun <srun params> lengthy_command
then
echo "Error occured"
fi

但是在更改该行之后,脚本将不再在交互式 session (SLURM 之外)中运行。有什么方法可以概括脚本以便它可以在两种情况下运行?我在 srun 文档中看不到任何指向那个方向的内容。

最佳答案

一种选择是使用变量并将其设置为 srun在工作时(例如当设置了 $SLURM_JOBID 时),否则将其留空。

if [ -n $SLURM_JOBID ] ;  
then
LAUNCH=srun <srun params>
else
LAUNCH=
fi

if ! $LAUNCH lengthy_command
then
echo "Error occured"
fi

可以通过设置 LAUNCH 来扩展这种方法至 parallel <parallel options>当使用 GNU parallel 时,或者当在集群中与另一个调度程序一起运行时使用其他命令。

另一种选择是创建一个名为 srun 的 Bash 函数封装逻辑(未经测试):

srun() {
if [ -n $SLURM_JOBID ] ;
then
command srun $@
else
$@
fi
}

关于bash - 在 SLURM 之外使用 srun,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54198383/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com