Рендер-ферма "Бормотунчика" )

Список разделов Общие разделы Обсуждение CG

Описание: О работах, выполненных на компьютере. Видео, тридешечка, просто рисунки.
Модератор: exooman

  • 20

Сообщение #1 girafenok » 30.03.2014, 01:48

Что такое Рендер-ферма
Рендер-ферма представляет собой объединение компьютеров в сеть с целью ускорение процесса рендеринга изображения или анимации. Анимация разбивается на кадры, изображение разбивается на части и рендерятся независимо на отдельных компьютерах, подключенных к ферме, тем самым позволяя ускорить процесс рендеринга за счет параллельного просчета проекта.
Рендер-ферма состоит из компьютеров, осуществляющих ренедеринг проектов - нодов, работающих под управлением компьютера, распределяющего задания - сервера.
Управлением рендер-фермой рсуществляет программное обеспечение, называемое менеджером сетевоого рендринга.

Вступление: идея, цели, анализ рынка
Так случилось, что много лет назад я заинтересовался темой сетевого рендеринга. Компьютеров было достаточно много, поэтому вопрос стоял только в подходящем менеджере рендеринга. При этом, так как часть работы осуществлялась вне учреждения, компьютеры работали под разными операционными системами, программы для рендеринга использовались разные и много других нюансов, то для менеджера сетевого рендаринга были соформулированы следующие требования:
1. Кроссплатформенность. Система управления должна работать под управлением различных операционных систем, как минимум под управлением трех основных: Linux, MacOS и Windows. Система должна иметь возможность запуска системы в консольном режиме.
2. Гетерогенность. Система должна уметь управлять компьютерами в смешанных сетях, т.е объединять компьютеры, находящиеся в разных локальных сетях, а также не имеющих внешнего ip-адреса..
3. Автонастройка. Система должна самостоятельно уметь включать или исключать компьютеры из рендер-фермы. Подключаемые к рендер-фермы компьютеры должны автоматически настраиваться на участие в рендер-ферме.
4. Универсальность. Система должна поддерживать различные программы создания 3d графики и рендеринга.
5. Многопользовательская система. Систему одновременно и независимо друг от друга должны иметь возможность использовать несколько пользователей.

Поиск показал, что существуют следующие готовые решения: собственные средства систем 3D графики по управлению рендерингом в компьютерных сетях, коммерческие менеджеры, свободные менеджеры Loki Render, DrQueue, Farmjoe, Afanasy. Анализ существующих систем управления сетевым рендерингом выявил, что ни одна из рассмотренных систем не соответствует установленным критериям. Наихудшие показатели для большинства систем оказались по критериям автонастройка и гетерогенность. Некоторые менеджеры мне даже попробовать не удалось из-за черезвычайно сложной установки и настройки.
В итоге возникла идея создания собственного менеджера и построения на его основе рендер-фермы. За 4 года неспешного развития система доросла до уровня, когда ей можно начать пользоваться.

Рендер-ферма "Бормотунчика" является бесплатной community-based рендер-фермой, т.е. вычислительные мощности фермы складываются из ресурсов пользователей-добровольцев.

Программное обеспечение состоит из программ сервера, нода и клиента.
Описание программного комплекса
Нод превращает ваш компьютер в узел рендер фермы, осуществляющий рендеринг проектов пользователей.
Клиент - программа, с помощью которой можно формировать задания для рендер-фермы, следить за ходом и получать информацию о рендер-ферме в целом.
Управление клиентами и нодом осуществляет программа сервер, работающая на VDS.

Программное обеспечение фермы разработано с использованием языка программирования Python, сетевого фрейворка Twisted и инструментария разработки Qt.
Программное обеспечение не требует какой-либо настройки и готово к использованию сразу после установки и регистрации.

На текущей момент ПО обеспечение фермы поддерживает
Программы:
Blender верси 2.69 и 2.70, рендеры: internal, cycles, lux, povray.
LuxRender 1.3.1 standalone.
PovRay 3.7 standalone.
В разработке находится поддержка Pixie, Aqsis, 3DELight, Vray и др. На самом деле, может быть добавлен любой рендер имеющий возможность ренедрить из командой строки.

Операционные системы и дистрибутивы:

Ubuntu 12.04 и новее, а также производные от них.
Windows XP/7/8.
Поддержка других ОС и дистрибутивов будет осуществляться по мере необходимости.

Для стимулирования использования фермы введен рейтинг.
Расчет рейтинга
Рейтинг считается в ТГц/ч. Сид - нод. Лич - задачи пользователя.
Для сида считается количество ГГц потраченных на рендеринг задачи и времени, проведенном нодом в ожидании. Время переводится как 0.1 ГГц/ч за час ожидания вне зависимости от мощности машины.
Для лича считается количество ГГц/ч потраченных на рендеринг задач сумарно всеми нодами.
Рейтинг - отношение значений лича и сида.

Внешний вид клиента:
Изображение

Официальный сайт проекта: render.gabbler.ru.
Скачать: render.gabbler.ru/download.html
Для того, чтобы нод могу работать в графическом режиме, необюходимо устанавливать программы и клиента, и нода. Для подсчета рейтинга необходимо зарегистрировать в ферме пользователя и зарегистрировать нод(ы) от имени этого пользователя.
Немного документации: render.gabbler.ru/work.html. Будет обновляться по мере возможностей.

Замечания:
1. Программное обеспечение рендер-фермы все еще находится в разработке, поэтому возможны ошибки и сбои в работе фермы.
2. Защита проектов на текущий момент не реализована. Проект доступен всем нодам в открытом виде, пока задача не будет удалена.
3. Рендеринг проектов, не умещающихся в памяти нодов проходит не предсказуемо, просьба это учитывать. Размер файла проекта на рендеринг влиять не должен.
4. Репозитарий для дистрибутивов Linux находится в разработке.
5. Поддержка рендеринга на GPU появиться позже.

Пожелания по работе и возможностям рендер-фермы приветствуются!


Быстрый старт от Юрия Небесного
Спойлер
Мануал как я пользуюсь фермой.
Как, что бы рендер не тормозил компьютер.

Первое, что нужно сделать после установки и первого запуска - вручную положить ноду в автозагрузку. В винде и в линуксах это делается просто.

Что бы нода при загрузке была свернута в трей, поставте в ее настройках "Стартовать минимизированным - да":
Изображение

Во вкладке настройки ноды, вы можете указать сколько ядер процессора вы готовы выделять для рендеринга.
Я оставляю все, т.к. количеством ядер выделенных на работу рендер-фермы управляю выставив расписание.
Ограничение ядер CUDA находится в долгосрочной разработке, возможно когда-то заработает.
Изображение

Очень важная вкладка Blender 2.79. Тут вы указываете какие устройства готовы предоставить для рендеринга.
Если в Compute Device оставить ANY то будет использоваться всё доступное для рендеринга. ЦПУ и ГПУ.
Изображение

Это один из самых важных моментов настройки ноды. Тут стоит понимать принцип работы самой рендер-фермы распределенных вычислений. Это очень похоже на торрент-качалку. Но вместо раздачи файлов, каждый компьютер раздает частичку своих мощностей. Ключевое слово тут - частичку. Не стоит выделять полностью все ресурсы своего компа, как вы им пользоваться то будете?
Давайте рассмотрим самый классический вариант обычного компа/ноута: обычный проц 4-ре ядра и какая-то одна видяха.
Что бы и ферма работала и вы могли пользоваться таким компом, стоит выделить только ЦПУ. И только 1-2 ядра. Будем откровенны, эти 1-2 ядра и так всё время простаивают и их нагрузки вы не заметите. А вот если вы предоставите для фермы видеокарту, а она у вас одна, то 100% ваш комп встанет.
Выставлять режим ANY в строке "Compute Device" следует только в том случае, если у вас в компе две видеокарты, и одна из них специально для нужд рендеринга.
На скриншоте как раз такой случай, видно что для работы монитора в моем компе стоит какая-то лишь бы была видяха, а вот рендер GPU я запускаю на второй видеокарте - GeForce GTX 780.

Если у вас, как и у меня, две видеокарты, вы можете указать какую из них можно использовать рендер-ферме, а какую нельзя:
Изображение

Давно доказанный экспериментальным путем, что быстрее всего рендер процессором идет при размере кластера 16*16 пикселей, а рендер GPU при 256*256.
Укажите эти параметры в CPU Tile и GPU Tile, как на скриншоте:
Изображение

Вкладка Shedule - расписание.
Тут сутски разбиты на часы. В каждый из часов вы можете указать сколько ядер ЦПУ готовы предоставить на рендер, и вообще держать ли ноду включенной.
Днем, в рабочее время на рабочем компе я выставляю только 2 ядра, а ночью отдаю под нужды фермы всю доступную мощность.
Изображение

На домашнем компе наоборот, что бы ночью комп не шумел я выставляю на ночь только 2 ядра. А днем все 4 ядра и Ge Force 1050 доступны для рендера.


Теперь о том, как правильно запускать свои рендеры.
Захдите в "Задачи", жмете "Добавить", указываете в источнике блендер-файл который нужно отрендерить, а в "Destination" указываете папку куда сохранится отрендеренная картинка.
Изображение
Тут внимательно - все пути к файлам и папкам должны быть на латинице.
В блендер-файле все текстуры должны быть внедрены в файл.

Давайте сейчас рассмотрим обычный Сайклс рендер обычного одного изображения:
Переключите режим рендера с BlenderAnimation в BlenderImage.
Теперь обратите внимание на 4-тую строку "Фрейм" - тут нужно указать какой кадр рендерить. Бывает, что рендеришь не анимацию, но кадр не первый а там 100-тый, например. Вот тут нужно указать.

Ниже, 5-тая строка "XY Tiles" очень важная.
Изображение
Это на сколько частей будет разбита картинка. Если поставите 2, то картинка разобъется на 2 по высоте и 2 по ширине, итого на 4-ре части. Каждая часть будет отдана одному из свободных компьютеров подключенных к рендер-ферме.
Выставляйте от 2 до 8, в зависимости от сложности рендера. Ведь каждую из частей будет рендерить чей-то ЦПУ с выделенными двумя ядрами. По этому сила этой фермы в большом количестве пользователей.
Мы однажды всем форумом рендерили умопомрочительный 360 градусный кадр для VR в 8К разрешением. И справились! :beer:

Так, теперь вкладка Job.
Изображение
Тут важный параметр в первой же строке - Encrypted. Это самая настоящая защита вашего проекта. Т.к. ваш блендер-файл разлетится по всем кто будет принимать участие в рендере, разумеется каждый из этих людей сможет потом этот файл найти у себя на компе в недрах папок. С одной стороны стремно, хочется индивидуальности, а с другой стороны да сдались они ваши файлы кому-то, у людей своих хватает. К тому же, защита эта существенно замедляет процесс подготовки к рендеру. Существенно.
Вывод такой - хотите индивидуальности то рендерите локально, самостоятельно, либо перейдите на вкладку "Рендер-ферма" и в нижней стоке "Группа нод" выберете "Private" так будут использоваться только ваши компы подключенные к ферме.
Защита проекта для очень-очень индивидуальных редких случаев.

Теперь вкладка Рендер-ферма.
Изображение
Тут очень интересно.
В первой строке выставляем чем ваш проект можно рендерить.
Важно протестировать свой файл, запустить его локально у себя перед отправкой на ферму, отрендерить в низком качестве но в финальном размере (разрешении) и посмотреть сколько памяти ушло в пике:
Изображение
Если памяти требуется где-то до 2-3 Гб, то можно смело ставить в строке Compute Device - ANY. Таким образом те, у кого подключены к ферме видеокарты с памятью 2-3 и более Гб памяти быстро отрендерят ваш проект, и им будут помогать те, у кого подключены только ЦПУ.
Но, если памяти в пике требуется значительно, стоит выставить CPU - так вы сбережете время и силы тех, у кого видеокарты подключены. Ведь ферма в любом случае будет пытаться ваш огромный файл запустить на рендер на их видеокартах, рендер будет слетать, и ферма будет заставлять их снова и снова, три раза, а затем оптавит их комп в бан для вашей задачи. А ведь у этих людей подключены и процессоры - так пусть изначально они включатся в работу, и не будут забанены, и все пройдет как по маслу.

В следующих двух строках указываете минимальное количество выделенных ядер которое должно быть у компа, что бы включиться в ваш рендер, а ниже минимальное количество герц которое должно быть у проца, и сколько оперативы на компе должно быть.
Всё это анализируйте исходя из сложности вашей задачи. Не стоит давать её всем, отфильтруйте слабые компы, пусть они даже не напрягаются если ваша задача сложная, ведь если им это сложно, их пользователи будут замечать тормоза системы и выйдут из фермы навсегда, хотя могли бы порендерить чей-то простой и легкий проект. Будте внимательны тут.
К тому же, если чей-то слабый комп будет рендерить ваш сложный проект, то он может на долго застрять со своим участком рендера - все уже отрендерили, а этот все висит и рендерит и рендерит...
Изображение

В последней строке - Nodes group укажите, только вашим компам рендерить ваш проект, или всем-всем, или только доверенным из "Белого листа".
Кстати, списки черных и белых листов задавать можно тыркая тут:
Изображение

Теперь расскажу об одной особенности. Бывает, рендер идёт-идёт, все хорошо, но вот он застрял на 99% готовности, и ферма никого не подключает дорендерить этот последний оставшийся процент. В таких случаях нужно остановить задачу и запустить снова.

По окончании рендера, вы увидете ее статус "finished". Посмотите, в папке которую указывали должен лежать рендер готовый.
Не захламляйте сервак, удаляйте свои проекты по готовности.
Всем удачных рендеров :oD



Последняя версия программного обеспечения.
Это алmфа версия значительно переработанного программного обеспечения. Поддерживает только Blender: Internal и Cycles. После стабилизации кода, будут восстановлены все возможности. Работает параллельно с предыдущей версией.

Пост с описанием изменений: /viewtopic.php?p=58242#p58242

Пакеты deb и rpm собирались в Ubuntu 12.04.
Пакеты для Arch собирались в Manjaro 0.8.
Версия для Windows собиралась в Windows 7 64 bit.

Deb:
http://render.gabbler.ru/download/debs/gbfarm.blender27-plugin_10_amd64.deb
http://render.gabbler.ru/download/debs/gbfarm.node_0.60-4_amd64.deb


Windows:
http://render.gabbler.ru/download/win/gbfarm-blender27-plugin_10_x64.zip
http://render.gabbler.ru/download/win/gbfarm-node_0.60-4_x64.exe

Плагин Blender для windows необходимо распаковать поверх старого (папка blender27 и файл blender27_plugin.pyc в программной папке проекта).
Последний раз редактировалось girafenok 10.01.2018, 21:08, всего редактировалось 8 раз(а).
girafenok
рендер-фермер
рендер-фермер
Сообщения: 657


Сообщение #81 WorldLand » 30.03.2014, 14:12

girafenok писал(а):Сейчас должно все работать.
Да, заработало.
Я не понял, как получить результат. Не останавливая задачу (LuxRender) нажимаю "Получить" - получаю сообщение "In progress", после остановки задачи - сообщение "FAILED". Ждать пробовал.

P.S. Если кто-то тестит скорость рендера, то результаты могут искажаться благодаря моим перезагрузкам :) Пару раз через процессы убивал чей-то рендеринг.
WorldLand M
Аватара
Сообщения: 148

Сообщение #82 SergeV » 30.03.2014, 14:14

Писец мохнатый..., пришлось комп презагружать, проц 100% нагрузки, выход из программы не работает, точнее сказать программа закрылась из трея с панелью, а в диспечере задач остался висеть процес, но и его убивание не помогло, еле мышку до рестарта дотянул. :)
Последний раз редактировалось SergeV 30.03.2014, 14:18, всего редактировалось 1 раз.
Не говори - "не умею", тот кто не пробует, тот никогда не научится. Mein Slogan :)
Моя свалка...
SergeV M
Аватара
Откуда: Германия
Сообщения: 1587

Сообщение #83 Mup0k » 30.03.2014, 14:17

girafenok, что значит Gabbler?
Mup0k M
Аватара
Откуда: CZE
Сообщения: 259

  • 1

Сообщение #84 girafenok » 30.03.2014, 14:19

maleficmax писал(а):Позволю уточнить. Не нужно полный реалтайм в автообновлениях. Нод закончил работу - послал сигнал на одно обновление. И всё. И юзер в курсе...
Здесь следующая проблема. Не все компьютеры имеют внешний ip адрес, т.е. не ко всем компьютерам можно получить доступ или послать информацию извне. Эта проблема решается установкой постоянного соединения на время работы программы. Т.е. клиент установил соединение с сервером и не разрывает его, пока он работает, тогда вне зависимости от наличия внешнего ip адреса можно обмениваться информацией в обоих направлениях. Правда, в этом случае потребляются ресурсы сервера.

maleficmax писал(а):Я не совсем понял. Имеется ввиду "помещается сцена в память или нет"?
Если что, я же раньше предложил, чтобы пользователь ключевые моменты настройки рендера для своей карты установил.
Дело в том, что в настройках Blender выбирается не просто рендерить на GPU, а рендерить на конкретном устройстве. Естественно для каждого нода устройство будет свое, уникальное. Вот этот момент реализовать просто не получится, нужно время разобраться, но естественно эта возможность будет реализована.
С тестовой сценой - хорошая идея, спасибо.

WorldLand,
После перезагрузки сервера, не все задачи восстанавливаются корректно. Видимо надо будет ее запустить заново. А у вас значения haltspp или halttime выставлены? Иначе рендеринг будет занимать бесконечно долго времени ).

SergeV,
Прошу прощения, но в Windows 7 программа не тестировалась. Буду искать и исправлять косяки.

Mup0k,
gabbler - c английского переводится как бормотунчик, говорунчик.
girafenok
рендер-фермер
рендер-фермер
Сообщения: 657

Сообщение #85 WorldLand » 30.03.2014, 14:24

girafenok писал(а):А у вас значения haltspp или halttime выставлены?
Эмм... :) То есть результат он отдаст только тогда, когда закончится рендер? А то у меня привычка останавливать его, когда шумов нет.
WorldLand M
Аватара
Сообщения: 148

Сообщение #86 SergeV » 30.03.2014, 14:27

У кого то что то висит на рендеринг? А то вроде как проц простаивает, а в инфо показывает что мой комп занят.
Всё сбросило на фрии, видать задержки от сервера были.
Последний раз редактировалось SergeV 30.03.2014, 14:29, всего редактировалось 1 раз.
Не говори - "не умею", тот кто не пробует, тот никогда не научится. Mein Slogan :)
Моя свалка...
SergeV M
Аватара
Откуда: Германия
Сообщения: 1587

  • 1

Сообщение #87 girafenok » 30.03.2014, 14:29

WorldLand,
ну для рендеринга на своем компьютере это подойдет, а вот как понять ноду, когда остановить рендеринг не очень понятно. Поэтому какое-то из этих значений должно быть выставлено, и результат будет получен только по заврешению рендеринга на нодах.
Задача для Lux разбивается на три нода, каждый рендерит с установленным значением и результат получается в три раза больше (лучше), чем прописано в проекте. Я уже понял, что это не оптимальный вариант, поэтому буду придумывать другой.
С Lux есть еще одна проблема - умещается ли сцена в память нода. (.

SergeV,
Уже нет. Просто проверка доступности нода осуществляется раз в 5 минут.
girafenok
рендер-фермер
рендер-фермер
Сообщения: 657

Сообщение #88 SergeV » 30.03.2014, 14:37

Окей.., потестил и хватит. :)
Что касается сворачивания в трей, это я не досмотрел, всё сворачивает по клику мышки иконки в трее.
Не говори - "не умею", тот кто не пробует, тот никогда не научится. Mein Slogan :)
Моя свалка...
SergeV M
Аватара
Откуда: Германия
Сообщения: 1587

  • 9

Сообщение #89 girafenok » 30.03.2014, 15:01

Спасибо всем за интерес к проекту, тестирование и выявление багов, а также предложения по расширению возможностей. Все будет реализовано по мере возможностей, просьба запастись терпением.
girafenok
рендер-фермер
рендер-фермер
Сообщения: 657

  • 1

Сообщение #90 maleficmax » 30.03.2014, 15:13

Окей, ждем тогда обновлений и ченджлога! Удачи и кропотливости )
Спасибо за проект!
maleficmax M
фашист і бандерівець
Аватара
Откуда: Україна, Кременчук
Сообщения: 4381


Сообщение #91 girafenok » 30.03.2014, 18:29

Уважаемые участники, так как у меня дискретной видеокарты нет, просьба помочь с тестированием рендеринга на GPU.
У кого стоит Ubuntu и есть видеокарта, работающа с Cycles, просьба запустить на тест прилагаемую программу и передать мне результаты ее работы.

http://render.gabbler.ru/download/gputest.zip
Распаковываете архив, запускаете терминал из распакованной папки, даете команду
Код: Выделить всё
python blgputest.py
Меня интересует файл gputest_log.txt после завершения работы программы.
Заранее огромное сапсибо! )
girafenok
рендер-фермер
рендер-фермер
Сообщения: 657

Сообщение #92 Mup0k » 30.03.2014, 18:44

girafenok, у меня видюха только через команду optimus работает, проканает?
Mup0k M
Аватара
Откуда: CZE
Сообщения: 259

  • 1

Сообщение #93 mateparaguai » 30.03.2014, 18:46

Спасибо ребята! Хорошее дело делаете!)))
mateparaguai
Аватара
Откуда: Валарад
Сообщения: 88

Сообщение #94 girafenok » 30.03.2014, 18:48

Mup0k,
Не совсем понял как она работает.
Можно попробовать как так:
Код: Выделить всё
optimus python blgputest.py
Хотя не уверен, что будут правильные результаты.

mateparaguai,
Спасибо! Мы стараемся )
girafenok
рендер-фермер
рендер-фермер
Сообщения: 657

Сообщение #95 Mup0k » 30.03.2014, 18:54

girafenok, http://forum.ubuntu.ru/index.php?topic=190100.0

Сейчас попробую

Добавлено спустя 3 минуты 13 секунд:
точнее Optirun

вот вывод
CPU Test

0

/bin/bash: /opt/gabbler/render/node/blender269/blender: No such file or directory


None

GPU 1 Test

0

/bin/bash: /opt/gabbler/render/node/blender269/blender: No such file or directory


None

GPU 2 Test

0

/bin/bash: /opt/gabbler/render/node/blender269/blender: No such file or directory


None

Добавлено спустя 1 минуту:
упс, а устанавливать обязательно нод? я его на убунту еще не ставил, у меня 13.10, пойдет?
Mup0k M
Аватара
Откуда: CZE
Сообщения: 259

Сообщение #96 girafenok » 30.03.2014, 19:00

Mup0k,
Нод не установлен. Я ориентировался на тех, у кого уже установлен нод. Иначе надо править пути к blender'у.

13.10 Пойдет. Только сначала надоклиент установить, а потом нод
girafenok
рендер-фермер
рендер-фермер
Сообщения: 657

Сообщение #97 Mup0k » 30.03.2014, 19:02

girafenok, качаю нод. Для установки достаточно запустить и он сам через центр приложений установит?
Mup0k M
Аватара
Откуда: CZE
Сообщения: 259

Сообщение #98 girafenok » 30.03.2014, 19:06

Я программу Центр приложений не понимаю.
Если установлено приложение gdebi-gtk или gdebi-kde то можно через нее, через правую клавишу мыши по deb пакету.
Или из терминала две команды.
Код: Выделить всё
sudo dpkg -i gbrender.node_0.20-1_amd64.deb
sudo apt-get -f install
girafenok
рендер-фермер
рендер-фермер
Сообщения: 657

Сообщение #99 Mup0k » 30.03.2014, 19:22

Как выходить из нода? Убивать через top?
Можно пользоваться одним и тем же аккаунтом и в винде и в линуксе?
Вывод не влазиет сюда, и нельзя прикреплять .txt
Добавьте в скайпе пожалуйста vlk_liska я скину
P.s. установил просто через центр приложений(дабл-клик). Очень много вылазило ошибок с репортами, но вроде бы все гуд)
Последний раз редактировалось Mup0k 30.03.2014, 19:25, всего редактировалось 1 раз.
Mup0k M
Аватара
Откуда: CZE
Сообщения: 259

Сообщение #100 girafenok » 30.03.2014, 19:25

Mup0k,
Щелкаете по значку нода, выбирате выход. Там же зарегистрировать нод, чтобы рейтинг учитывался.
Нужно пользоваться одним аккаунтом на всех своих компьютерах.
Скайп не пользую. Сейчас скину почту в личку.
girafenok
рендер-фермер
рендер-фермер
Сообщения: 657

Пред.След.

Вернуться в Обсуждение CG

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 1 гость