Создание рендер-фермы (сетевой рендеринг)

19 августа 2013 54 комментария Артем Слаква Рендеринг и освещение

Рендер-ферма — это простой набор сетевых компьютеров, которые работают вместе для выполнения вычислений за меньшее время. Путем распределения общего количества работы между несколькими машинами, время выполнения рендера сокращается до времени, которое необходимо потратить одному компьютеру для выполнения расчетов. Большинство профессиональных студий заполняют целые комнаты стойками, содержащими тысячи компьютеров, потому как данное решение является выгодным, с точки зрения времени и финансов. Однако данное решение может быть выгодным (и финансово жизнеспособным) для небольших студий или даже отдельных лиц.

В качестве рендер-фермы может выступать обычный кластер, стоимостью несколько тысяч долларов, или это может быть группа обычных компьютеров соединенных между собой по сети. Вы даже можете пригласить к себе нескольких друзей с ноутбуками и организовать из них ферму. Единственным требованием является, чтобы все машины удовлетворяли минимальным системным требованиям для Blender. Работать они могут под управлением операционных систем Linux, Mac OSX, Windows или в любом сочетании данных ОС.

Blender легко позволяет воспользоваться сетевым рендерингом. Главная цель, которую я хочу донести в этом уроке, это то, что поднять уровень производительности может каждый, независимо от бюджета.

Статья разбита на три этапа. На первом этапе будет показан процесс создания одной единицы фермы. Данный вариант может не вписаться в бюджет каждого пользователя, но он должен дать основное понятие создания данных систем и их потенциал.

Второй этап охватывает процесс подключения всех компьютеров в локальную сеть, и контроль всех узлов через ведущую машину, с помощью VNC. Данный этап разъясняется для ОС: Linux, Mac OSX и Windows.

На третьем этапе будет показано как пользоваться аддоном для Blender Network Render. Это даст нам удобный инструмент для запуска, управления и мониторинга процесса выполнения сетевого рендеринга.


Создание одного узла фермы

Ваша ферма полностью настраивается от аппаратного до программного обеспечения. Единственным ограничением является Ваш бюджет. В данном примере бюджет составляет 3000$ на 6 узлов фермы. Вы же можете выбирать те компоненты, которые считаете необходимыми для построения своей уникальной единицы.

Покупка оборудования
  • Helmer Cabinet: Шкаф Helmer от IKEA будет идеальным корпусом для небольшой фермы.
  • Ethernet Hub: Данный Hub позволит собрать наши компьютеры в сеть. Помните, что нам понадобятся 7 разъемов: 6 для подключения нодов и 1 для подключения к маршрутизатору.
  • Power Strip: Так как наш шкафчик имеет колесики, то было бы не плохо иметь удлинитель для его подключения. Опять же, помним, что нам нужно минимум 7 разъемов.
  • PC Screw and Accessory Kit: Набор из различных винтиков, шайб и креплений во время сборки является просто необходимым.

Первые 4 пункта необходимо купить в одном экземпляре. Все, что ниже необходимо закупить по 6 единиц каждого:

  • CPU (6x): Выбор на данный процессор пал из-за большого количества ядер при относительно низкой цене.
  • RAM (6x): Здесь всегда просто — чем больше, тем лучше. Две планочки по 8 Гб отлично подходят под данный бюджет.
  • Motherboard (6x): При выборе материнской платы, я руководствовался тремя основными вещами: размеры платы, процессорный сокет и наличие встроенной графики. Плата должна свободно расположится внутри ящика, оставляя достаточно места для блока питания и остальных компонентов. Сокет должен быть подходящий для выбранного процессора (логично). И, наконец, можно хорошо сэкономить, не покупая 6 видеокарт.
  • Storage (6x): Жесткие диски нам нужны лишь для загрузки и хранения ОС. Большой объем нам здесь ни к чему, поэтому выбор пал на 160 GB scorpio blue от Western Digital.
  • Power Supply (6x): Так как в нашем ПК отсутствует прожорливая видеокарта и энергоэффективный жесткий диск, то нам подойдет блок питания на 380W.
  • Cooling Fan (6x): Также нам необходим куллер для охлаждения нашего процессора. Главным критерием здесь является размер (помним про наш тесный ящик). 80-миллиметровый куллер подошел идеально.
  • Power Button (6x): Наши узлы необходимо как-то включать и выключать.
  • LED (6x): Было принято решение добавить светодиод к каждому узлу, чтобы знать когда происходит обращение к его жесткому диску. Этот шаг не обязателен, но выглядит это интересно.
  • Ethernet Cable (6x): Стандартные CAT6 кабеля для подключения каждого узла к концентратору. Я рекомендую не короче одного метра в длину.
Сбор системы
Необходимые инструменты: дрель с металлическим диском и отвертка

1. Если Вы выбрали для своей рендер-фермы шкаф Helmer от IKEA, то, для начала, Вам необходимо будет собрать его согласно инструкции оставив заднюю крышку открытой, чтобы воздух мог циркулировать. Также необходимо сделать 2 отверстия в ящике: для блока питания и процессорного куллера. Еще необходимо одно отверстие сбоку ящика для доступа к разъемам материнской платы. На дне ящика необходимо просверлить 4 отверстия для крепления материнской платы, а также проделать отверстия на передней части для кнопки включения и LED-индикатора (если таковой имеется).

render-farm

render-farm

render-farm

render-farm

2. Для начала установите процессор и куллер, а также установите обе планки оперативной памяти.
3. Теперь необходимо прикрепить материнскую плату ко дну ящика. Для крепления использовались лишь 4 отверстия по краям платы. Повторить процедуру необходимо для каждого ящика (создание отверстий можно делать по шаблону).

render-farm

render-farm

render-farm

4. Подключите кнопку включения питания к соответствующему разъему на материнской плате (они обозначены в инструкции к плате).
5. Далее идет установка блока питания. Установите его в нужное положение, зафиксируйте винтами и подключите питание процессора и платы.

render-farm

render-farm

render-farm

render-farm

6. Теперь установите 80-миллиметровый куллер возле блока питания и подключите его в соответствующий разъем на материнской плате.

render-farm

render-farm

render-farm

render-farm

7. Настал черед жесткого диска. Подключаем кабель SATA в соответствующие разъемы на плате и на HDD. Также подключаем питание для жесткого диска. Между 80-миллиметровым куллером и платой есть немного свободного места, вот там-то его и можно расположить.

render-farm

render-farm

render-farm

render-farm

8. Сбор узла закончен. Перед тем, как закрыть ящик, на боковой панели необходимо подключить сетевой кабель и вывести его наружу.
9. Повторите данную процедуру для всех узлов и подключите кабеля к роутеру.

render-farm

render-farm

render-farm

render-farm

10. Теперь узлы полностью готовы для установки на них операционной системы. Для этого Вам понадобится монитор, носитель ОС (USB-дисковод или флешка), клавиатура и мышь. Для своей фермы я выбрал Linux Fedora 17 LXDE. Вы же можете установить ту ОС, которая Вам больше всего по душе.
farm24


Настройка сети

Так как каждый наш узел соединен через Ethernet, то мы имеем полноценную локальную сеть. Но как нам заставить работать ее? Для этого, я предлагаю контролировать сеть через один главный компьютер, при помощи VNC.
farm25
Virtual Network Computing — система удалённого доступа к рабочему столу компьютера, использующая протокол RFB. Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой, и ретрансляции содержимого экрана через компьютерную сеть.

VNC для Mac

1. Откройте System Preferences > Sharing и слева включите Screen Sharing.
2. Обратите внимание на информацию, выделенную зеленым цветом, которая объясняет, как получить доступ к компьютеру: vnc://192.168.1.2 (IP address)
Из соображений безопасности, рекомендую установить пароль на VNC. Выберите Computer Settings, отметьте VNC viewers may control screen with password, введите пароль и нажмите ОК.

render-farm

render-farm

3. Ваш Mac теперь доступен для остальных машин. Чтобы получить доступ к другим машинам, перейдите в Finder, выберите в меню Go > Connect to Server (или command + K). Тип vnc://192.168.1.x, где х — целевой ПК.

Если вы используете подключение Mac-к-Mac, то Вам необходимо вводить имя пользователя и пароль для целевой машины. В случае использования Linux-к-Mac или Windows-к-Mac, Вам нужно вводить лишь пароль VNC.

render-farm

render-farm

4. Установите статические IP-адреса. По умолчанию, большинство компьютеров (независимо от платформы) устанавливают динамические IP-адреса. При использовании VNC это очень неудобно, поэтому перейдите в System Preferences > Network и кликните пункт Automatic, расположенный в верхней части окна и выберите Edit Locations. Нажмите + и переименуйте новую запись на Static или что-то подобное.

render-farm

render-farm

render-farm

5. Это создаст новый набор сетевых настроек. В зависимости от типа Вашего интернет-соединения (Wi-Fi, Ethernet и т.д.), выберите нужный пункт слева и нажмите кнопку Advanced в правом углу окна. На вкладке TCP/IP установите тип Configure IPv4 в Manually и введите правильный (неиспользуемый) IPv4 адрес, Subnet Mask и Router.

Вы можете добавить DNS на вкладке DNS tab. Адрес, как правило, такой же как и у Вашего роутера.

Нажмите Apply.

render-farm

render-farm

VNC для Windows

1. Рекомендую скачать приложение TightVNC с сайта tightvnc.com. Установите его с настройками по умолчанию.
2. На панели задач выберите иконку VNC, чтобы открыть окно конфигурации программы.
3. Установите Primary Password для проверки запрашиваемого компьютера.

render-farm

render-farm

render-farm

4. Установите статические IP-адреса, кликнув правой кнопкой мыши на значок сети и выбрав пункт Open Network and Sharing Center. Затем кликните по типу соединения, чтобы открыть окно настроек. Кликните по кнопке Properties, затем Internet Protocol Version 4 (TCP/IPv4) > Properties. Выберите пункт Use the follwing IP address и установите нужные IP-адреса, маску подсети, шлюз и DNS.

Вы можете отметить пункт Validate settings upon exit, чтобы убедиться, что введенная информация является действительной.

render-farm

render-farm

render-farm

render-farm

render-farm

render-farm

5. Если Вы установили TightVNC с настройками по умолчанию, то в брандмауэр должно было записаться исключение, позволяющее устанавливать VNC-подключение с других машин. Для подключения к другой машине откройте TightVNC Viewe. Введите адрес удаленной машины в поле Remote Host. Если на целевом компьютере требуется пароль для входа, то Вам будет предложено ввести его.

render-farm

render-farm

render-farm

render-farm

VNC для Linux (Fedora LXDE)

1. Настройка VNC для Linux менее автоматизирована, чем для других ОС (еще бы… это же Linux). Нам необходимо включить автоматический вход в систему Fedora, потому что VNC не будет работать, пока пользователь не вошел в систему. Откройте терминал и введите sudo nano /etc/lxdm/lxdm.conf. После правильного ввода пароля администратора, откроется конфигурационный файл в окне терминала, доступный для редактирования. Следуйте первому набору команд Uncomment and set autologin username to enable autologin. Control + X закрывает файл, давая возможность сохранить его. Обязательно сохраните файл.

render-farm

render-farm

2. Установите x11vnc введя в терминале sudo yum install x11vnc.
3. Установите пароль введя в терминале x11vnc -storepasswd. Затем тот же пароль для подтверждения. Пароль сохранится в каталоге по умолчанию ~/.vnc/passwd.

render-farm

render-farm

render-farm

4. Установите x11vnc для автозапуска при входе в систему введя в терминале: sudo nano ~/.config/lxsession/LXDE/autostart. Если файл не существует, то будет создан пустой файл. Добавить эту запись в файл @x11vnc -forever -usepw -geometry 800×600 (название приложения, работать постоянно, пока компьютер включен, использовать пароль, сохраненный в файле ~/.vnc/passwd, разрешение экрана с указанными размерами). Выйдите с помощью Control + X и сохраните файл.

render-farm

5. Необходимо добавить порт VNC в исключения Firewall. Нажмите кнопку Start в левом нижнем углу экрана и выберите пункт Administration > Firewall. Кликните слева по меню Other Ports и добавьте 5900 порт с протоколом tcp и 5900 порт с протоколом udp.

render-farm

render-farm

6. Установите статический IP-адрес кликнув Start > Preferences > Network Connections. Выберите Ваше активное соединение (в моем случае это Wired). Выберите его и нажмите кнопку Edit. Выберите вкладку IPv4 Settings, измените тип Method на Manual и введите IP-адрес, маску подсети, шлюз и DNS. Сохраните настройки.

render-farm

render-farm

render-farm

На данный момент у нас собрана сеть компьютеров, контролируемая одним ПК (master machine). Как насчет того, чтобы сделать что-то на самом деле?


Сетевой рендеринг в Blender

1. Blender содержит замечательный аддон Network Render, который позволяет легко запускать сетевой рендеринг на вашей ферме. Запустите блендер и откройте файл, который необходимо отрендерить.
netrender1
2. Нужно активировать дополнение, перейдя File > User Preference и на вкладке Addons ввести в поле поиска Network. Должен появиться нужный нам аддон. Активируем его.
netrender2
3. Теперь выберите Network Render вместо Blender Render или Cycles. На вкладке рендера стали доступны три настройки: Client, Master, и Slave. Для работы нам необходим один Client, один Master и как можно больше Slave машин. Client настраивает параметры проекта, Master получает задание и распределяет его между всеми Slave, а Slave выполняют непосредственно сам рендер.

Рекомендуется использовать одну и ту же версию Blender на всех машинах.

render-farm

render-farm

4. В Blender со сценой, которую необходимо отрендерить установите тип Client. Откройте еще одно окно Blender с помощью терминала, установите тип Master и нажмите кнопку Start Service. Master и Slave не нуждаются в загруженной копии сцены, которую необходимо отрендерить, однако в их сцене должна присутствовать камера для того, чтобы запустить службу. Запустите Blender на каждом из узлов, установите их тип в Slave и кликните Start Service на каждом из них. В идеале, все машины Slave автоматически увидят машину Master и появится следующая надпись Network render connected to master, waiting for jobs. Если же этого не произойдет и Вы увидите сообщение No master server on network, то необходимо явно указать IP-адрес мастера в поле Address под кнопкой Start Service.

render-farm

render-farm

5. Убедитесь, что все узлы подключены к мастеру и готовы к работе. На клиенте нажмите кнопку Обновить (над кнопкой Open Master Monitor), чтобы проверить все соединения. Затем нажмите кнопку Обновить в выпадающем меню Slaves Status. Если все соединения установлены, то вы увидете имена всех подключенных узлов.
6. После того, как соединения установлены, на клиенте необходимо установить тип задания Blender (для рендеринга .blend сцены), установить тип рендера (Cycles или Internal) и указать место сохранения работы и тип файла. Нажмите Animation on network, чтобы запустить рендер-ферму!

render-farm

render-farm

7. Для мониторинга статуса и прогресса работы нажмите Open Master Monitor. Запустится веб-утилита, которая позволяет легко контролировать статус, прогресс, текущую частоту кадров, продолжительность рендеринга для каждого узла и т.д. Также здесь можно нажать паузу, отмену, перезапустить работу отдельного узла или всех сразу. Когда рендер завершится, полюбуйтесь на время, затраченное на визуализацию.

render-farm

render-farm

render-farm

На этом создание фермы закончено! Да, создание рендер-фермы является довольно сложным процессом, особенно если вы сами собираете каждый узел системы, но я думаю, что данный труд легко окупается в кротчайшие сроки и принесет массу удовольствия создателю. Спасибо за то, что дочитали до конца!

Автор оригинала Kent Trammell
CC Credits

источник урока

О сайте

На данном сайте Вы сможете найти множество уроков и материалов по графическому
редактору Blender.

Контакты

Для связи с администрацией сайта Вы можете воспользоваться следующими контактами:

Email:
info@blender3d.com.ua

Следите за нами

Подписывайтесь на наши страницы в социальных сетях.

На сайте Blender3D собрано огромное количество уроков по программе трехмерного моделирования Blender. Обучающие материалы представлены как в формате видеоуроков, так и в текстовом виде. Здесь затронуты все аспекты, связанные с Blender, начиная от моделирования и заканчивая созданием игр с применением языка программирования Python.

Помимо уроков по Blender, Вы сможете найти готовые 3D-модели, материалы и архивы высококачественных текстур. Сайт регулярно пополняется новым контентом и следит за развитием Blender.