«Аватар» глазами сотрудника компании Weta

Вы должно быть заметили, что тема компании Weta Digital в этом блоге появляется с завидной периодичностью. В первую очередь причина этому то, что Weta это давний и стойкий клиент NetApp, а задачи, которыми они занимаются, это настоящий “передний край” и то, что наши англоязычные коллеги называют challenge.

Некоторое время назад в России начал выходить новый журнал - “Суперкомпьютеры”, эта статья найдена в его первом номере, и с разрешения редакции я его тут (ре)опубликую. У журнала уже вышло два номера и сдается третий. В скором времени появится и онлайн-страничка с материалами уже опубликованных журналов. А пока же – отдельная статья. Какое отношение имеет Weta и фильм Avatar к суперкомпьютерам – читайте ниже.

Автор текста - Алексей Пузиков

«Аватар» – фильм почти полностью компьютерный, а производство графики для современного кино – исключительно сложная и ресурсоемкая задача, которая требует огромного объема вычислений, выполнимых только на больших кластерных и суперкомпьютерных системах

В качестве основного поставщика спецэффектов для своего фильма Джеймс Кэмерон выбрал студию Weta Digital, далеко не новичка в индустрии. Основанная в 1993 году Питером Джексоном, Ричардом Тейлором и Джейми Селкирком, компания стала широко известна после успеха трилогии «Властелин Колец» и драмы «Кинг-Конг», за спецэффекты во всех этих фильмах студия получила награду Американской киноакадемии – Оскар. Полученный при работе опыт позволил Weta войти в так называемую Большую Четверку мировой компьютерной графики: ILM, Digital Domain, Rhythm and Hues, Weta Digital.

Вообще говоря, география FX-студий не отличается разнообразием. Большая часть их сконцентрирована в непосредственной близости к мировой столице кинобизнеса – Голливуду, то есть располагается в Калифорнии, северной и центральной. Также широко известны и пользуются популярностью несколько британских студий. А вот компания, о которой мы поведем наш разговор, нашла свой дом на небольшом полуострове Мирамар с населением в 8 с половиной тысяч человек, который является частью Веллингтона, столицы Новой Зеландии.

??так, перед Weta встала задача – в максимально сжатые сроки (чуть больше двух лет) просчитать в максимальном качестве больше порядка 160 минут графики и специальных эффектов на уровне, за который ранее не бралась ни одна студия, – причем в стереорежиме, то есть вместо традиционного одного кадра рассчитывались два изображения: по одному для каждого глаза. Сценарий фильма предполагал большое количество полностью компьютерных персонажей, взаимодействующих с окружающей средой, джунглями, животными и многочисленными видами техники – тоже компьютерными.

image

Задача такой сложности обусловила выбор технологий для создания нового вычислительного кластера, – поскольку имеющиеся мощности, так успешно использованные при расчете долин Средиземья и кинг-конговской шерсти, устарели и новым требованиям уже не удовлетворяли.

Типичные для компьютерной графики вычислительные задачи очень сильно отличаются от таковых в научной или производственной суперкомпьютерной среде. Для классических научных расчетов характерны большиепо объему вычислений задачи, очень часто весь кластер работает над одной такой задачей и останавливается по ее завершении. При производстве киноэффектов дело обстоит иначе. В нашем случае мы имеем дело с большим количеством относительно небольших заданий, каждое из которых может содержать в себе тысячи независимых вычислений и подпрограмм, и как только один из компьютеров или узел заканчивает свою работу, он немедленно получает из очереди свою часть следующего задания.

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

image

Во-вторых, это повышенные требования к системе хранения данных.

Один готовый кадр стереофильма занимает 12 мегабайт, соответственно, для 24 кадров в секунду это выливается в почти 18 гигабайт для одной минуты фильма – и это только изображения, а ведь еще есть вспомогательные данные, кэши и прочее.

Для полноценной работы над 160-минутным фильмом нужны очень большие и очень быстрые диски, и их никогда не бывает достаточно.

Обязательно следует упомянуть скорость расчетов. Для этого сделаем небольшое отступление и расскажем о Законе Двух Часов. Широко известен закон Мура («Мощность вычислительных устройств удваивается каждые 18 месяцев»). Однако в индустрии компьютерной графики действует другой закон, Блинна: «Вне зависимости от растущей скорости компьютера кадр считается одинаковое количество времени», обычно это около двух часов. Таким образом, насколько быстрым не был бы ваш компьютер, всегда будет найдено новое применение его мощностям, новые методы повышения реализма, и в результате время рендеринга одного кадра не уменьшится.

image

В последнее время стало модным говорить о экологичности и экономичности. Достаточно часто в индустриальных новостях мы видим слова о том, что под новый суперкомпьютер строится новое здание со своей выделенной инфраструктурой, учитывающей повышенное энергопотребление, специальные системы охлаждения и прочее. В ситуации, когда сроки были жестко установлены, каждый день промедления оборачивался прямыми многотысячными убытками и мог привести к переносу сроков сдачи фильма – а такое, как мы уже говорили, практически невозможно. Пришлось использовать имеющиеся ресурсы и пытаться минимизировать их расход.

Упомянем, наконец, и специфические требования самой Weta: например, что операционная система и аппаратная среда на кластере и рабочих компьютерах сотрудников должна быть полностью идентичной, чтобы не возникло проблем с переносом программ и несовместимостью – это сразу исключило из возможных решений специальные архитектуры и нестандартные процессоры. Немаловажным фактором являлось и местоположение офиса студии – вернее, ее нескольких офисов, разнесенных на дистанцию до трех километров.

??сходя из всего вышеперечисленного был сделан выбор в пользу распределенной кластерной вычислительной системы на базе процессоров Intel. В качестве поставщика блейдов выступила компания HP, а из всего спектра ее предложений были выбраны серверы BL2×220c, как самые «плотные» из имеющихся – в каждом серверном лезвии этой модели «упакован» не один, а сразу два компьютера. Всего установили 34 серверных стойки с 4 шасси на каждой и 16 блейдами в каждом шасси, с двумя узлами в каждом блейде и двумя четырехъядерными процессорами в каждом узле, что в общей сумме дает 34 * 4 * 32 * 2 * 4 = 34816 вычислительных ядер. Для сравнения, 10 лет назад вычислительная ферма студии состояла из 13 компьютеров с двуядерными процессорами с частотой 733 мегагерца.

Любопытно, что свежеустановленные системы немедленно попали в ноябрьский список Top500 и заняли в нем сразу 5 мест подряд – с 193 по 197. Почему же компания не объединила 5 кластеров в один и не заняла более высокое и престижное место в списке? Конечно, из-за приоритетов – фактически каждый блейд, узел и сервер в течение 24 часов после доставки в офис включались и

немедленно начинали работу над фильмом. По некоторым оценкам, запуск и отладка тестов Linpack на полном кластере потребовали бы полной его остановки на срок до 9-10 дней, чего никто не мог себе позволить. Даже сейчас, когда «Аватар» закончен, охота за новыми местами в топе не планируется – кластер уже занят расчетом графики для новых проектов.

Продолжим рассказ о новой системе. Общий объем оперативной памяти составляет 104 Терабайта, по 24 на каждый узел. Посредством NFS к кластеру подключены дисковые системы от Bluearc и NetАpp общим объемом 2 петабайта.

Компьютеры объединены в сеть скоростью 10 Гбит/с при помощи сетевых решений от Foundry Networks, а между офисами проложено оптоволоконное кольцо с пропускной способностью 100 Гбит/с.

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

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

Вычислительный центр Weta – это одновременно выставка самых последних достижений индустрии и исследовательская лаборатория, которая генерирует новые решения и технологии и немедленно применяет их.

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

Не осталась в стороне и Weta: в ходе работы над «Аватаром» был исследован и доведен до индустриального уровня целый ряд новых алгоритмов и программ, которые можно было легко реализовывать и ускорять на специализированных процессорах, используемых в современных видеокартах. Так в составе кластера появились модули Tesla производства компании NVIDIA – специализированные компьютеры с большим количеством установленных видеокарт, которые позволили ускорить новые алгоритмы в десятки раз. Такие изменения в архитектуре суперкомпьютера потребовали соответствующих поправок в системе управления задачами.

Другой пример инноваций – это проблема с охлаждением. Оказалось, что стойки с двойной плотностью лезвий очень плохо вентилируются. Чтобы добиться необходимого потока и градиента температур, нужно было увеличивать расстояние между стойками, – а это приводило к увеличению расстояния до дисковых массивов и соответствующему снижению скорости, что также было неприемлемо. Поэтому использовали водяное охлаждение самих стоек, а затем начались мелкие хитрости – например, баки с охлаждающей жидкостью и блоки питания были вынесены из машинного зала на улицу, что благодаря прохладному климату Новой Зеландии немедленно дало необходимый эффект, причем практически бесплатно. Неменьший эффект дает простое повышение рабочей температуры в стойке – повышение на градус не критично для жидкостного охлаждения и допустимо для используемых компьютеров, а экономия ресурсов заметна сразу.

В результате затраты на охлаждение кластера удалось снизить на 40 процентов по сравнению с аналогичными системами в других студиях.

Но есть общеизвестные индустриальные тенденции, которые в данном случае не нашли своего применения. На нашем кластере не используется виртуализация, поскольку она замедляет выполнение программ, а скорость рендеринга в данном случае критична. Также в силу секретности выполняемых работ студия не берет на расчет чужие задачи и не отдает свои для обработки другими студиями. А объем используемых и сгенерированных данных вкупе с количеством самой работы отсекает возможность cloud computing.

Так или иначе, с поставленной задачей кластер справился отлично.

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

За 2 года работы над «Аватаром» было произведено более 1 Петабайта данных, которые включают в себя как промежуточные файлы, которые могут понадобиться в любой момент для редактирования и пересчета, так и финальные кадры – почти 240 000 финальных кадров, которые отправились в Лос-Анжелес для окончательного монтажа, цветокоррекции и печати на пленку.

Говорят, что работу над фильмом невозможно закончить, ее можно только прекратить. Работа над «Аватаром» закончилась чуть раньше запланированной даты, и ровно в отмеченный на календарях два года назад день открылись двери кинотеатров, чтобы погрузить зрителя в удивительный мир Пандоры.

image

UPD: Также интересующимся могу порекомендовать мой перевод, опубликованный в блоге компании NetApp на habrahabr.ru: http://habrahabr.ru/company/netapp/blog/98537, там можно тоже кое-какие интересные технические детали почерпнуть.

Комментарии (5)

  1. Альберт Салман:

    7 админов :) Вот это называется правильный подход к управлению!

    Странно что кроме FlexCache ни про что не сказано. Единственная примененная из особых фич NetApp?

    З.Ы. У кого-нибудь есть на посмотреть применяются ли EMC, HP, HDS, IBM в каких-нибудь “передовых” областях с применением стораджей?
    З.З.Ы. ??нвайт на Хабр может у кого завалялся? Уж больно хочется пару комментариев оставить в статьях про NetApp.

  2. Во первых суровая секретность. Правда.
    Во вторых, как я понял, задача решалась довольно “лобовым ударом”, главное требование было - поддерживаемость (вендором) и отсутствие глюков.
    Ситуация, “когда что-то сломалось, мы пока не знаем что” была недопустима. Сроки были абсолютно жесткие.
    Собственно человек мне рассказывал, что они именно по этой причине не стали использовать BlueArc, несмотря на его несколько большую в абсолтных величинах производительность, из за некоторой непредсказуемости поведения и отсутствии нормальной поддержки в регионе.

    На указанный при комментировании email отправил инвайт.

  3. Альберт Салман:

    Хм, тогда упоминание FlexCache в некоторой степени выглядит рекламой (насколько мне известно он очень редко применяется клиентами NetApp, но те что применяют - жутко довольны).

    За инвайт большое спасибо!

  4. Не совсем понял про рекламу.

    У Weta использовался и FlexCache, и SA600, и FlashCache (PAM II).
    Требования по производительности и латентности в таких задачах очень высоки.

    Как рассказал автор переведенного мной текста, Адам Шэнд, 4 системы FAS6080 с FlashCache и плюс 4 SA600 на “фронтэнде” (это по сути такие же FAS6080 работашие как кэш NFS) круглосуточно работали со 100% загрузки CPU и практически 100% загрузкой 4-х интерфейсов 10Gb Ethernet в каждой “голове”.

  5. Альберт Салман:

    Про рекламу думаю не прав, наверно ничего больше особого и не использовалось - нужна была только огромная скорость для доступа к данным по NFS.

    Про FlashCache в 6080 не было сказано. Если у них там уже стояли скажем 512GB модули, сеть по сути локальная (40Gb/s), активный кусок данных как они заявили около 500GB, мне не ясно что такого есть в FlexCache что дало увеличение производительности?

    Как пишет NetApp FlexCache полезен при доступе с удаленных сайтов и для разгрузки перегруженных систем хранения (отдельных волумов), в данном случае SA600 стояли фронтэндом к 6080, т.е. напрямую 6080 не использовались? ??ли все-таки использовались.

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

Оставить комментарий