Перенаправить несколько результатов задания 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 не включены в выходной файл.
Я не могу найти, где проблема может быть.
Любая помощь значительно наступила!

0
задан 18 March 2021 в 05:27

1 ответ

Эти 10 рабочих мест работает одновременно?

Если так, я не думаю, что вы можете сделать то, что вы пытаетесь сделать. Поскольку каждый из них открывает выходной файл в разное время и писать ему. И они «перезаписывают друг друга».

Например, предположим, что задание 1 создает вывод . В то же время работа 2 создает вывод . На данный момент оба файла пусты. Если работа 2 пишет первым, а затем работа 1, работа 1 будет открывать его в то время, когда он был пустым. И какая работа 2 написала бы не появится.

Если у вас есть 10 рабочих мест, вам нужно написать на 10 разных файлов. Если вы чувствуете, что должны быть в одном файле, вам нужно создать 11-е задаю, которая ждет, пока все 10 заданий не будут выполнены, а затем объединить их выходные файлы. Это пост кем-то еще демонстрирует, как вы могли бы сделать это.

Надеюсь, это поможет!

0
ответ дан 18 March 2021 в 23:25

Другие вопросы по тегам:

Похожие вопросы: