Конфигурирование вычислительного кластера для распределенного рендеринга 3д сцен
Содержание материала
Средства визуализации
Существует множество различных программных пакетов (3d редакторов), c помощью которых можно моделировать 3D объекты и создавать на основе этих моделей фотореалистичные изображения. К ним относятся Autodesk Maya, Blender, Autodesk 3ds Max, Houdini, Modo, Cinema 4D, ZBrush, Autodesk Softimage, LightWave 3D, Rhinoceros 3D и др. В ходе работы будет использована программа Autodesk Maya. Этот программный пакет имеет огромный функционал и возможности, позволяет заниматься моделированием, текстурированием, анимированием, композитингом, рендерингом. Maya популярна среди крупных компаний, работающих над масштабными проектами в рекламе, кино, игровой индустрии. Программу можно легко подстроить под себя, что делает ее удобной в работе.
Программы, которые работают с трехмерной графикой, имеют хотя бы один встроенный рендерер (программа производящая рендеринг). Однако есть возможность подключить внешний рендерер в качестве плагина. Самые известные инструменты визуализации, которые могут использоваться как плагины во множестве программ – это MentalRay, VRay, Arnold, Redshift, Octane, RenderMan, Brazil R/S, Maxwell Render, Indigo Renderer, YafRay, POV-Ray.
Одни из самых популярных визуализаторов – это Redshift, VRay, Arnold, MentalRay. Все они поддерживают технологию распределенного рендеринга, могут производить визуализацию с использованием алгоритма трассировки луча, позволяют получить очень фотореалистичные изображения. Их используют как в больших проектах (создание фильмов), так и небольших (графика в рекламном ролике, дизайн). Redshift и Arnold являются более доступными для пользователей программными пакетами по сравнению с MentalRay, более дорогим визуализатором.
У каждого рендерера есть сильные и слабые стороны. Arnold, Mental Ray используют при рендеринге в качестве вычислительной платформы центральный процессор CPU. Преимущества Arnold рендерера это высокая оптимизация, гибкость и система плагинов, к которым относятся процедурные функции, шейдера, свои драйвера и прочее. Однако визуализация замедляется из-за данных, которые находятся в кэш памяти. Они увеличивают используемую оперативную и дисковую память.
Программа Redshift использует графический процессор GPU. Это первый в мире полностью ускоренный на GPU рендерер. Для работы необходима видеокарта от Nvidia. Он поддерживает алгоритмы brute-force GI, Photon Mapping, Irradiance Cache, Irradiance Point Cloud. Это техника глобального освещения со смещением. При визуализации данные подгружаются из оперативной памяти или жесткого диска в видеопамять графического процессора. Достаточно 1 гигабайта видеопамяти для того чтобы рендерить сложные сцены.
Сегодня уже множество новых программ для рендера конечных изображений используют мощности видеокарты (GPU). Некоторые работают полностью в облаке и не рендерят на вычислительном узле даже превью.
У каждого рендерера есть собственные шейдеры. При настройке сцены под определенный рендерер, следует перенастраивать материалы.
Вычислительные платформы
Рендеринг изображения происходит силами видеокарты (GPU) или центрального процессора компьютера (CPU). GPU рендер выполняет вычисления в графическом процессоре видеокарты. Достоинством GPU процессоров является огромная вычислительная мощность. При большом объеме информации, которая обрабатывается, GPU имеет явное преимущество. GPU применяется для обработки видео, ускорения в научных вычислениях, обработке данных, в расчете физики. В случае, когда на одной ноде свыше 2-х видеокарт, процессор не будет успевать обеспечивать запросы GPU в процессе вычисления, что приведет к ожиданию и потере полезного времени. Следовательно, бессмысленно использовать больше двух видеокарт для рендера 1 кадра на одной машине. CPU работает лучше с задачами, которые следует выполнять последовательно.
Рендеринг можно разделить на две группы по принципу действия: biased («настраиваемый») и unbiased («не настраиваемый») [5]. Biased рендер просчитывает все физические эффекты поочередно, затем соединяет их. Создается карта освещенности пространства изображения, для того чтобы понять какие участки просчитывать точно, а какие нет. Если участок слабо освещен, то сложные расчеты не проводятся. Unbiased рендер начинает обрабатывать всю сцену целиком. Качество итогового изображения улучшается по мере просчета кадра.
Система управления распределенной визуализацией. Программа Deadline
Для экономии времени на рендеринг следует создать сервис 3D визуализации, который представляет собой вычислительный кластер с установленным программным обеспечением, со всеми настройками для распространенных 3D пакетов (рендер ферму).
Создается сервис 3D визуализации с помощью системы управления визуализацией. Она позволяет построить сервис визуализации с минимальными временными и трудовыми затратами. Система предоставляет интерфейс для передачи нужной сцены на кластер, постановки и выполнения задачи, выдачи результатов работы.
Программа Deadline представляет собой систему управления рендером, инструмент для рендеринга для операционных систем Windows, Linux, Mac OS X. Она предлагает широкий диапазон управления для визуализации рендер фермой. Deadline поддерживает более 80 различных 3D пакетов. Программа позволяет безопасно подключаться и контролировать сразу несколько рендер ферм одновременно с одного экрана.[6]
Система управления распределенной визуализацией Deadline состоит из 3-х компонентов:
- база данных
- репозиторий (хранилище)
- один или несколько клиентов
База данных является глобальным компонентом системы управления визуализацией. В ней хранятся рабочие места, их настройки и конфигурации. Клиенты получают доступ базе данных через соединение по сети.
В репозитории хранятся плагины, скрипты, журналы и любые вспомогательные файлы (файлы сцены). Клиенты так же получают доступ к хранилищу по сети.
Клиент визуализации – это компьютер, через который пользователь запускает визуализацию. Он распределяет данные между нодами (узлами) и собирает результаты.
Рис. 4. Структура системы управления рендером Deadline
Программа Afanasy
Afanasy – это бесплатная программа для распределенного рендеринга. С помощью нее можно создать сервис для управления распределенной визуализацией. Она быстро объединяет удаленные компьютеры подключенные к сети для параллельного просчета. Afanasy обеспечивает мониторинг процесса распределенной визуализации. [8]
Рис. 5. Выполнение распределенного рендеринга
Также есть возможность отслеживать использование центрального процессора, оперативной памяти, жесткого диска, сетевого трафика, скорость работы дисковых операции ввода-вывода. Это помогает определить, что замедляет процесс визуализации. Можно одновременно выполнять несколько задач.
Рис. 6. Отслеживание характеристик
Подход к визуализации
Изучив различные подходы к визуализации 3D сцен, выполним рендеринг на одной машине, затем на вычислительном кластере с двумя конфигурациями. Сначала выберем в качестве вычислительной платформы на узлах центральный процессор (CPU), затем графический процессор (GPU). Далее проведем сравнение конфигураций.
Установка программного обеспечения
На машину с CPU – Intel Core i7-4770 3.40GHz 8ГБ Ram и GPU – NVIDIA GeForce GTX 660 1.5 GB был установлен программный пакет Autodesk Maya 2017 SP3.Также были установлены визуализаторы Arnold, Redshift.
На машину с CPU - Intel Core i3-3110M 2.40GHz 6ГБ Ram были установлены программы Maya, Mental Ray.
Вычислительный кластер на котором будет проведена визуализация состоит из трех нод. На каждой ноде CPU – Intel Core i7-4770 3.40GHz 8ГБ Ram и GPU – NVIDIA GeForce GTX 660 1.5 GB. На все машины были установлены необходимые программы. В качестве системы управления распределенной визуализацией была выбрана и установлена программа Afanasy.
Важно установить одни и те же версии программ на все компьютеры, для того чтобы не возникало ошибок в дальнейшей работе.
Все используемые вычислительные узлы под управлением операционной системы Windows.
Настройка сети
Все ноды вычислительного кластера должны находиться в сети. При этом они должны быть в одной сети. Для этого можно использовать маршрутизатор или коммутатор.
В данном случае все компьютеры находятся в одной локальной сети. Включим обнаружение сети и отключим защиту с помощью пароля на всех нодах. Также определим имена узлов (dml_itis, sumrak-rabota, itis-14-1406).
Настройка общего сетевого диска
На вычислительном узле dml_itis создадим папку. Открываем общий доступ к папке, подключаем сетевой диск. Выбираем произвольную букву для диска. В итоге появился новый диск на компьютере. На узлах клиентах так же подключаем общий сетевой диск.
Все ноды кластера должны видеть его. В общей папке будут храниться файлы сцены.
Настройка программного обеспечения
Запустив программу Autodesk Maya, подключаем программы для рендеринга в качестве плагина.
Настройка системы для распределенного рендеринга Afanasy.
Установив программу для распределенного рендеринга Afanasy на все ноды, настроем сервер и клиентов.
Сервером является компьютер, который отправляет различные задачи на другие клиентские компьютеры. В корневом каталоге установленной программы запустим файл start.cmd. На панели задач закрепится опция меню программы Afanasy. Выбрав в меню set to server укажем IP-адрес сервера. Также укажем путь к программе Autodesk Maya, выбрав в меню software, далее setup soft и maya. Указываем файл maya.exe.
Теперь запускаем сервер. Переходим в каталог \start\AFANASY и запускаем файл _afserver.cmd. Итак мы запустили сервер. Далее через меню запускаем start watch. Появится окно для мониторинга процесса рендеринга.
Запускаем в меню submit job. Появится окно для настройки работы, которая будет выполняться.
Запускаем в меню local render. Добавили ноду сервер для визуализации.
Теперь сервер настроен полностью и готов выполнять работу.
Аналогично запускаем на клиентах start.cmd. Указываем IP-адрес сервера и путь к программе Autodesk Maya. Запускаем визуализацию local render. Убедимся что в командной строке указано render registered. Также в окне мониторинга во вкладке renders появились клиенты.
Рис. 7. Окно мониторинга