У меня есть скрипт, который запускает ~ 200 заданий для каждого суб-анализа.Я понял, что массив работ, вероятно, будет намного лучше для этого по нескольким причинам.Это кажется достаточно простым, но не совсем для меня.Мои входные файлы не нумеруются, поэтому я привел следующие примеры, которые я видел, я делаю это сначала:
INFILE=`sed -n ${SGE_TASK_ID}p <pathto/listOfFiles.txt`
Моя команда qsub принимает довольно много переменных, поскольку она одновременно извлекает и выводит в разные каталоги.$ res не изменяется, однако $ INFILE - это то, через что я зацикливаюсь.
qsub -q test.q -t 1-200 -V -sync y -wd ${res} -b y perl -I /master/lib/ myanalysis.pl -c ${res}/${INFILE}/configFile-${INFILE}.txt -o ${res}/${INFILE}/
Поскольку это не сработало, мне было любопытно, что именно было передано.Таким образом, я повторил это и увидел, что он расширяется только при первом использовании $ INFILE.Поэтому я получаю:
perl -I /master/lib/ myanalysis.pl -c mydirectory/fileABC/
вместо:
perl -I /master/lib/ myanalysis.pl -c mydirectory/fileABC/configFile-fileABC.txt -o mydirectory/fileABC/
Надеюсь на некоторую ясность в этом и приветствую все предложения.Заранее спасибо!
ОБНОВЛЕНИЕ: Не похоже, что $ SGE_TASK_ID установлен в кластере.Я искал любую переменную, которая могла бы использоваться для идентификатора массива, и не смог ничего найти.Если я увижу что-нибудь еще, я обновлюсь снова.