Nextflow在 Slurm下的作业名问题
我正在尝试对通过Nextflow v.25.04.7提交的SLURM作业进行自定义,以用于追踪用途。然而,在多次尝试和测试之后,我仍然无法弄清楚正确的语法。以下是我尝试的几个测试:
withLabel: large_res {
executor = "slurm"
executor.jobName = "${params.projectName}_${task.name}_${task.hash}"
cpus = 8
memory = 100.GB
time = 24.h
clusterOptions = "--account=myGroup --qos=myGroup-b"
}
这会产生以下警告和错误:
WARN: Cannot read project manifest -- Cause: No such property: jobName for class: java.lang.String
ERROR ~ No such variable: jobName
我也尝试在集群选项中修改作业名:
withLabel: large_res {
executor = "slurm"
// executor.jobName = "${params.projectName}_${task.name}_${task.hash}"
cpus = 8
memory = 100.GB
time = 24.h
clusterOptions = "--account=myGroup --qos=myGroup-b --job-name=${params.projectName}_${task.name}_${task.hash}"
}
这会导致如下错误:
ERROR ~ Unknown config attribute
process.withLabel:large_res.task.name-- check config file:
/nextflow.config
我不确定下一步该怎么做。你能帮忙吗?
编辑:当然,“#SBATCH directives are read directly by Slurm, so shell-specific syntax including variable names will be read as literal text.”。因此,clusterOptions不是办法,我需要学习如何更改执行器变量;然而,在线查阅了好几个小时,仍未找到办法。
解决方案
我是在profile中配置了作业名称,而不是在标签中。也许这对你有帮助:
profiles {
cluster {
process {
executor = 'slurm'
}
executor {
jobName = { task.tag ? "PipelineName-${task.name}" : "PipelineName-${task.process}" }
}
}
}
也许你需要把你的名称声明为闭包,这样它们在运行时才会被求值?
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。