Makefile 生成文件中的LSF作业数组

Makefile 生成文件中的LSF作业数组,makefile,lsf,Makefile,Lsf,我正在运行一个LSF作业数组,以便在生成文件中创建一个目标。 但是,一旦提交数组,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.t

我正在运行一个LSF作业数组,以便在生成文件中创建一个目标。 但是,一旦提交数组,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
all:final.txt
第一个文本:
b sub-J“jarray[1-100]”final.txt

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

您需要请求
bsub
命令等待作业完成。我从未使用过它,但根据,您可以添加
-K
选项来完成此操作。

尝试
bsub-K
,这将强制bsub保持在前台,直到作业完成

编辑

由于该选项在阵列上不受支持,我认为您必须将阵列作为单独的作业提交,例如:

for i in `seq 1 100`; do 
            export INDEX=$i
            bsub -K < script.sh & 
done
wait
对于'seq 1100'中的i;do
出口指数=$i
bsub-K

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

bsub-K在作业数组上不起作用。“作业数组不支持-K选项。作业未提交。“啊哈,在这种情况下,你不会很喜欢我的另一个解决方案,我会添加,但这是我所能想到的…bsub-K在作业数组上不起作用。”作业数组不支持-K选项。作业未提交。“那太糟糕了。嗯,你必须找到一种方法,让你的食谱等到一切都完成了。这里没有任何
make
可以提供帮助:您需要通过食谱中的脚本或其他方式来解决这个问题。它需要是一个makefile吗?您可能会使用作业依赖项执行
cat…>作业中的final.txt
。或者,您可以保留makefile并使用
bsub-K
进行最后的作业。这样,final.txt的规则在完成之前仍将被阻止。