Научная статья на тему 'О распараллеливании вычислительного процесса формирования поверхности жидкости в режиме реального времени'

О распараллеливании вычислительного процесса формирования поверхности жидкости в режиме реального времени Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
234
68
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ФОРМИРОВАНИЕ ПОВЕРХНОСТИ ЖИДКОСТЕЙ / ВЫСОКО РАСПАРАЛЛЕЛЕННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ / ШУМОВЫЕ ФУНКЦИИ ПЕРЛИНА / ФИЗИЧЕСКИ ОБОСНОВАННОЕ МОДЕЛИРОВАНИЕ / СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Торгонин Е. Ю.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Торгонин Е. Ю.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «О распараллеливании вычислительного процесса формирования поверхности жидкости в режиме реального времени»

КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ

УДК 004.021:004.946

О РАСПАРАЛЛЕЛИВАНИИ ВЫЧИСЛИТЕЛЬНОГО ПРОЦЕССАФОРМИРОВАНИЯ ПОВЕРХНОСТИ ЖИДКОСТИ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ

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

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

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

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

Е. Ю.ТОРГОНИН

Белгородский государственный технологический университет им. В.Г. Шухова

e-mail:

e.yudek@gmail.com

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

В данной работе описан разработанный мною метод распараллеливания вычислительного процесса формирования поверхности жидкой среды. Метод учитывает широко используемое упрощение [3] для представления жидкости состоящее в том, что за исключением больших и высоких волн, а также прибоев, водная поверхность может быть представлена как двумерный объект или сетка. Сетка задаётся через карты высот и нормалей, что является самым простым и высокопроизводительным решением для любого современного графического ускорителя (GPU). Причём графическому ускорителю могут передаваться лишь контуры данной поверхности, а высокая детализация достигается за счёт тесселяции поверхности с использованием возможностей самих GPU [1]. Для наиболее оптимальной реализации описываемой методики с использованием таких устройств, как современные многоядерные центральные процессоры (CPU) и GPU, необходимо создавать текстуры низкого разрешения для хранения волновой модели поведения жидкости. В данной работе при анализе эффективности разработанного метода используется стохастический метод Тессендорфа [3]. При использовании самого метода [3] мы не сможем моделировать в режиме реального времени действительно большие пространства из-за его большой вычислительной сложности. Если говорить о симуляторах, то это пространства, выходящие за пределы области видимости наблюдателя/пользователя, например сцены с моделью распространения волн цунами на большие расстояния.

Основываясь на представлении жидкости как рекурсивной среды и опираясь на текстуры, созданные с помощью выбранного подхода [3], как восстанавливаемые функции, предлагаю использовать генерацию нескольких октав шума Перлина [1] с различными значениями амплитуд и частот волн. Полученные данные необходимо объединить с данными, полученными с применением физически обоснованной или стохастической моделью поведения волн. Итоговое значение каждого элемента карты поверхности жидкости (узла сетки) рассчитывается по формуле:

ЛП

f(x) □ □ □ ' □ /(2' □ х), (1)

i :о

где а - амплитуда волны, а /(2' □ либо результат расчёта шумовой функции, либо

х)

метода Тессендорфа при заданной частоте волны 2‘. Комбинируя несколько таких карт высот в пространстве и времени, мы можем получить достаточно сложную и реалистичную мультипликацию поверхности.

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

Данная идея хорошо подходит для создания так называемых «юбок» на границах секторов (рисунок 1.б), создаваемых при разбиении поверхности на отдельные участки с целью распределить вычисления по множеству вычислительных устройств. Различные сектора могут формироваться с различной точностью и соответственно скоростью. Получаемые значения в соседних узлах сетки могут существенно отличаться (рисунок 1.б: между блоками типов А, В, С). Данный эффект получающихся «швов» необходимо сгладить, а полученный шум используется в дальнейшем для получения реалистичного изображения.

Одни текстуры, отвечающие за высокую детализацию, должны обновляться каждый кадр, другие нет. Можно вынести сложные вычисления в отдельные потоки на центральном процессоре или GPU, проводя вычисления асинхронно и подменяя участки полученных карт по мере необходимости (рис. 1).

Таким образом, вся поверхность представляет собой множество связанных сегментов или секторов, количество которых увеличивается пропорционально количест-

ву вычислительных устройств и размеру самой поверхности (рисунок 1.б). На рисунке 1.а показана сетка поверхности жидкой среды. Если позиция наблюдателя находится в самом центре, то поверхность можно разделить на сектора, которые могут находиться в одном из трёх состояний:

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

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

2) Готов - сектор расположен вне поля зрения наблюдателя, но в самое ближайшее время может стать видимым, что требует выполнения всех вычислений, которые будут необходимы для достоверной визуализации.

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

3) Сектора данной области видимы, а каждый из них будем считать активным. Активные в данный момент времени сектора находятся в поле зрения наблюдателя и должны быть визуализированы вне зависимости от того, просчитана ли физически обоснованная модель поведения жидкости или нет. Если корректная модель не рассчитана, то используются шумовые функции.

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

б) в)

Рис. 1. Асинхронное вычисление модели поведения поверхности жидкости

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

выделено на обработку 1 кадра. Мною разработана система со свободным шагом для реализации параллельных вычислений. Это означает, что не требуется синхронизация по всем потокам по завершении каждого следующего кадра и часть потоков получает право на продолжение трудоёмких вычислений, но в результате испытаний выяснилось, что данная задержка не должна продолжаться более 2-3 кадров. В противном случае накапливаются большие ошибки.

Поток 1 ФИЗИЧЕСКИ uCu-HUBdt-Hje миде/і и риьаьие Ц.1>- Le мен Id N, j' ФИЗ. uGjtHUUdHHUe мсделиривсние ДЛИ се мені а N.

Пиши 2 Физически оСоснованное мо делирование для сегмента Nk

Поток 3 Визуализация (втомчисле построение карт Перлина) Визуализация (в том числе построение карт Перлина)

Поток 4 зеоц/вывод Расчёт физических явлений ввод/вы вед Ргечет физических явлений

Поток 5 ибновлениэ текстурного атласа ^иі-хронизгідия Кадр N обнозленле текст/рного атласа онхренизадия Ka/;pN+l

Рис. 2. Синхронизация и потоки со свободным шагом выполнения

Проведенные мною исследования показали, что для поставленной задачи формирования поверхности жидкости на больших открытых пространствах оптимальной методологией проектирования системы планирования и диспетчеризации потоков, выполняющих вычисления модели поведения на различных секторах, является подход с минимизацией взаимоблокировок [2] или так называемый lock-less подход. Подход подразумевает сведение к минимуму объёма разделяемых ресурсов и соответственно сводит к минимуму вероятность «гонок».

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

Данный подход позволяет при небольшом перерасходе памяти, получить иногда существенный прирост производительности за счёт экономии времени на работу средств синхронизации повсеместно используемых в традиционных lock-based методиках.

Расчёт физической модели поведения предлагается возлагать на некоторое множество процессоров, доступное на используемой системе, для чего создаётся специальный пул потоков. А данные, поступающие на обработку, разбиваются на задачи (рис. 3), которые в свою очередь сами могут иметь подзадачи (рис. 1.в).

Рис. 3. Организация процесса многопоточных вычислений

Синхронизация доступа к подзадачам осуществляется только при записи/чтении очереди задач. Очередь становится разделяемым ресурсом. Проведенные мною исследования показали, что прирост производительности составляет до 15% по сравнению с lock-based методиками при решении поставленной задачи.

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

Были получены результаты, показывающие высокую эффективность данного подхода на DirectX 11 совместимых устройствах, а так же системах с аппаратной поддержкой платформы CUDA или Stream при разбиении карты поверхности на сектора размером 25бх25б пикселей и выводом на экран с разрешением 1024х768 пикселей.

При анализе использовался компьютер, оборудованный 4-ядерным процессором Intel Core2Quad E6600 2.4 GHz, графическим ускорителем ATI HD4850 и объёмом оперативной памяти в размере 4 Gb. При использовании центрального процессора, как основного вычислительного устройства производительность снижается примерно в 10 раз, по сравнению с использованием GPU по средствам интерфейса OpenCL.

В таблице 1 показано количество кадров в секунду выполняемых при визуализации жидкости (поверхности океана) с геометрической сеткой размером 256х256 вершин. Как видно из таблицы, использование lock-less подхода позволяет повысить производительность. Такое решение хорошо масштабируется и позволяет использовать произвольное количество N потоков исполнения, без необходимости переписывания существующего кода, не опасаясь проблем взаимоблокировок.

Таблица1

Анализ эффективности предложенного подхода

Общий размер карт поверхности GPU CPU(2 потока) CPU(4 потока)

Lock- based Lock-less Lock-based Lock-less Lock-based Lock-less

8192х8192 ~3 ~3 ~ 0 ~ 0 ~ 0 ~ 0

4096х4096 ~7 ~7 ~ 0 ~ 0 ~ 0 ~ 0

2048х2048 ~26 ~27 ~ 1 ~ 1 ~ 1 ~ 1

1024х1024 ~47 ~49 ~ 1 ~ 2 ~ 2 ~ 2

512х512 ~74 ~78 ~ 5 ~ 5 ~ 7 ~ 8

Использование средств GPU, как основного вычислительного устройства, позволяет достигнуть наиболее высокой эффективности за счёт большого числа вычислительных блоков.

На основании проведенных исследований можно указать преимущества предложенного подхода:

1) Ориентированность на современное аппаратное обеспечение, многопоточность и многопроцессорные системы.

2) Высокая реалистичность результата в реальном масштабе времени.

3) Высокая производительность.

Данный подход может использоваться в следующих областях:

1) Кинематография и мультипликация.

2) Компьютерные тренажёры и симуляторы.

3) Обучающие программы.

4) Мультимедиа приложения и компьютерные игры.

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

Следует отметить, что технологии аппаратной поддержки многопоточной визуализации и моделирования, как на CPU, так и на GPU продолжают бурно развиваться и имеется достаточно большое поле для дальнейших исследований, в том числе и при взаимном использовании средств CPU и GPU.

Литература

1. Торгонин Е. Ю. Моделирование динамики движения жидкостей и оптика на высоко распараллеленных вычислительных системах //Математические методы в технике и технологиях - ММТТ-23: сб. трудов XXIII Междунар. науч. конф. -Саратов:Сарат.гос.техн.ун-т, 2010.-Т.9.-С. 154-157.

2. Andrews J. Designing the Framework of a Parallel Game Engine [Электронный ресурс] / J.

Andrews. - Режим доступа: http://software.intel.com/en-us/articles/designing-the-framework-of-a-

parallel-game-engine/ - Дата обращения: 01.02.2011.

3. Tessendorf J. Simulating Ocean Water [Электронный ресурс] / J. Tessendorf. - Режим доступа: http://graphics.ucsd.edu/courses/rendering/2005/jdewall/tessendorf.pdf. - Дата обращения: 01.02.2011.

ABOUT MULTITHREADED COMPUTING PROCESS OF CREATION OF THE SURFACE GEOMETRY OF A LIQUID IN REAL-TIME

E.Y.TORGONIN

Belgorod State Technology University named after V.G. Shukhov e-mail:

e.yudek@gmail.com

In this paper is developed the method of the organization multith- readed calculations for creation of the surface geometry of a liquid in real-time.The made analysis has shown, that the developed method shows high efficiency and gives an opportunity of use physically-based liquid modeling in real time. Results of experiment are presented. Re- sults can be used at creation of technical systems, in the computer simu- lators, training programs and multimedia applications.

Key words: creation of the surface geometry of a liquids, multith- readed computer systems, Perlin noise, physical based modelling, real- time systems.

i Надоели баннеры? Вы всегда можете отключить рекламу.