【发布时间】:2022-10-14 23:56:19
【问题描述】:
我正在寻找一种以编程方式关闭/退出/停止正在运行的蛇形工作流的方法 - 本质上是使用在工作流中调用的 python 函数,但可能会遇到无法恢复的错误,需要停止工作流以进行人工干预。
我实际上正在尝试做的事情:我在 GPU 节点上启动(guppy basecaller)作业,并且必须在命令中指定要使用的 cuda 核心。该函数检查是否存在锁定文件以指定哪些内核正在使用以及哪些可用。这些文件是作为 basecaller 的 shell 命令的一部分创建和删除的。使用资源时,并行 gpu 作业的数量受限于可用的核心数量。这可行,但我希望能够捕捉到意想不到的问题,例如gpu_lock 文件被删除或未清理。
在工作流中调用该函数以指定参数,例如作为下面的假人:
def get_fromel(wildcards): if some_number < 0.05: sys.exit("yieeeks") else: return "hiyaaa" rule foo: input: bar.txt output: baz.txt params: fromel = get_fromel shell: "fizz -f {params.fromel} {input} > {output}我只是打电话给
sys.exit("my message")吗?我担心它不会清理不完整的文件等
【问题讨论】:
标签: snakemake