Как отправить на работу SGE вызов моего скрипта на python

3

Итак, я хочу запустить python script на удаленном компьютере. Однако в руководстве к серверу они говорят следующее:

Вам нужно создать этот script и сохранить его.

#!/bin/bash
#$ -V ## pass all environment variables to the job, VERY IMPORTANT
#$ -N run_something ## job name
#$ -S /bin/bash ## shell where it will run this job
#$ -j y ## join error output to normal output
#$ -cwd ## Execute the job from the current working directory
#$ -q lowmemory.q ## queue name
uptime > myUptime.${JOB_ID}.txt
echo $HOSTNAME >> myUptime.${JOB_ID}.txt

Итак, если этот script был вызван blast_AE004437.sh, мы могли бы запустить следующее, чтобы выполнить все эти шаги.

qsub my_script.sh

Итак, я предполагаю, что мне нужно создать файл .sh для его запуска и добавить все эти команды в исходный script. Это оно? Потому что я делаю это, и ничего не происходит. После всех этих команд я также добавляю "python2.7" для загрузки python. Что я делаю неправильно? Кстати, выход выйдет в том же файле или мне нужно загрузить другой файл?

  • 0
    Если у вас есть файл python с именем my_script.py на удаленной машине, на которой установлен python, вы можете запустить python my_script.py из командной строки для выполнения сценария. Если это не тот ответ, который вы искали, помогут некоторые разъяснения.
  • 1
    Ну, они просят нас не делать этого, потому что это запустит скрипт в головном узле, что может иметь значение для использования сервера другими пользователями.
Теги:
job-scheduling

1 ответ

2
Лучший ответ

Файл, который вы указали, является началом запуска SGE script который вызывается планировщиком заданий. qsub отправляет его в расписание система. Как только на кластерной машине имеется свободный слот, запускается script.

Я предлагаю вам называть ваш собственный script в этом файле.

...
echo $HOSTNAME >> myUptime.${JOB_ID}.txt

cd /directory/of/your/script                         # change directory  
python2.7 your_script.py arg1 arg2 ... >> output.${JOB_ID}.log  # call your script

Часто вам также необходимо установить переменную $PATH и переменную $PYTHONPATH вручную прежде чем вы сможете вызвать python.

  • 1
    Извините, я новичок во всем этом использовании серверов. Итак, вы имеете в виду, что я должен просто запустить все эти команды в моем окне терминала, не так ли? А что вы подразумеваете под "arg1 arg2"?
  • 0
    Нет, это строки, которые вам нужно скопировать в скрипт my_script.sh ( my_script.sh ), который затем вызывает ваш скрипт на удаленных машинах. arg1 и arg2 являются просто примерами, если вы хотите предоставить аргументы командной строки для вашего скрипта (вы можете пропустить их, если они вам не нужны). Вывод вашего скрипта в stdout (команда print на python) записывается в файл output.JOBID.log.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню