将多个 qsub 作业结果重定向到单个文件

将多个 qsub 作业结果重定向到单个文件

我正在尝试qsub使用不同的参数运行多个作业:

for i in {1..10}; do qsub -v Size=''$i'' test.sh; done

test.sh脚本的内容为:

#!/bin/bash 
#$ -cwd
#$ -S /bin/bash
#$ -N matrix_multiplication
#$ -o output
#$ -e output
TIMEFORMAT=%R
echo "Size of matrix ${Size}"

但是输出文件只有两行:

Size of matrix 9
Size of matrix 1
0

1-8 未包含在输出文件中。
我找不到问题可能出在哪里。
非常感谢任何帮助!

答案1

这 10 个作业是否同时运行?

如果是这样,我认为您无法完成您想要做的事情。因为它们每个都在不同的时间打开输出文件并写入。而且它们正在“互相覆盖”。

例如,假设作业 1output在作业 2 创建的同时创建output。此时,两个文件都是空的。如果作业 2 先写入,然后作业 1 写入,则作业 1 将在文件为空时打开它。作业 2 写入的内容不会出现。

如果您有 10 个作业,则需要写入 10 个不同的文件。如果您认为它们必须放在一个文件中,那么您需要创建第 11 个作业,等待所有 10 个作业完成,然后合并它们的输出文件。这邮政由其他人向您演示如何做到这一点。

希望这可以帮助!

相关内容