Makefile 生成文件中的LSF作业数组
我正在运行一个LSF作业数组,以便在生成文件中创建一个目标。 但是,一旦提交数组,make就会考虑执行目标的命令,并抛出一个错误,因为目标不存在 如何强制make在移动到其他相关目标之前等待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
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的规则在完成之前仍将被阻止。