首页 > 解决方案 > sbatch --array 定义基于由 --dependency 生成的工件?

问题描述

问题:

我有以下runner.sh

问题是sbatch对数组作业的调用是根据其依赖项的输出SPLATGEN定义的。--array=1-$CSVLENGTH

问题:

如何让 runner.sh 等到$CSVLENGTH可用后再尝试SPLATGEN=$...

背景:

这似乎失败了,因为 slurm 想$CSVLENGTH提前知道......

一般来说,我会知道 的值,$CSVLENGTH但它会根据sensitivity_pipeline_01_csv.sub.

#!/bin/bash

# runner.sh starts all the batches and manages dependencies

ARRAYDIR=/dfs5/bio/mkarikom/code/DTMwork/slurm/jobarrays
SIMDIR=/dfs5/bio/mkarikom/code/DTMwork/slurm/splatter_sim

echo file locations updated...

CSVGEN=$(sbatch /dfs5/bio/mkarikom/code/DTMwork/slurm/sensitivity_pipeline_01_csv.sub | cut -f 4 -d' ')

echo $CSVGEN

source $ARRAYDIR/splatsim_arraylength.txt # get $CSVLENGTH

SPLATGEN=$(sbatch --dependency=afterany:$CSVGEN --array=1-$CSVLENGTH /dfs5/bio/mkarikom/code/DTMwork/slurm/sensitivity_pipeline_02_splatter.sub | cut -f 4 -d' ')

echo $SPLATGEN

标签: hpcslurmsbatch

解决方案


推荐阅读