2016-03-06 2 views
1

Я использую Sungrid6.2u5, я пытаюсь отправить несколько заданий на 4 хоста, мне нужно запустить 50 заданий, используя все 4 хоста, но я хочу сообщить SGE, что я хочу, чтобы только 5 заданий выполнялись на 4-м хозяин в любой момент времени, как мне это сделать?Как ограничить количество заданий на хосте, используя Sungrid?

Я новичок в SunGrid. Может ли кто-нибудь указать мне на основы SGE, я имею в виду, с чего начать? Я нашел это в Интернете,

Руководство для начинающих Sun Grid Engine 6.2 Даниэль Templeton
но, видимо, это предназначено для системных администраторов, я просто обычный пользователь, который пытается понять особенности ПГЭ.

Спасибо,

ответ

0

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

Если у вас есть совершенно 20 Гб на computer04 и ваша работа использует 5 Гб, вы можете ограничить все задания на использование 5Gb памяти:

qsub -l vmem=5G my_work

Аналогичное справедливо и для количества диска:

qsub -l fsize=10G my_work

Я нашел, что можно запустить задание на конкретном хосте с опцией -l -h=.

qsub -l -h=computer04 -l vmem=5G my_work 

для 5 рабочих мест. Затем используйте

qsub -l vmem=5G my_work 

для других 45 рабочих мест.


(Более грязный способ) Вы могли бы сделать это без памяти ограничений/дисков:

qsub -l -h=computer04 my_work # 5 jobs 
qsub -l -h="!computer04" my_work # for 45 jobs 

Если у вас есть разные очереди или ресурсы, и вы можете использовать их для разных заданий. Например, у вас есть queue_4, который работает все на computer04 и queue_main, который связан с другими компьютерами, то вы

qsub -q queue_4 my_work 

на 5 рабочих мест и

qsub -q queue_main my_work 

для других работ.


UPD на комментарий:

можно заставить SGE отказ более X рабочих мест для пользователя/хоста. Это должно быть сделано администратором очереди.

qconf -arqs 
{ 
    name   max_jobs_per_computer04 
    description "maximal number of jobs for user1 on computer04 restricted to 5!" 
    enabled  TRUE 
    limit  users user1 hosts computer04 to slots=5 
} 

Если вы хотите ограничить пользователя только при подаче рабочих мест какой-то для computer04, вам нужно определить complex parameter, как показано here.

+0

Спасибо за ваш ответ. Но у меня нет нескольких очередей, есть только одна очередь с 4 хостами. Я ищу какой-то переключатель или что-то, благодаря чему я могу ограничить количество заданий до 5 на 4-м хосте, используя три других узла с максимальным потенциалом. Возможно ли это? – shiva1987

+0

Используйте 'qsub -l -h = computer04 my_work' для 5 заданий и' qsub -l -h = "! Computer04" для других 46. Но я предлагаю добавить 'vmem' или другую спецификацию ресурсов, чтобы полностью занять хост, потому что без него кто-то все равно сможет отправить задания на 4-й хозяин. –

+0

note my math '5 + 46 = 50': D –