- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我们所知,SLURM 可以在作业完成时发送电子邮件。
除此之外,类似于作业完成时的邮件机制:
[问] 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 秒检查一次可能效率低下。 Is doing `while ps -p $PID; do sleep 1; ` until a script is completed efficient?
感谢您宝贵的时间和帮助。
最佳答案
一个选项是(ab)使用 slurm.conf
中的 MailProg
选项。它最初是用于在作业完成后向用户发送电子邮件的程序的完全限定路径。但是那个程序可以做任何其他事情。它通过命令行参数接收作业 ID 和一些其他信息。
因此您可以使用 MailProg=/path/to/my_script.sh
配置 slurm。并且您需要确保客户端添加了 --mail-type
选项,或者它是通过作业提交插件自动添加的。
脚本可能具有以下结构(未经测试):
#!/bin/bash
# First to the wanted behaviour
jobid=$(echo $2 | cut -d= -f2 | cut -d' ' -f 1|cut -d_ -f1)
event=$(echo $2 | awk 'print $4')
case $event in
Started)
job_startup_script $jobid
;;
Ended|Failed|TIMEOUT)
job_end_script $jobid
;;
esac
# Then send the email to get the usual behaviour
/bin/mail "$@"
脚本将从 Slurm 接收的参数如下所示:
SLURM Job_id=<Job-ID> Name=<JobName> <Status>, Run time <RunTime>
如果脚本 job_startup_script
很长,请使用 nohup
启动它并使用符号 (&
) 使其成为后台进程。
还要确保所有脚本都可以被 SlurmUser
读取和执行
关于slurm - 当任何作业完成时,SLURM 能否触发脚本(由前端 SLURM 用户实现)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43449165/
我在 slurm 中使用 sbatch 运行了很多作业,如下所示: #!/usr/bin/env python #SBATCH --job-name=Python #SBATCH --array=1-
我想让安排作业的用户使用 -t, --time= 列出任何作业时间限制.但是,当用户没有设置时间限制时,我想强加一个默认时间限制,例如 1 小时。我在 slurm.conf 中找不到任何设置来执行此操
例如,您需要运行30个srun作业,但要确保每个作业都在特定节点列表中的一个节点上运行(具有相同的性能,以公平地比较时序)。 你会怎么做? 我试过的 srun --nodelist=machineN[
据我们所知,SLURM 可以在作业完成时发送电子邮件。 除此之外,类似于作业完成时的邮件机制: [问] SLURM 是否可以在任何作业完成时触发脚本(由前端 SLURM 用户实现)? 示例解决方案:这
有没有办法找出作业被 slurm 取消的原因?我想将达到资源限制的情况与所有其他原因(如手动取消)区分开来。如果达到资源限制,我也想知道是哪一个。 最佳答案 slurm 日志文件明确包含该信息。它还会
我观察到当我运行 SLURM 作业时,它可以在其他文件夹路径上创建文件,也可以删除它们。他们可以通过 SLURM 作业访问其他文件夹/文件并对其进行更改,这似乎很危险。 $ sbatch run.sh
我想为 slurm 中的批处理作业指定每个内核的最大内存量 我可以看到两个 sbatch 内存选项: --mem=MB maximum amount of real memory per n
我知道对于特定的工作 ID,我可以使用 scontrol hold $JOBID。 如何保留多个 ID 的作业或/和保留一系列作业 ID 的作业(例如 scontrol hold 294724-294
我对 cpu 如何与内存通信知之甚少,所以我不确定这是否是一个“正确”的问题。 在我提交给 slurm 集群的作业脚本中,该脚本需要从存储在工作字典中的数据库中读取数据。我想监视运行此脚本所使用的内存
我正在整理一个 snakemake slurm 工作流程,并且我的工作目录被 slurm 输出文件弄得杂乱无章。我希望我的工作流程至少将这些文件定向到我的工作目录中的“slurm”目录。我目前的工作流
我正在努力理解如何使用 SLURM 在同一节点中运行多个进程。 假设我想运行一个具有 100 个不同输入参数的程序。例如,这就是我在笔记本电脑上所做的: for i in `seq 100`; do
sinfo仅显示当前状态( alloc 、 idle 等)和 Slurm 节点的时间限制。 squeue似乎只显示用户自己提交的作业,而不显示其他用户提交的作业。 有没有办法知道其他用户分配的节点何时
我有一个需要处理的文本文件列表(约 200 个文件)。所以我试图为此任务提交一个 slurm 作业数组,但我找不到解决方案。我尝试过的是通过循环遍历文件来提交多个作业(约 200 个作业)来完成一个任
我知道如何使用 cgroups(分配内存、cpu 使用...)和 slurm(提交、暂停/停止工作)。我想知道 cgroups 如何与 slurm 一起工作。当我向 slurm 提交作业时,我可以在哪
我有一堆作业在 slurm 中作为数组作业运行: 123_[1-500] PD my_job 0:00 me 123_2 R my_job 9:99 me 123_3 R
作为管理员,我需要为给定的工作赋予最大的优先级。 我发现提交选项如:--priority=或 --nice[=adjustment]可能有用,但我不知道我应该为它们分配哪些值,以便为工作提供最高优先级
我想提交一个数组作业来处理 100 个任务,每个任务只使用一个 CPU。我可以访问具有 10 个节点和 24 个内核的集群,每个节点都激活了超线程。我用 --array=1-100%24 限制并发作业
我有一些脚本发送到我可以使用 sbatch 访问的集群。但是,我想暂停这些正在运行的脚本,而不必取消它们的工作,因为它们已经运行了一段时间。 有没有办法在不取消他们已经完成的工作的情况下暂停/暂停当前
我有一份运行由 slurm 管理的 Linux 机器的工作。现在作业已经运行了几个小时,我意识到我低估了它完成所需的时间,因此我指定的 --time 参数的值不够。有没有办法通过 slurm 为现有正
是否可以扩展 SLURM 中命令 sacct 的 JobName 列中使用的字符数? 例如,我目前有: JobID JobName Elapsed NCPUS
我是一名优秀的程序员,十分优秀!