Перенаправление нескольких результатов задания 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 заданий выполняются одновременно?

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

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

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

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

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