【发布时间】:2017-05-04 20:46:20
【问题描述】:
我们知道 SLURM 可以在工作完成时发送电子邮件。
除此之外,类似于作业完成时的邮寄机制:
[Q] SLURM 是否可以在任何作业完成时触发脚本(由前端-SLURM 用户实现)?
示例解决方案:这将迫使我让 while() 检查并等待提交的作业是否完成。这可能会消耗额外的 CPU 使用率。
jobID=$(sbatch -U user -N1 run.sh | cut -d " " -f4-);
job_state=$(sacct -j $jobID --format=state | tail -n1 | head -n1)
while [ $job_state != $completed ]
do
job_state=$(sacct -j $jobID --format=state | tail -n1 | head -n1)
done
my_script.sh//When any job completed I want SLURM to trigger my_script.sh if possible.
请注意:有人告诉我,每 1 秒进行一次 while 检查可能效率低下。 Is doing `while ps -p $PID; do sleep 1; ` until a script is completed efficient?
感谢您宝贵的时间和帮助。
【问题讨论】:
-
您不能简单地调用该脚本作为提交脚本中的最后一个操作,必要时使用 SSH 连接到前端吗?
-
我正在尝试创建一个自动化系统,当工作完成时,我想立即触发代码以允许客户访问结果。请不要客户只在外部提交他的工作(他不能对前端进行 ssh),所以集群必须在他的工作完成后让客户端现在。 @damienfrancois
-
看过Fireworks 等工作流系统或5slurm-web 等门户](edf-hpc.github.io/slurm-web) ?他们可能会满足您的需求?
-
我想出的最简单的解决方案是使用我想调用的脚本来操作用户的代码开始和结束会话。 @damienfrancois
标签: slurm