Make 文件中的 LSF 作业数组

LSF Job Array in Make File

我是 运行 一个 LSF 作业数组,用于在 makefile 中创建目标。 但是,一旦提交数组,make 就会考虑执行目标的命令,并抛出一个错误,因为目标不存在。

如何强制 make 等到 LSF 作业数组完成后再移动到其他依赖目标?

示例:

all: final.txt

first_%.txt:
    bsub -J" "jarray[1-100]" < script.sh

final.txt: first_%.txt
    cat first_1.txt first_50.txt first_100.txt > final.txt

很遗憾,作业数组不支持 -K 标志。

您需要询问bsub命令以等待作业完成。我从未使用过它,但根据 the man page,您可以添加 -K 选项来执行此操作。

尝试 bsub -K,这会强制 bsub 留在前台直到作业完成。

编辑

由于数组不支持该选项,我认为您必须将数组作为单独的作业提交,例如:

for i in `seq 1 100`; do 
            export INDEX=$i
            bsub -K < script.sh & 
done
wait

您必须手动将索引传递给脚本,而不是使用作业数组索引。