Sun Grid Engine приостанавливает работу вместо перезапуска заданий

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

Когда задание с высоким приоритетом завершается, задание с низким приоритетом перезапускается. Есть ли способ со стороны пользователя заставить его приостановить работу на машине, на которой он был первоначально запущен, через SIGSTOP или что-то еще, не убивая процесс? К сожалению, контрольные точки здесь не подходят, поэтому я хотел бы иметь возможность выполнять задание, не выбрасывая то, что находится в памяти.

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

1. start the process locally
2. send a SIGSTOP
3. make the job script send SIGCONT and just spin watching the process
4. when the job gets suspended, send a SIGSTOP again
5. when the job gets resumed, it should just send a SIGCONT

но я бы предпочел сделать все в рамках SGE, чтобы избежать неприятных сюрпризов


person zje    schedule 17.04.2012    source источник


Ответы (1)


Механизм приостановки/остановки в SGE управляется для каждой очереди свойствами suspend_method, resume_method и terminate_method. Значения по умолчанию:

  • suspend_method - отправить SIGSTOP
  • resume_method - отправить SIGCONT
  • terminate_method - отправить SIGKILL

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

person Hristo Iliev    schedule 04.05.2012
comment
Есть ли способ, которым обычный пользователь может изменить эти свойства или только администраторы очереди? - person zje; 05.05.2012
comment
Для изменения свойств очереди требуются привилегии оператора root или SGE. - person Hristo Iliev; 05.05.2012