Рендер-ферма — это простой набор сетевых компьютеров, которые работают вместе для выполнения вычислений за меньшее время. Путем распределения общего количества работы между несколькими машинами, время выполнения рендера сокращается до времени, которое необходимо потратить одному компьютеру для выполнения расчетов. Большинство профессиональных студий заполняют целые комнаты стойками, содержащими тысячи компьютеров, потому как данное решение является выгодным, с точки зрения времени и финансов. Однако данное решение может быть выгодным (и финансово жизнеспособным) для небольших студий или даже отдельных лиц.
В качестве рендер-фермы может выступать обычный кластер, стоимостью несколько тысяч долларов, или это может быть группа обычных компьютеров соединенных между собой по сети. Вы даже можете пригласить к себе нескольких друзей с ноутбуками и организовать из них ферму. Единственным требованием является, чтобы все машины удовлетворяли минимальным системным требованиям для 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-индикатора (если таковой имеется).
2. Для начала установите процессор и куллер, а также установите обе планки оперативной памяти.
3. Теперь необходимо прикрепить материнскую плату ко дну ящика. Для крепления использовались лишь 4 отверстия по краям платы. Повторить процедуру необходимо для каждого ящика (создание отверстий можно делать по шаблону).
4. Подключите кнопку включения питания к соответствующему разъему на материнской плате (они обозначены в инструкции к плате).
5. Далее идет установка блока питания. Установите его в нужное положение, зафиксируйте винтами и подключите питание процессора и платы.
6. Теперь установите 80-миллиметровый куллер возле блока питания и подключите его в соответствующий разъем на материнской плате.
7. Настал черед жесткого диска. Подключаем кабель SATA в соответствующие разъемы на плате и на HDD. Также подключаем питание для жесткого диска. Между 80-миллиметровым куллером и платой есть немного свободного места, вот там-то его и можно расположить.
8. Сбор узла закончен. Перед тем, как закрыть ящик, на боковой панели необходимо подключить сетевой кабель и вывести его наружу.
9. Повторите данную процедуру для всех узлов и подключите кабеля к роутеру.
10. Теперь узлы полностью готовы для установки на них операционной системы. Для этого Вам понадобится монитор, носитель ОС (USB-дисковод или флешка), клавиатура и мышь. Для своей фермы я выбрал Linux Fedora 17 LXDE. Вы же можете установить ту ОС, которая Вам больше всего по душе.
Настройка сети
Так как каждый наш узел соединен через Ethernet, то мы имеем полноценную локальную сеть. Но как нам заставить работать ее? Для этого, я предлагаю контролировать сеть через один главный компьютер, при помощи VNC.
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, введите пароль и нажмите ОК.
3. Ваш Mac теперь доступен для остальных машин. Чтобы получить доступ к другим машинам, перейдите в Finder, выберите в меню Go > Connect to Server (или command + K). Тип vnc://192.168.1.x, где х — целевой ПК.
4. Установите статические IP-адреса. По умолчанию, большинство компьютеров (независимо от платформы) устанавливают динамические IP-адреса. При использовании VNC это очень неудобно, поэтому перейдите в System Preferences > Network и кликните пункт Automatic, расположенный в верхней части окна и выберите Edit Locations. Нажмите + и переименуйте новую запись на Static или что-то подобное.
5. Это создаст новый набор сетевых настроек. В зависимости от типа Вашего интернет-соединения (Wi-Fi, Ethernet и т.д.), выберите нужный пункт слева и нажмите кнопку Advanced в правом углу окна. На вкладке TCP/IP установите тип Configure IPv4 в Manually и введите правильный (неиспользуемый) IPv4 адрес, Subnet Mask и Router.
Нажмите Apply.
VNC для Windows
1. Рекомендую скачать приложение TightVNC с сайта tightvnc.com. Установите его с настройками по умолчанию.
2. На панели задач выберите иконку VNC, чтобы открыть окно конфигурации программы.
3. Установите Primary Password для проверки запрашиваемого компьютера.
4. Установите статические IP-адреса, кликнув правой кнопкой мыши на значок сети и выбрав пункт Open Network and Sharing Center. Затем кликните по типу соединения, чтобы открыть окно настроек. Кликните по кнопке Properties, затем Internet Protocol Version 4 (TCP/IPv4) > Properties. Выберите пункт Use the follwing IP address и установите нужные IP-адреса, маску подсети, шлюз и DNS.
5. Если Вы установили TightVNC с настройками по умолчанию, то в брандмауэр должно было записаться исключение, позволяющее устанавливать VNC-подключение с других машин. Для подключения к другой машине откройте TightVNC Viewe. Введите адрес удаленной машины в поле Remote Host. Если на целевом компьютере требуется пароль для входа, то Вам будет предложено ввести его.
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 закрывает файл, давая возможность сохранить его. Обязательно сохраните файл.
2. Установите x11vnc введя в терминале sudo yum install x11vnc.
3. Установите пароль введя в терминале x11vnc -storepasswd. Затем тот же пароль для подтверждения. Пароль сохранится в каталоге по умолчанию ~/.vnc/passwd.
4. Установите x11vnc для автозапуска при входе в систему введя в терминале: sudo nano ~/.config/lxsession/LXDE/autostart. Если файл не существует, то будет создан пустой файл. Добавить эту запись в файл @x11vnc -forever -usepw -geometry 800×600 (название приложения, работать постоянно, пока компьютер включен, использовать пароль, сохраненный в файле ~/.vnc/passwd, разрешение экрана с указанными размерами). Выйдите с помощью Control + X и сохраните файл.
5. Необходимо добавить порт VNC в исключения Firewall. Нажмите кнопку Start в левом нижнем углу экрана и выберите пункт Administration > Firewall. Кликните слева по меню Other Ports и добавьте 5900 порт с протоколом tcp и 5900 порт с протоколом udp.
6. Установите статический IP-адрес кликнув Start > Preferences > Network Connections. Выберите Ваше активное соединение (в моем случае это Wired). Выберите его и нажмите кнопку Edit. Выберите вкладку IPv4 Settings, измените тип Method на Manual и введите IP-адрес, маску подсети, шлюз и DNS. Сохраните настройки.
На данный момент у нас собрана сеть компьютеров, контролируемая одним ПК (master machine). Как насчет того, чтобы сделать что-то на самом деле?
Сетевой рендеринг в Blender
1. Blender содержит замечательный аддон Network Render, который позволяет легко запускать сетевой рендеринг на вашей ферме. Запустите блендер и откройте файл, который необходимо отрендерить.
2. Нужно активировать дополнение, перейдя File > User Preference и на вкладке Addons ввести в поле поиска Network. Должен появиться нужный нам аддон. Активируем его.
3. Теперь выберите Network Render вместо Blender Render или Cycles. На вкладке рендера стали доступны три настройки: Client, Master, и Slave. Для работы нам необходим один Client, один Master и как можно больше Slave машин. Client настраивает параметры проекта, Master получает задание и распределяет его между всеми Slave, а Slave выполняют непосредственно сам рендер.
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.
5. Убедитесь, что все узлы подключены к мастеру и готовы к работе. На клиенте нажмите кнопку Обновить (над кнопкой Open Master Monitor), чтобы проверить все соединения. Затем нажмите кнопку Обновить в выпадающем меню Slaves Status. Если все соединения установлены, то вы увидете имена всех подключенных узлов.
6. После того, как соединения установлены, на клиенте необходимо установить тип задания Blender (для рендеринга .blend сцены), установить тип рендера (Cycles или Internal) и указать место сохранения работы и тип файла. Нажмите Animation on network, чтобы запустить рендер-ферму!
7. Для мониторинга статуса и прогресса работы нажмите Open Master Monitor. Запустится веб-утилита, которая позволяет легко контролировать статус, прогресс, текущую частоту кадров, продолжительность рендеринга для каждого узла и т.д. Также здесь можно нажать паузу, отмену, перезапустить работу отдельного узла или всех сразу. Когда рендер завершится, полюбуйтесь на время, затраченное на визуализацию.
На этом создание фермы закончено! Да, создание рендер-фермы является довольно сложным процессом, особенно если вы сами собираете каждый узел системы, но я думаю, что данный труд легко окупается в кротчайшие сроки и принесет массу удовольствия создателю. Спасибо за то, что дочитали до конца!
Автор оригинала Kent Trammell
CC Credits
Огромное спасибо автору, давно хотел выяснить что за рендер ферма про которую часто мне говорят.
Спасибо за такой быстрый перевод! Теперь я перехожу на темную сторону силы и буду захватывать для своей рендер империи навороченые компьютеры друзей. Установлю на них жёсткую диктатуру. Пусть теперь в ферму на однакласниках и в танки играют по расписанию.)))))))))
Дарт Вейдер
Проверил все работает!
Это хорошо! Я сам хочу попробовать, а то написать написал, а попробовать возможности нету (да и времени).
Инструкция бедного фермера у которого много друзей (для тех у кого IP динамический):
1. Установил и зарегистрировался в Team Viewer для удаленого доступа к ПК (достаточно популярная и простая в использовании).
2. Зарегистрировался на https://www.noip.com/ ,Создал себе хост и скачал с сайта Dynamic Update Client https://www.noip.com/downloads.php , запустил и настроил. (как это делается в интернете полно видео)
Дальше и дет речь о ПК котрый настраивается как слейв
3. Друзьям установил Blender
4. После выбора аддона нажал Sawe User Settings
5. Настроил на Слейв
6. В поле «адрес» вписал созданный хост
7. Сохранил бленд фаил
8. Нажал Ctrl+U и согласился с вопросом (для сохранения текущего бленд файла сценой по умолчанию, со всеми настройками)
9. Когда необходимо что то отренднрить просим друзей чтоб запустили блендер и нажали кнопочку старт.
10. Если что то большое или анимация, берем тортик идем к одному из них пить чай :)
Cycles Render GPU по сети возможен?
Cycles Render GPU возможен по сети?
А по чему бы и нет.
Что то не вижу возможности в Network Render рендерить с использованием GPU
Я что то не нашел
недавно тоже запилили пятиминутный урок по работе с этим аддоном. может кому пригодится. там есть подводные камни: http://studiopropellers.blogspot.ru/2013/10/network-render.html
Артурушка! Спасибо!!!
если использовать одинаковое железо на клиентах, то какой прирост это дает в процентах? При использовании видеокарт производительность растет линейно, а в данном случае?
Да, хоть при использовании процессоров, хоть видеокарт. Но погрешность все равно присутствует. Это как SLI/CrossFire в играх — вроде и в 2 раза, и в тоже время не совсем. Разбег незначителен и им можно пренебречь. Ну а если Вы открываете коммерческую рендер-ферму, то тут уже считайте и пробуйте сами.
Спасибо за ответ. Вопрос в том, во что лучше вложить деньги: в покупку видеокарты или же CPU? На некоторых форумах читал, что в Cycles Render в закрытых помещениях, где много переотраженного света скорость CPU и GPU приравнивается.
Однозначно GPU! На форуме есть видео где наглядно продемонстрирована разница между CPU и GPU (не закрытое помещение, но все же)
Да, такие сцены рендерятся намного быстрее на GPU. А вот тесты интерьерных сцен больше интересуют, так как занимаюсь архитектурной визуализацией. Самому проверить возможности нет
Было бы хорошо произвести сравнение скорости визуализации интерьерной сцены процессора и видеокарты одинаковой стоимости. Например, Core i7 и GTX 760, так как стоят примерно одинаково
Ну тут не совсем корректно сравнивать. Если победит CPU тогда еще ладно, а если GPU? К видеокарте в любом случае нужен процессор и для 760 меньше i5 брать не стоит, а он тоже денег стоит.
Если нужна мощь, берите i7 самый дорогой и 4 GTX TITAN (:smile:)
Любые интерьеры будут рендерится в режиме реального времени. Моделировать не будете успевать. А если серьезно, то и одной хватит.
это очень дорогое удовольствие(:smile:)
TITAN игровая видюха, для рендеринга и моделирования у Nvidia есть серия Quadro.
Для рендеринга в Cycles Quadro не подходит аж никак (и это здорово). Тестов в сети море.
Пускай 3Dmax-ники покупают Quadro за 5000$, а нам и 780 за счастье (:smile:)
А я видел тест, где Blender дружит с Quadro
https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjnzt6Zz_vRAhWjApoKHYaTAJ4QtwIIHTAA&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DlElsZQklSh0&usg=AFQjCNEFpUrZljamo3LImnIPiKhMPZ7juw&sig2=XBmDUMN6rf5e1H2mEIDYiw&bvm=bv.146094739,d.bGs
Глупости сморозили. Уже давно доказано, что для расчетов в системах визуализации на основе гпу квадры ну ни как не подходят. В том же октане, к примеру.
Артем! Спасибо за Ваши уроки. А можете посоветовать платную рендер ферму? А ещё лучше сделать обзор какой нибудь конкретной фермы, и поделится опытом работы с ней.
Посоветовать не могу, но если что-то интересное попадется, то обязательно рассмотрю.
Спасибо.
Замечательно, но при рендеринге 1 кадра анимации, в случае если нужна просто картинка то рендер не распределяет задачу, она висит на 1 компе, та же ситуация если нажать Send Current frame job
У меня вот какой вопрос. Один комп у меня с хорошей видеокартой, а на втором не очень — CUDA устаревшей версии, которая не поддерживается в блендере. Так вот собственно вопрос: придётся всё рендерить на CPU или можно, чтобы мощный комп рендерил на GPU, а слабый на CPU?
Я думаю все придется рендерить на CPU.
В наличии есть пару компов, который удалось по мануалу настроить для нет тендера, задания отправляются шлейфы видят мастер и на оборот, однако никак не получается отрендерить всего одну картинку, не анимацию, а singl image. Задание отсылает один из слейвов его хватает и все замирает, на долго и на мертво.
Хорошая статья , только одно НО!. Подбор комплектующих , а точнее мат. плата и процессор .Дело в том что данная плата допускает до 95 ватт энергопотребления процессора . А данный процессор в спящем режиме имеет 92 ватта потребления. Даже при средней производительности данного процессора его энергопотребление возрастает до 190 ватт , а при полной загрузке до 400 ватт. Данная плата отличное соотношение цены и качества , но она не подходит под данную сборку .Увы! Так же как и питание для всей системы . Блок питания для данного процессора мощнее нужен.
Я больше скажу… С учетом возраста статьи (19 Августа 2013) на комплектующие и смотреть не стоит. Это уже история.
но он должен понять основы создания
Под Linux все отлично работает, но столкнулся с тем, что при тех же настройках под Windows 7 не хочет рендерить. Сталкивался ли кто с таким?
Blender 2.75 и 2.75a
[…] пор, пока Вы не соберетесь строить свою собственную рендер-ферму, забудьте о процессорах для коммерческого […]
Вот такой вопрос: а может ли блендер применять ферму не для рендера, а для просчёта всей работы, во вьюпорте например, или хотябы запекания симуляций жидкости и т.п.???
Кажется пока нет.
эх, вот это бы хотя бы сделали, и никому не нужно было бы писать статьи о том, готов Блендер для профессиональной работы или нет.
общался с профи, главное, в чем лажет блендер, по их мнению — в мощностях, всё стерпеть можно, ко всему привыкнуть, подстроится, а вот если сцены с десятками-сотнями млн поликов просчитать нельзя — то тут увы, меркнут разом и все достоинства.
Это проблема уже решена (версия 2.75.2). В официальной версии 2.76 должно все летать в разы быстрее (если они включат эту функцию. в нее).
ну хорошо, потестим.
а так всё-ровно бы не помешало, тогда блендер можно будет использовать как ядро для очень маштабных проектов. жаль я гол как сокол, и не могу ничего такого проспонсировать…
150.000 рубликов … Легче ладу купить, чем это (:smile:)
[…] можно. Хотя я сам не […]
У меня тут вопрос появился. Тут написано: «Для работы нам необходим один Client, один Master и как можно больше Slave машин.» У меня только два компьютера. вот хотел узнать, можно ли один из них использовать сразу и как master, и как client, и как slave, а второй как slave? То есть чтобы на одном открыть сцену, но чтобы ее рендерили оба компьютера?
Можно! В примере Client и Master также выступают в качестве одной машины.
Ясно, спасибо большое. Пойду пробовать.
Какое кол-во денег было затрачено на сборку рендер фермы?
Подскажи пожалуйста на счет рендре фермы под майку и оптимальный конфиг железа в таком же ценовом сегменте. Заранее спасибо.
Народ, кто-нибудь собирал или настраивал такую ферму? Как работает?
Кому попроще вот ресурс https://www.sheepit-renderfarm.com
и собираем команду https://www.sheepit-renderfarm.com/team.php
Ukraine Spase Maker
rank 103rd
Получилось. Спасибо больше. Правда на linux mint было больше шаманства с х сервером из-за отключённого монитора, при котором он просто не запускал графику.
Правильно ли я понимаю, что для этой задачи достаточно не очень мощного ноутбука, который будет считать картинку на удалённых пк?
А смогу ли я использовать сетевой рендеринг, если у меня всего два компа? (Предполагается, что в рендеринге участвуют они оба)
Спасибо, очень интересно попробовать.