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
您必须手动将索引传递给脚本,而不是使用作业数组索引。
我是 运行 一个 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
您必须手动将索引传递给脚本,而不是使用作业数组索引。