Существует лучший способ...
Я действительно удивлен тем, как долго этот вопрос оставался без хорошего ответа. Возможно, конкретная версия qsub
не была указана. qsub
существует по крайней мере в Torque, а также в Sun Grid Engine, возможно, в других планировщиках. Итак, важно знать, что вы используете. Я расскажу о некоторых здесь:
КРУТЯЩИЙ МОМЕНТ: qsub -F <arguments> command
справочная страница
пример того, как я обычно его использую. Начиная с этого примера сценария, который просто повторяет любые переданные ему аргументы:
$ cat testArgs.pbs
#!/usr/bin/env bash
echo $@
Я бы представил работу так:
$ qsub -F "--here are the --args" testArgs.pbs
3883919.pnap-mgt1.cm.cluster
А вот так выглядит выходной файл после запуска:
$ cat testArgs.pbs.o3883919
--here are the --args
Двигатель солнечной сети: qsub command [ command_args ]
справочная страница
Вы просто добавляете аргументы после команды, как и будет при выполнении в оболочке. У меня нигде не работает SGE, поэтому нет примера для этого. Но то же самое и со Slurm, который ниже
Слёрм: sbatch command [ command_args ]
справочная страница
Здесь я отправляю тот же скрипт, что и в приведенном выше примере Torque:
$ sbatch testArgs.sh what the heck
Submitted batch job 104331
И результаты:
$ cat slurm-104331.out
what the heck
Экспорт переменных среды != передача аргументов
Экспорт переменных среды сильно отличается от передачи аргументов команде.
Вот хорошее обсуждение различий.
Ответы qsub
прежде всего рекомендуют -v
. Чтобы было ясно, -v
экспортирует переменные среды, -F
передает аргументы в команду.
Обычно я предпочитаю параметризовать свои сценарии, допуская аргументы. На самом деле, я бы сказал, что гораздо чаще используются такие скрипты process_data.sh --threads 8
, чем что-то вроде export THREADS=8; process_data.sh
.
person
calico_
schedule
20.09.2017
qsub
?qsub 'script.sh -r firstparam -s secondparam'
Не знаю, работает ли это в данном случае. - person Dennis Williamson   schedule 17.08.2010qsub
; вы имеете в виду этот? - person Keith Thompson   schedule 16.01.2012