我正在尝试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 个作业完成,然后合并它们的输出文件。这邮政由其他人向您演示如何做到这一点。
希望这可以帮助!