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

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

Job 780603 (temp_new) Aborted
 Exit Status      = 137
 Signal           = KILL
 User             = heaswara
 Queue            = std.q@comp-0-8.local
 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). Есть ли способ оценить, сколько памяти потребуется для моей работы? Я пытаюсь понять, какой должна быть верхняя граница. Заранее спасибо.

1 ответ

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

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

Другие вопросы по тегам