Назад | Перейти на главную страницу

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

Я хочу иметь возможность устанавливать требования к памяти для каждого задания.

Например: для выполнения 5 заданий, для каждого из которых, я знаю, потребуется 4 ГБ памяти. У меня 16 ГБ ОЗУ на сервере Ubuntu и 16 ГБ подкачки. Я не хочу использовать своп. Могу я сделать что-нибудь вроде:

qsub -l mem_required_for_my_job=4G job1
qsub -l mem_required_for_my_job=4G job2
qsub -l mem_required_for_my_job=4G job3
qsub -l mem_required_for_my_job=4G job4
qsub -l mem_required_for_my_job=4G job5

? В какой-то момент задания потребуют 4 ГБ, но не вначале.

Как сообщить SGE, каковы мои требования? Как избежать планирования 5 x 4 ГБ, когда доступно только 16 ГБ?

Я прочитал руководство пользователя и попробовал s_vmem, h_vmem, mem_free, mem_used. Я не хочу ни одного из них. Я не хочу, чтобы моя работа была прервана посреди обработки. Я хочу, чтобы они не планировались, пока не будет доступен максимум необходимых ресурсов.

Я могу это сделать?

Спасибо вам всем!

В нашем кластере мы используем h_vmem для принудительного выделения памяти заданию.

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

Затем на каждом хосте с qconf -me вам нужно установить количество доступной памяти в complex_values.

Например, у нас есть определения хоста, которые выглядят так:

hostname              node004
load_scaling          NONE
complex_values        h_vmem=30.9G,exclusive=1,version=3.3.0

Я думаю, что вы ищете virtual_free

«Если запрос задания для virtual_free превышает доступное количество, задание не отправляется в очередь на этом хосте». из https://web.archive.org/web/20100801220839/http://wikis.sun.com/display/GridEngine/Configuring+Complex+Resource+Attributes

Смотрите также http://markmail.org/message/2iw4esthqvs5rc2a