Я услышал о Двойных Маршрутизаторах WAN. Вы могли купить один из тех, чтобы сделать задание?
Я подозреваю, что его возможное использует дистрибутив Linux под названием Vyatta, который делает Выравнивание нагрузки WAN, я думаю: http://www.vyatta.com/downloads/doc_registration.php
Другое название такого рода вещи "Связывает" или "Соединяет магистралью", я думаю.
Стратегия на самом деле довольно проста.
Используя qconf -mc
, вы можете создать сложный ресурс под названием gpu
(или как вам угодно назови это). Определение ресурса должно выглядеть примерно так:
#name shortcut type relop requestable consumable default urgency
#----------------------------------------------------------------------------------------------
gpu gpu INT <= YES YES 0 0
Затем вы должны отредактировать определения хоста exec с помощью qconf -me
, чтобы установить количество графических процессоров на хостах exec, у которых они есть:
hostname node001
load_scaling NONE
complex_values gpu=2
user_lists NONE
xuser_lists NONE
projects NONE
xprojects NONE
usage_scaling NONE
report_variables NONE
Теперь, когда вы настроить хосты exec, вы можете запрашивать ресурсы gpu при отправке заданий. например: qsub -l gpu = 1
и gridengine будет отслеживать количество доступных графических процессоров.
Если на каждом узле, использующем графический процессор, выполняется более одного задания, вы можете разместить свои графические процессоры в эксклюзивном режиме. Это можно сделать с помощью утилиты nvidia-smi
.
Open Grid Engine добавил поддержку датчика нагрузки графического процессора в выпуске 2011.11 без необходимости в nvidia-smi. Выходные данные приложения nvidia-smi могут (и меняются) изменяться между выпусками драйверов, поэтому другой подход не рекомендуется.
Если у вас есть исходное дерево GE2011.11, найдите: dist / gpu / gpu_sensor.c
Чтобы скомпилировать датчик нагрузки (необходим набор инструментов CUDA на system):
% cc gpu_sensor.c -lnvidia-ml
И если вы просто хотите увидеть статус, сообщаемый датчиком нагрузки в интерактивном режиме скомпилируйте с:
-DSTANDALONE
Чтобы использовать датчик нагрузки в кластере Grid Engine, вам просто нужно будет следовать стандартная процедура настройки датчика нагрузки:
Источники:
Если у вас несколько графических процессоров и вы хотите, чтобы ваши задания запрашивали графический процессор, но планировщик Grid Engine должен обрабатывать и выбирать бесплатные графические процессоры, вы можете настроить комплекс RSMAP (карта ресурсов) (вместо INT). Это позволяет вам указать количество, а также имена графических процессоров на конкретном хосте в конфигурации хоста. Вы также можете настроить его как расходный материал HOST, чтобы независимо от слотов, которые вы запрашиваете, количество устройств GPU, запрошенных с -l cuda = 2, для каждого хоста 2 (даже если параллельное задание получило, например, 8 слотов на разных хостах).
qconf -mc
#name shortcut type relop requestable consumable default urgency
#----------------------------------------------------------------------------------------------
gpu gpu RSMAP <= YES HOST 0 0
В конфигурации исполняющего хоста вы можете инициализировать свои ресурсы с помощью идентификаторов / имен ( здесь просто GPU1 и GPU2).
qconf -me yourhost
hostname yourhost
load_scaling NONE
complex_values gpu=2(GPU1 GPU2)
Затем при запросе -l gpu = 1 планировщик Univa Grid Engine выберет GPU2, если GPU1 уже используется другим заданием. Вы можете увидеть фактический выбор в выводе qstat -j. Задание получает выбранный графический процессор, считывая переменную среды $ SGE_HGR_gpu, которая в данном случае содержит выбранный идентификатор / имя «GPU2». Это можно использовать для доступа к нужному графическому процессору без конфликтов.
Если у вас есть хост с несколькими сокетами, вы даже можете подключить графический процессор непосредственно к некоторым ядрам процессора рядом с графическим процессором (рядом с шиной PCIe), чтобы ускорить обмен между GPU и CPU. Это возможно, добавив маску топологии в конфигурацию хоста выполнения.
qconf -me yourhost
hostname yourhost
load_scaling NONE
complex_values gpu=2(GPU1:SCCCCScccc GPU2:SccccSCCCC)
Теперь, когда планировщик UGE выбирает GPU2, он автоматически связывает задание со всеми 4 ядрами (C) второго сокета (S), так что задание не разрешается запустить на первом сокете. Для этого даже не требуется параметр -binding qsub.
Дополнительные примеры конфигурации вы можете найти на www.gridengine.eu .
Обратите внимание, что все эти функции доступны только в Univa Grid Engine ( 8.1.0 / 8.1.3 и выше), но не в SGE 6.2u5 и других версиях Grid Engine (например, OGE, Sun of Grid Engine и т. Д.). Вы можете попробовать его, загрузив 48-ядерную ограниченную бесплатную версию с сайта univa.com.
qconf -me yourhost
hostname yourhost
load_scaling NONE
complex_values gpu=2(GPU1:SCCCCScccc GPU2:SccccSCCCC)
Теперь, когда планировщик UGE выбирает GPU2, он автоматически привязывает задание ко всем 4 ядрам (C) второго сокета (S), чтобы задание не могло выполняться на первом сокете. Для этого даже не требуется параметр -binding qsub.
Дополнительные примеры конфигурации вы можете найти на www.gridengine.eu .
Обратите внимание, что все эти функции доступны только в Univa Grid Engine ( 8.1.0 / 8.1.3 и выше), но не в SGE 6.2u5 и других версиях Grid Engine (например, OGE, Sun of Grid Engine и т. Д.). Вы можете попробовать его, загрузив 48-ядерную ограниченную бесплатную версию с сайта univa.com.
qconf -me yourhost
hostname yourhost
load_scaling NONE
complex_values gpu=2(GPU1:SCCCCScccc GPU2:SccccSCCCC)
Теперь, когда планировщик UGE выбирает GPU2, он автоматически привязывает задание ко всем 4 ядрам (C) второго сокета (S), чтобы задание не могло выполняться на первом сокете. Для этого даже не требуется параметр -binding qsub.
Дополнительные примеры конфигурации вы можете найти на www.gridengine.eu .
Обратите внимание, что все эти функции доступны только в Univa Grid Engine ( 8.1.0 / 8.1.3 и выше), но не в SGE 6.2u5 и других версиях Grid Engine (например, OGE, Sun of Grid Engine и т. Д.). Вы можете попробовать его, загрузив 48-ядерную ограниченную бесплатную версию с сайта univa.com.
что все эти функции доступны только в Univa Grid Engine (8.1.0 / 8.1.3 и выше), но не в SGE 6.2u5 и других версиях Grid Engine (например, OGE, Sun of Grid Engine и т. д.). Вы можете попробовать это, загрузив 48-ядерную ограниченную бесплатную версию с сайта univa.com. что все эти функции доступны только в Univa Grid Engine (8.1.0 / 8.1.3 и выше), но не в SGE 6.2u5 и других версиях Grid Engine (например, OGE, Sun of Grid Engine и т. д.). Вы можете попробовать это, загрузив 48-ядерную ограниченную бесплатную версию с сайта univa.com.Для SGE 2011.11, поставляемого с ROCKS 6.1, я обнаружил, что установка расходных материалов комплекса на:
#name shortcut type relop requestable consumable default urgency
#----------------------------------------------------------------------------------------------
gpu gpu INT <= YES JOB 0 0
Это позволило мне установить количество графических процессоров на узел, и когда я отправил задание, количество запрошенных графических процессоров не зависело от количества SMP / SLOT. Затем я могу использовать 8 процессоров и 4 графических процессора для каждой задачи и не вызывать проблем с утечкой других задач. Мне все равно пришлось установить расходные материалы для узлов, как указано выше.
Это не такое хорошее решение, как некоторые другие, но я обнаружил, что опция RSMAP не была доступна в SGE 2011.11. Я хотел бы в конечном итоге получить такую конфигурацию, так как затем я мог бы установить, какие графические процессоры будут использоваться.
Надеюсь, это поможет кому-то сэкономить несколько часов настройки.