qsub возвращает ошибку при отправке заданий с узла

У меня есть сложное приложение Fortran MPI, работающее в системе Torque/Maui. Когда я запускаю свое приложение, оно выдает огромный уникальный результат (~ 20 ГБ). Чтобы избежать этого, я создал сценарий RunJob, который разбивает выполнение на 5 частей, каждая из которых дает меньшие выходные данные, с которыми гораздо проще справиться.

На данный момент мой сценарий RunJob правильно останавливается в конце первой части и также выдает правильный вывод. Однако, когда он пытается перезапустить, я получаю следующее сообщение об ошибке:

qsub: неверный UID для выполнения задания MSG=ruserok не удалось проверить имя пользователя/имя пользователя из calculate-0-0.local

Я знаю, что эта проблема возникает из-за того, что система Torque/Maui по умолчанию не позволяет узлу отправлять задание.

На самом деле, когда я набираю это:

qmgr -c 'л с' | grep allow_node_submit

Я получил:

allow_node_submit = Ложь

У меня нет учетной записи администратора, только пользовательская

Мои вопросы:

  1. Можно ли установить allow_node_submit = true для gmgr, являющегося пользователем? Как ? (- вроде нет)
  2. Если вопрос 1 = false, есть ли другой способ обойти это? Как ?

Всего наилучшего.


person Quim    schedule 29.08.2014    source источник


Ответы (1)


Нет, непривилегированный пользователь не может изменить настройки системы массового обслуживания. Обычная причина запрета повторной отправки с вычислительных узлов довольно веская — чтобы защитить кластер и всех его пользователей от того, кто случайно (или иным образом) отправит скрипт, который быстро дает сбой и повторно отправляет себя один раз — или намного хуже, более одного раза - быстро заполняет планировщик и очередь, создавая пакетную очередь, эквивалентную форк-бомбе. Даже с такими ограничениями у нас были люди, которые случайно отправляли десятки тысяч вакансий одновременно из-за ошибок скриптов.

Обычный обходной путь заключается в том, чтобы подключиться по ssh к одному из узлов отправки очереди и отправить скрипт оттуда, например. в конце вашего сценария представления:

ssh queue-head-node qsub /path/to/new/submission/script

Вот как мы предлагаем нашим пользователям обращаться с этим, например. здесь. Это, очевидно, будет работать, только если у вас включен ssh без пароля/парольной фразы в кластере, что является обычной (но не универсальной) практикой.

В качестве альтернативы, если это обычный случай автоматической отправки серии заданий, которые продолжают выполнение, вы можете посмотреть, как обрабатываются зависимости заданий на вашем сайте, и отправить группу заданий, каждое из которых зависит от успешного завершения выполнения. последний, который затем будет работать по порядку.

person Jonathan Dursi    schedule 29.08.2014
comment
Привет @Jonathan ... Это сработало отлично! Большое спасибо, правда. Пришлось указать полный путь к qsub - хоть он и лежит у меня на пути. Последняя команда: ssh username@headnodename /opt/torque/bin/qsub path/to/my/application. Еще раз спасибо. Меня интересует ваше последнее предложение: вы можете посмотреть, как на вашем сайте обрабатываются зависимости работы. Не могли бы вы дать больше информации об этом? Где его искать? ... всего наилучшего. - person Quim; 30.08.2014
comment
Это зависит от вашей версии крутящего момента и того, как все настроено локально, поэтому лучше всего обратиться к администратору кластера, но есть некоторая документация здесь. - person Jonathan Dursi; 30.08.2014