Практическое руководство настроило SGE для устройств CUDA?

Я услышал о Двойных Маршрутизаторах WAN. Вы могли купить один из тех, чтобы сделать задание?

Я подозреваю, что его возможное использует дистрибутив Linux под названием Vyatta, который делает Выравнивание нагрузки WAN, я думаю: http://www.vyatta.com/downloads/doc_registration.php

Другое название такого рода вещи "Связывает" или "Соединяет магистралью", я думаю.

4
задан 18 October 2011 в 12:08
4 ответа

Стратегия на самом деле довольно проста.

Используя 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 .

5
ответ дан 3 December 2019 в 02:33

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, вам просто нужно будет следовать стандартная процедура настройки датчика нагрузки:

http://gridscheduler.sourceforge.net/howto/loadsensor.html

Источники:

  1. http://marc.info/?l=npaci-rocks-discussion&m= 132872224919575 & w = 2
4
ответ дан 3 December 2019 в 02:33

Если у вас несколько графических процессоров и вы хотите, чтобы ваши задания запрашивали графический процессор, но планировщик 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.

2
ответ дан 3 December 2019 в 02:33

Для 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. Я хотел бы в конечном итоге получить такую ​​конфигурацию, так как затем я мог бы установить, какие графические процессоры будут использоваться.

Надеюсь, это поможет кому-то сэкономить несколько часов настройки.

0
ответ дан 3 December 2019 в 02:33