使用lsf bsub命令而不输出所有详细程度

时间:2013-06-29 10:04:16

标签: submit verbosity lsf

我的问题是:我有一个bash脚本执行某些操作,然后像这样调用800个bsub作业:

pids=
rm -f ~/.count-*
for i in `ls _some_files_`; do
    of=~/.count-${i}
    bsub -I "grep _something_ $i > $of" &
    pids="${!} ${pids}"
done
wait ${pids}

然后脚本处理输出文件$ of并回显结果。

麻烦的是,我有很多行:

Job <7536> is submitted to default queue <interactive>.
<<Waiting for dispatch ...>>
<<Starting on hostA>> 

它实际上是上述3行的800倍。有没有办法抑制这条LSF线?

我在上面的循环中尝试过:

bsub -I "grep _something_ $i > $of" &> /dev/null

我确实删除了LSF的详细程度,但不是一次提交几乎所有800个作业,然后运行不到4分钟,它一次只提交几个作业,我必须等待一个多小时才能使脚本运行光洁度。

AFAIK lsf bsub似乎没有选择来压制所有这些冗长。我能在这做什么?

2 个答案:

答案 0 :(得分:1)

您可以通过在bsub之前将环境变量BSUB_QUIET设置为任何值(包括空值)来抑制此输出。所以,在循环之前说你可以添加:

export BSUB_QUIET=

然后,如果您想将其恢复正常,可以使用以下命令清除变量:

unset BSUB_QUIET

希望能帮到你。

答案 1 :(得分:0)

您是否考虑过使用作业依赖项并对日志文件进行后处理?

1)运行每个“子”作业(删除“-Is”)并将IO输出到单独的输出文件。应该使用作业名提交每个作业(请参阅-J)。 jobname可以形成一个数组。

2)你的最后一份工作将取决于孩子的完成(见-w)。

除了在集群中运行并发之外,这种方法的另一个优点是您的整个过程不会受到IO问题的影响。