воскресенье, 22 июня 2014 г.

Сравнение производительности mental ray на платформах Windows и Linux

Доброе время суток мои юные падаваны. В выдавшиеся свободные выходные я решил произвести небольшое исследование производительности в визуализации mental ray for Maya на двух различных платформах. Как известно многие крупные студии используют Linux в своей работе и такие программные пакеты как Autodesk Maya, Autodesk Softimage, The Foundry NUKE и другие. В целом, связка таких пакетов как Maya + RenderMan \ V-Ray \ mental ray \ Arnold (выберите себе по вкусу :)) + NUKE \ Fusion (так же выберите) уже давно зарекомендовала себя на платформе UNIX-подобных систем. Даже я выбираю Linux в качестве тестовой площадки, для исследований и круглосуточных вычислений, а в прямой деятельности уже использую Windows и Mac OS X. Мне всегда было интересно сравнить влияние операционной системы на скорость визуализации или возможности, реализованные в приложениях.
В процессе работы над книгой о mental ray for Maya мне приходится выполнять множество тестовых и финальных визуализаций изображений для иллюстрирования книги. Поэтому для вычислений была выбрана ОС Linux и mental ray Standalone в качестве основного инструмента для визуализации. Благо, для правки сцен может потребоваться любой функциональный текстовый редактор. В тоже время, на основной рабочей станции установлены как Windows, так и Linux, на Linux Обычно тестируются новые версии Maya и mental ray for Maya. Данное тестирование выполнялось на одной системе (FORSITE X1240q workstation), с двумя ОС. Для унификации теста в Maya были созданы несколько сцен, для визуализации использовался mental ray for Maya (версия ядра 3.12.1.16).
Использование оперативной памяти системой по умолчанию
Первый просто тест который я провел – использование оперативной памяти системой сразу после загрузки компьютера. Что мне не всегда нравилось в Windows, так это то, что после разворачивая рабочей системы со всеми приложениями, система начинает потреблять достаточно большой объем оперативной памяти, иногда, более двух гигабайт. В моем случае, из 16 Гб ОЗУ, Windows со всеми запущенными в фоне службами использует около 1,6 Гб ОЗУ, что конечно не есть хорошо, когда нужно постоянно что-то вычислять и использовать эту память по максимуму.

Хотя, в принципе для рабочей станции это вполне нормальное состояние, множество приложений используют различные службы и подгружают свои фоновые процессы для облегчения последующей загрузки.
Следующее что необходимо было решить и понять – использование памяти самим процессом maya.exe, после запуска программы и при чистой сцене по умолчанию. В данном тесте, Maya на платформе Windows использует всего 433 Мб ОЗУ. Конечно, чтобы оптимизировать объем используемой памяти, необходимо отключить все ненужные модули Maya и оставить только те, что необходимы. В принципе это достигается снятием галочек с модулей в окне Plug-in Manager.

У операционной системы семейства Linux все несколько иначе. В данном тестировании, я опирался на данные полученные с дистрибутива CentOS 6.5. Так, из 16 Гб ОЗУ, системе необходимо всего 1.1 Гб, при этом, в ряде случаев, она может использовать всего 650 – 800 Мб. Это особенно важно, когда необходимо выполнять визуализацию больших и сложных сцен, занимающих достаточно большой объем памяти.

А вот Maya для платформы Linux, использует практически идентичный объем ОЗУ, что и версия для платформы Windows, около 430 Мб. В принципе, как можно заметить, программа в принципе достаточно унифицирована и может быть спокойно сконфигурирована под различные платформы с одинаковым расходом ресурсов.

Разобравшись с используемыми объемами памяти, можно перейти непосредственно к тестированию mental ray for Maya на обеих платформах.


Производительность mental ray for Maya на Windows и Linux
Тестирование выполнялось с помощью шести специально подготовленных сцен. Каждая из сцен обладает идентичными глобальными настройками и, по сути, реализует один из методов использующих трассировку луча.
Первый тест целиком посвящен вычислению эффекта Ambient Occlusion с помощью классического шейдера mib_ambocclusion.

Результат теста демонстрирует следующая иллюстрация.

Из данной иллюстрации видно, как одна и та же сцена, визуализируется в mental ray for Maya на Windows и Linux. А также расход памяти – обычно максимальный объем памяти, используемый mental ray в процессе визуализации.
Второй тест, уже более интересен.  Он рассчитан на построение изображения с использованием алгоритмов трассировки луча для отражений. Глубина отражений в обоих случаях равна 10.

Рисунок ниже, представляет диаграмму времени, затраченного на вычисления и объема используемой памяти.

Данный тест наглядно демонстрирует, что версия mental ray for Maya для платформы Windows работает быстрее и на 10 секунд быстрее выполняет вычисления. Так же обстоят дела и с объемом используемой памяти. Здесь, Windows вновь одержала победу.

Третий тест посвящен преломлениям. Это достаточно ресурсоемкий алгоритм в любом движке визуализации. И при использовании большой глубины, он спокойно может потребовать большого количества времени.

Иллюстрация выше демонстрирует время визуализации на Windows и Linux сцены с прозрачными объектами и объем используемой памяти. Как видите, Windows и здесь одержала победу. Хотя и разница в объемах памяти была незначительна. А вот время визуализации составило разницу почти в 3 минуты и 20 секунд.
Четвертый тест является комплексным и призван определить производительность в визуализации полноценной сцены с текстурными картами, отражениями, цветом и активной системой Color Management.

Данный тест производился с учётом вычислений как всего изображения в целом, так и вычислении глобального освещения по методу Final Gather.

Иллюстрация выше наглядно демонстрирует то, как mental ray выполняет визуализацию и за какое время. Так, для вычисления глобального освещения mental ray уложился в одно время. А визуализация всей сцены различается всего на 11 секунд, что в принципе не так страшно. В тоже время, объем памяти в Linux используется больший, чем в Windows.

Пятый тест, предназначен определения времени, затрачиваемого на вычисления глобального освещения. Объектам в сцене назначен материал белого цвета и используется система освещения mental ray Sun & Sky с источниками света типа Portal Light.

Здесь уже видно, сколько времени требуется mental ray на вычисления Final Gather и визуализацию изображения в целом. При этом, различия не настолько большие, в пределах 1 минуты на Final Gather и около 22 минут на визуализацию всей сцены. Объем используемой памяти так же различается, в пределах 22 Мб.
Последний, шестой тест, показывает время, затрачиваемое на визуализацию глянцевых отражений.

Данная сцена содержит всем известный референс-объект с материалом, реализующим глянцевые отражения. Здесь, как видите все достаточно равномерно. Процесс визуализация занимает одинаковое время, а объем памяти на платформе Linux, так же как и в предыдущем примере выше на 21 Мб.

Какие выводы можно сделать из данного примера? Все достаточно неоднозначно. На самом деле, в практике работы mental ray for Maya под управлением операционной системы Linux демонстрирует достаточно высокую производительность в визуализации полноценных и комплексных сцен. А вот при использовании определенных алгоритмов и простых задачах, результат может различаться. Что нам и демонстрируют приведенные в данном посте примеры.
Общая таблица записанных данных представлена на рисунке ниже.

В заключении отмечу следующий момент. Операционные системы семейства Linux позволяют гораздо эффективнее использовать доступную память и вычислительные мощности рабочей станции, а благодаря менее нагромождённой системе управления сетями и достаточно гибкими возможностями по настройке, отлично подходят для развертывания как небольших, так и крупных вычислительных сред (ферм визуализации и т.п.). Еще одним плюсом считается наличие доступных и полноценных инструментов для разработки собственных приложений, а разработчики Autodesk Maya предоставляют все необходимые инструменты для разворачивания платформы для разработки расширений и их отладки. По сути, этот фактор как раз и заслужил большого интереса студий к платформе Linux.

Комментариев нет: