LPBS (Местное Portable Batch System) представляет собой инструмент для эмуляции PBS на локальной рабочей станции.
PBS / крутящий момент система планирования заданий, который используется на многих вычислительных кластеров высокой производительности. Пакет LPBS предоставляет инструменты для запуска сценариев работу PBS на локальной рабочей станции. В частности, LPBS предоставляет команду lqsub, который принимает те же параметры, как команде PBS qsub и запускает скрипт работы на местном уровне, в среде практически идентичной той, что бы обеспечить PBS / крутящий момент. Работа будет выполняться в фоновом режиме и быть назначен идентификатор задания. В отличие от системы PBS, LPBS не будет выполнять какие-либо планирование, а просто запустить работу, представленную к нему. LPBS предоставляет дополнительные инструменты для управления запущенными рабочих мест.
Установка
LPBS можно установить с PyPi, используя
пункт установить LPBS
Кроме того, пакет может быть установлен от источника с
питон setup.py установить
Конфигурация
LPBS сохраняет все свои настройки и выполнения данных в папке, указанной в переменной окружения $ LPBS_HOME. Эта переменная среды должна быть определена. Конфигурация в файле lpbs.cfg внутри $ LPBS_HOME. Если этот файл не существует, когда любой из сценариев LPBS запускаются, файл конфигурации со следующими значениями по умолчанию будут созданы:
[Сервер]
# Полное имя хоста сервера представления (hostname.domain). Будет доступен
# Запуском работу через переменную окружения pbs_server. Идентификаторы Вакансии закончится
# В имя хоста сервера
Имя хоста: локальный
домен: локальная
[Узел]
# Полное имя хоста узла исполнения (hostname.domain). Будет доступен
# Запуском работу через переменную окружения PBS_O_HOST. Так LPBS является
# Предназначен для выполнения заданий на местах, настройки здесь должно быть в основном
# Идентичны тем, в разделе [Сервер]
Имя хоста: локальный
домен: локальная
[LPBS]
# Установка для выполнения задания.
# Если "username_in_jobid" включена, то идентификаторы работа будет иметь вид
# 'Seqnr.user.hostname.domain ", где" пользователь "является имя пользователя,
# Подачи работу.
# Файл приведены в "sequence_file" используется для отслеживания в '' seqnr
# Появляться в рабочих ID.
# Файл приведены в "лог" используется для регистрации всех событий LPBS. И то и другое
# 'Sequence_file »и« лог »по сравнению с $ LPBS_HOME.
username_in_jobid: 0
sequence_file: последовательность
лог: lpbs.log
[Царапина]
# Настройки для рабочего пространства, предоставленной рабочих мест. "scratch_root" определяет
# Место, где рабочие места должны написать временных данных. Если дается как относительный путь,
# Это по отношению к $ LPBS_HOME. Переменные среды будет расширена на
# Время представления работы.
# Если значение '#' create_jobid_folder установлен в 1, папку с именем
# Полный идентификатор задания создается внутри scratch_root. Эта папка автоматически
# Удален, когда работа заканчивается, если "keep_scratch" не устанавливается в 1. Если работа
# Не удалось, царапина не будут удалены, если "delete_failed_scratch" не установлен
# 1.
scratch_root: $ SCRATCH_ROOT
create_jobid_folder: 0
keep_scratch: 0
delete_failed_scratch: 0
[Уведомление]
# Настройки, как пользователь должен быть уведомления о таких событиях, как в начале
# И конец работы. Если sent_mail установлен в 1, сообщения электронной почты будут отправлены на
# Уведомления в зависимости от стоимости '-m', чтобы lqsub. Если
# 'Send_growl "устанавливается в 1, Growl (http://growl.info) используется для уведомления
# На MacOS X. Уведомления через Growl не принимать во внимание "-m 'опции
# Во время представления работы.
send_mail: 0
send_growl: 0
[Почта]
# SMTP настройки уведомлений по электронной почте. Уведомления по электронной почте будет отправлено от
# Адрес задается опцией «от». SMTP-сервер приведены в "SMTP" является
# Используется для отправки сообщения электронной почты, если "аутентификацию 'установлен в 1, аутентификация
# Сделано с данной "имя пользователя" и "пароль". Если "TLS" 1, шифрование TLS
# будет использован.
от: nobody@example.org
SMTP: smtp.example.com:587
Имя пользователя: пользователь
Пароль: секрет
аутентификации: 0
TLS: 1
[Growl]
# Настройки уведомлений Growl для. Уведомления направляются либо
# Локальный или удаленный хост с помощью протокола ГНТП. Установка "имя хоста"
# Дает адрес и порт сервера Growl, данная "пароль" это
# Используется для аутентификации (обратите внимание, что при отправке на локальный, не
# Аутентификации необходимо, и пароль должен быть пустым). Если
# 'Липкие' установлен в 1, уведомления Growl будет липким. это
# Можно посылать уведомления более одного хоста. В этом случае, как
# 'Имени хоста' и 'Пароль' должен быть разделенный запятыми список значений, с
# Каждый элемент, соответствующий одного хоста. Например.
# Имя хоста: локальный, RemoteHost
# Пароль:, секрет
Имя хоста: локальный: 23053
пароль:
Важно: 0
[Журнал]
# 'Лог' дает имя файла журнала центральной, относительно $ LPBS_HOME.
лог: lpbs.log
Обратите внимание, что если используется конфигурационный файл по умолчанию, переменная $ SCRATCH_ROOT среда должна быть определена и каталог он указывает на существование и должны быть доступны для записи для всех пользователей, которые представляют рабочие места.
Для установки всей системы, / вар / lpbs является подходящим местом для $ LPBS_HOME. Переменная среды могут быть установлены в /etc/bash.bashrc для всех пользователей. Для установки в пространстве пользователя, virtualenv рекомендуется.
После основного файла конфигурации, файл $ HOME / .lpbs.cfg также будет читать. Пользователь может использовать это, чтобы переопределить настройки в конфигурации системы. Наконец, команда qsub также имеет --config вариант, который позволяет указать еще дополнительный конфигурационный файл для чтения.
Использование
LPBS содержит сценарии lqsub, lqstat и lqdel, который эмулировать PBS / МОМЕНТ команды qsub, qstat и lqdel, соответственно. Команда lqsub используется для отправки заданий, lqstat используется для отображения информации о выполнении заданий и lqdel используется, чтобы прервать выполнение заданий. Например:
Goerz @ локальный: ~> lqsub job.pbs
3.localhost.local
Goerz @ локальный: ~> lqstat
Работа ID Имя Walltime
-------------------- --------------- --------------- ---------------
3.localhost.local pbstest Goerz 0:00:22
Goerz @ локальный: ~> lqstat -f 3.localhost.local
Работа Id: 3.localhost.local
& NBSP; JOB_NAME = pbstest
& NBSP; Job_Owner = Goerz
& NBSP; сервер = localhost.local
& NBSP; exec_host = localhost.local
& NBSP; PID = 14649
& NBSP; Error_Path = STDERR
& NBSP; Join_Path = True
& NBSP; Mail_Points = п
& NBSP; OUTPUT_PATH = pbstest.out
& NBSP; resources_used.walltime = 0:00:43
Goerz @ локальный: ~> lqdel 3.localhost.local
Команда qsub предназначен, чтобы понять все параметры командной строки командования qsub крутящего версии 2.18, кроме того, что все параметры, связанные с планированием, молча игнорируются. Следовательно, все сценарий работы PBS должна быть submittable без изменений. Для получения подробной информации, запуска lqsub, lqstat и lqdel с опцией --help, и / или обратиться к руководству крутящий момент.
Пример работы скрипта
Ниже приведен пример простого PBS работы скрипта, который выведет полную среду, что работа видит. Вы можете представить эту работу как с LPBS и PBS / МОМЕНТ чтобы убедиться, что с соответствующими настройками в lpbs.cfg, LPBS обеспечивает одинаковую среду как LPBS.
#! / bin / Bash
#PBS -N Pbstest
#PBS -j Ое
#PBS -l Узлы = 1: 1 = ррп
#PBS -l Walltime = 00: 00: 10
#PBS -l MEM = 10mb
#PBS -o Pbstest.out
эхо "################################################ #### "
эхо "Пользователь: $ PBS_O_LOGNAME"
эхо "Пакетная работа началась на $ PBS_O_HOST"
эхо "PBS ID Вакансии: $ PBS_JOBID"
эхо "PBS имя задания: $ PBS_JOBNAME"
эхо "PBS рабочий каталог: $ PBS_O_WORKDIR"
эхо "Работа началась" `` hostname` date`
эхо "Текущий каталог:` "pwd`
эхо "PBS среды: $ PBS_ENVIRONMENT"
эхо "################################################ #### "
эхо "################################################ #### "
эхо "Полный среды:"
printenv
эхо "################################################ #### "
эхо "Задание выполняется на следующий узел:"
кот $ {} PBS_NODEFILE
эхо "################################################ ########## "
эхо "Работа Выполнил:" `date`
выход 0
Требования
- Python
Комментарии не найдены