Как оценить потребность в памяти для отправки задания в кластер с SGE?

Я пытаюсь отправить задание в кластер [работает Sun Grid Engine (SGE)]. Работа продолжала завершаться со следующим отчетом:

Job 780603 (temp_new) Aborted
 Exit Status      = 137
 Signal           = KILL
 User             = heaswara
 Queue            = [email protected]
 Host             = comp-0-8.local
 Start Time       = 08/24/2013 13:49:05
 End Time         = 08/24/2013 16:26:38
 CPU              = 02:46:38
 Max vmem         = 12.055G
failed assumedly after job because:
job 780603.1 died through signal KILL (9)

Требования к ресурсам, которые я установил, были следующими:

#$ -l mem_free=10G
#$ -l h_vmem=12G

mem_free — это объем памяти, который требуется для моего задания, а h_vmem — это верхняя граница объема памяти, который разрешено использовать заданию. Интересно, моя работа прекращается, потому что она требует больше, чем этот порог (12G). Есть ли способ оценить, сколько памяти потребуется для моей операции? Я пытаюсь выяснить, что должно быть верхней границей. Заранее спасибо.


person user1938965    schedule 24.08.2013    source источник


Ответы (1)


Это зависит от характера самой работы. Если вы знаете что-нибудь о выполняемой программе (т. е. вы ее написали), вы должны быть в состоянии оценить, сколько памяти ей потребуется. Если нет, ваш единственный выход — запустить его без ограничений и посмотреть, сколько он на самом деле использует.

У меня есть куча заданий по сборке и моделированию ПЛИС, которые я выполняю. После каждого задания я отслеживаю, сколько памяти фактически было использовано. Я могу использовать эту историческую информацию, чтобы оценить, сколько она может использовать в будущем (я добавляю 10% на случай, если в исходном коде будут какие-то странные изменения). Мне по-прежнему приходится переделывать расчеты всякий раз, когда поставщик поставляет новую версию инструментов, поскольку довольно часто резко меняется объем используемой памяти.

person jlp    schedule 15.09.2013