Паралельний рендеринг

Паралельний рендеринг (або розподіленого рендеринга) - є застосування паралельного програмування в розрахунковій області комп'ютерної графіки. Рендеринга графіки може зажадати великих обчислювальних ресурсів для складних сцен, які виникають в науковій візуалізації, медичної візуалізації, САПР, Система автоматизованого проектування і розрахунку і віртуальної реальності. Візуалізація є надзвичайна паралельність робочого навантаження в декількох доменах (наприклад, пікселів, об'єкти, кадри) і, таким чином, є предметом численних досліджень.

Відомості[1] ред.

У комп'ютерній графіці, візуалізації можна визначити як процес перетворення моделі в зображень за допомогою комп'ютерних програм.Зображення являє собою цифрове зображення або зображення растрової графіки. Модель являє собою абстрактне опис Колекція геометрично певних об'єктів в 3D-просторі, який буде містити таку інформацію,як геометрія, точки зору, текстури, освітлення і затінення і т.д. Операція рендеринга проектів графічні об'єкти в моделі в 2D просторі зображень, обчислює інтенсивності кольору окремих пікселів зображення, і, нарешті, генерує зображення. (Crockett, 1997)

Для складних об'єктів або зображень з високою якістю, процес візуалізації вимагає масивних обчислювальні ресурси. Наприклад, надання медичної візуалізації, із поверхні покоління, а також деякі програми CAD може знадобитися мільйони чи мільярди операцій з плаваючою точкою і цілочисельні операції для кожного зображення. Деякі методи створення зображення, такі як трасування променів, 3D-текстур і т.д., працюють дуже повільно в простому машини. Для того, щоб отримати необхідну обчислювальну потужність, єдиним практичним рішенням є використання декількох блоків обробки щоб прискорити процес рендеринга. Ця технологія відома як паралельний рендеринг.

Паралельний рендеринг може значно підвищити продуктивність комп'ютерних графічних програм. В паралельний рендеринг, робота розділена, поширюється на комп'ютери і виконуються одночасно в паралельні один одному. Розглядаючи застосування променевих лиття, без паралельно, промені будуть спрямовані по одному, щоб всі пікселі в поданні усіченого; якщо використовується паралельний рендеринг, весь усічений можна розділити в ряді частин; ми можемо запустити той же число процесів, щоб посилати промені паралельно різні частини.

Скупчення машин, як правило, використовуються для виконання такого завдання. З розпаралелювання, високоякісне зображення високої складності можна легко отримати, і високе Ефективність обробки зображень може бути досягнуто.

Паралельний рендеринг широко прийнятий кожен метод формування зображення в області комп'ютерної графіки. Ці методи включають в себе поверхню і полігон рендеринг, рендеринг місцевості, обсяг рендеринга, трасування променів і излучательности. Типи паралелізму, що використовуються в процесі візуалізації різні; функціональний паралелізм, паралелізм даних, і тимчасової паралелізм є три основних типи; Крім того, вони можуть бути об'єднані в різні типи гібридної системи.

Сортування-перше, відсортуйте середнього, і начебто-останні є найбільш обговорювані алгоритми паралельних рендеринга. Це Класифікація заснована на точці в конвеєрі рендеринга, при якому об'єкт-простір для imagespace відображення відбувається. Є багато паралельних програм і структур рендеринга, такі як хром, Еквалайзер[2], і OpenSG т.д.

Види Паралелізму[1] ред.

Кілька різних видів паралельності можуть бути використані в процесі візуалізації на різних рівнях. Вони включають в себе функціональний паралелізм, паралелізм даних і тимчасової паралелізм. Ці основні типи можуть додатково бути об'єднані в гібридних системах.

Функціональний паралелізм

Процес рендеринга може бути розділений на безліч різних функцій, але, як правило, складається з двох частин:

  • обробка Геометрія: моделювання трансформації, задня поверхня вибракування, відсікання, освітлення, і вид перетворення.
  • растеризации: скан-перетворення, затінення, г-буфера порівняння і магазин, і видимість визначення.

У разі функціонального паралелізму, ці функції застосовуються послідовно до окремих елементів даних. Функції призначаються різні блоки обробки; як тільки блок обробки завершує свою роботу на елемент даних, він посилає елемент даних на наступний блок і отримує новий предмет від його вгору за течією сусід. Функціональний паралелізм може прискорити розрахунки критичних, після того, як конвеєр рендеринга заповнений; Ступінь паралельності досягнутого пропорційна кількості функціональних блоків. Функціональний паралелізм підходить для полігонів і візуалізації поверхні додатків. ми годуємо 3D-геометричні об'єкти на початку трубопроводу, а також отримати кінцеві значення пікселів від кінця трубопроводу. Існують два обмеження функціонального паралелізму; по-перше, загальна швидкість трубопроводу обмежується найповільнішої функції блоку, уникаючи вузьких місць є одним з найважливіших дизайн питання про функціональний паралелізм. Іншим недоліком функціонального паралелізму є те, що доступно Паралелізм залежить від числа ступенів в трубопроводі; через кількість функцій ділиться вельми обмежений, функціональний паралелізм не в змозі виробляти дуже високу продуктивність. (Crockett, 1997; Girkar, 1992; Раджагопалан, 2005)

Паралелізм Даних[1] ред.

На відміну від функціонального паралелізму, паралелізм даних фокусується на поширенні даних по Графічні дані розділені на кілька потоків; потім кілька елементів даних можуть бути оброблятися одночасно на різних блоків обробки, і результати об'єднуються, щоб створити остаточне зображення. (Хілліс, 1986) Є два типи паралелізму даних: об'єкт паралелізм і паралелізм зображення. об'єкт паралелізм відбувається на стадії обробки геометрії трубопроводу рендеринга; паралелізм зображення відбувається на більш пізній стадії растеризации конвеєра рендеринга. паралелізм даних може Перевага декількох процесорів, а також надає себе масштабованих реалізацій; більшість з Системи графічного програмного забезпечення взяли цей підхід. Щоб уникнути вузьких місць, як правило, об'єкт і зображення паралельність повинні бути включені разом; Однак отримання належного балансу між ними важко, так як робочі навантаження на кожному стадія залежить від багатьох факторів, таких як SCE.

Тимчасовий паралелізм[1] ред.

Тимчасовий паралелізм зазвичай прийнятої анімації додатків. У такого роду застосуваннях велика кількість зображень генеруються для подальшого відтворення; паралелізм виходить розкладаючи загальну задачу візуалізації в тимчасовій області; і процесори присвоюється кількість кадрів для візуалізації, а також дані, необхідні для виробництва цих кадрів. Кілька типів паралельності можуть бути включені в єдину систему для формування гібридного паралельність. Наприклад, функціональні і дані паралельності можуть бути об'єднані шляхом реплікації всіх або частини з рендеринга трубопроводу. Temporal паралелізм можна також комбінувати з функціональними або даними паралелізм. За допомогою гібридного підходу, системи можуть виробляти більш високі характеристики.

Огляд паралельних алгоритмів рендеринга[1] ред.

У графічної візуалізації, деякі проблеми можуть бути распараллелен тривіальним, вимагаючи мало або взагалі не міжпроцесорних комунікації, а також не сприяє ніяких значних обчислювальних накладних витрат. Такі алгоритми називаються неінтерактивний паралельно рендеринга або приголомшливо паралельно рендеринга. Алгорітмов рендеринга експлуататорські временного паралелізму данной категорії. У таких додатках, кадри розподіляються серед доступних процесорів; один кадр може бути винесено на одному процесорі, і кілька кадрів можуть бути оброблені одночасно. Rendering методи, засновані на променевому лиття може також бути реалізований у вигляді смущающе паралель в зв'язку з тим, що значення пікселів, обчисленої стрілянина промені від кожного пікселя в сцену. Якщо кожен процесор має швидкий доступ до всього об'єкти, то кожен промінь може бути оброблений незалежно один від одного, без межпроцессорного зв'язку вимагається. У категорії інтерактивного паралельного рендеринга, існують різні алгоритми розподілу надання роботи. Наприклад, сортування перший рендеринг розкладає кінцеве зображення; кожен Процесор надає 2D плитки зображення. Сортування-рендеринга останній розпадається примітиви через всі процесори, і рекомбинирует частково відрендерених кадрів. перерозподіляє Сортування середнього рендеринга надаються примітиви в середині конвеєра рендеринга. Pixel розкладання розділити пікселі кінцевого виду рівномірно, або шляхом ділення повних пікселів або суб-пікселів; і немає сортування надавані примітивів відбувається, так як всі ресурси рендеринга надають більш-менш ту ж точку зору. DPlex рендеринга поширює повний, що чергуються кадрів для окремого процесора. (Кокс, 1995; Алгоритми інтерактивні паралельні рендеринга, як правило, ввести накладні витрати, які викликані деякими або все з наступних причин:

  • зв'язку між завданнями або процесорів;
  • затримки через нерівномірні робочі навантаження;
  • додаткові або надлишкові обчислення;
  • підвищені вимоги до зберігання для скопійованих чи допоміжних структур даних. У паралельних алгоритмів візуалізації, дані зображення, і об'єкт розділені серед доступних процесори; і рендеринга можна розглядати як відображення з 3D простору об'єктів в 2D-зображення простір. Це відображення не є фіксованим, а залежить від перетворень моделювання і перегляду параметри. Коли обидва дані об'єкта і зображення розділені між процесорами, а потім в якийсь момент в конвеєрі рендеринга, дані повинні бути передані між процесорами; кожен процесор повинен передавати дані на і отримувати дані від інших процесорів. управління цим спілкування є одним з основних питань для паралельних алгоритмів рендеринга. (Crockett, 1997)

Паралельний рендеринг[3] – Проблема сортування Як вже говорилося раніше конвеєр рендеринга складається з обробки геометрії і растеризації. В етап обробки геометрії, паралельність досягається шляхом присвоєння кожному процесору підмножина об'єкти в сцені. На етапі растеризації, кожен процесор призначається частина розрахунки пікселя. Рендеринга можна розглядати як визначення того, як кожен об'єкт впливає на кожен пікселів. Так як моделювання та перегляд перетворення є довільними, об'єкт може впасти в будь-якому місці на екрані. Тому ми можемо розглядати як рендеринг завдання сортування, тобто сортування об'єктів до екран. (Молнар, 1994; Стівен Мольнар 1994) Найчастіше, сортування відбувається в трьох основних місцях розташування конвеєра рендеринга. Місце сортування визначає алгоритми паралельних рендеринга; якщо це має місце під час обробка геометрії, алгоритм називається свого роду першим, який перерозподіляє сирі об'єкти до їх Параметри екрану простору відомі; якщо це відбувається між обробкою геометрії і растеризации, алгоритм сортування, який перерозподіляє середній екран-космічних об'єктів; якщо він приймає Місце під час растеризації, алгоритми сортування є останнім, який перерозподілити пікселі. Перше сортування Алгоритм сортування першого розподіляє графічні об'єкти для процесорів під час геометрії етап обробки трубопроводу рендеринга.

Перший сортувальний алгоритм включає в себе наступні кроки[3] ред.
  1. Об'єкти призначаються процесори довільно.
  2. Процесор обчислює екранний простір обмежувальної рамки об'єктів, покладених на нього і
  3. Визначає їх відповідні плитки в просторі екрану.
  4. Об'єкти в поширенні відповідних процесорів.
  5. Виконайте інші розрахунки геометрії обробки та растеризації для об'єктів.

Основні особливості першого сортування це: перерозподілити об'єкти на початку рендеринга процес; і процесори реалізувати весь конвеєр рендеринга для частини екрану. Коли ставлення Тесселяція і ступінь передискретизации високі, він має низьку зв'язок вимоги. Однак алгоритм сортування перший чутливий до дисбалансу навантаження. Об'єкти можуть групуватися в регіонах, а також робоче навантаження може впасти на кілька процесорів. Він також має обмежену масштабованість за рахунок паралельні накладні витрати, викликані об'єктами надаються на декількох плиток. (Молнар, 1994; Mueller, 1995) На малюнку 3 показаний приклад використання сортування першого рендеринга на відео стіни. Кожен комп'ютер в відеостіну надає частину перегляд обсягу, а остаточне зображення підсумовування зображення на моніторах, які складають відеостіну.

Середнє сортування[3] ред.

У режимі сортування середній алгоритм, об'єкти перерозподіляються в середині конвеєра рендеринга, тобто між обробкою геометрії і растеризації. До перерозподілу, об'єкти були перетвориться в координати екрана і готові до растеризації.

У додатках рендеринга сортування, середнього, обробка геометрії і растеризации, як правило,обробляються на різних процесорах. Дві групи процесора можуть бути або окремі набори процесори або поділу часу процесори. Об'єкти присвоюються довільно до геометрії процесори; плитки екрану дисплея призначені на процесори растеризації. Для кожного кадру, процесори геометрії виконати необхідні розрахунки по об'єктах і класифікувати їх з точки зору їх екранних регіонів. Після цього процесори геометрія розподіляють екранний простір об'єктів з їх відповідним процесором растеризации для подальшої візуалізації. Сортування - середній алгоритм розглядається як загальний і прямий; тому що перерозподіл

відбувається між обробкою геометрії і растеризации, яка є природним місцем в наданні трубопровід. Проблема сортування середнього алгоритму високі вимоги до комунікації, коли тесселяции коефіцієнт високий. Іншим недоліком цього алгоритму є те, що він чутливий до дисбалансу навантаження між процесорами растеризации, якщо об'єкти розподілені нерівномірно по площі екрану. (Молнар, 1994; Williams, 2003)

Останнє сортування[3] ред.

Алгоритм сортування останній розкладається візуалізована об'єкти довільно по всій рендеринга процесори; кожен процесор обчислює значення пікселя для свого власного підмножини об'єктів; а потім передає ці пікселі по мережі межсоединения до композітінга процесорів, які отримують зображення, створені іншими процесорами, а потім композит їх до остаточного зображення. (Малюнок 5) У режимі сортування останнього алгоритму, процесори не працюють незалежно один від одного до самого кінця рендеринга трубопроводу; сортування відкладається. Цей алгоритм масштабує рендеринга дуже добре і менш схильні до дисбаланс. Однак стадія перекомпозіції дорого через обсяг даних пікселя обробленого протягом перекомпозіції. Для додатків рендеринга високоякісних зображень, то це може привести до дуже високої даних ставки по межсоединений мережі, Є два типових підходу для алгоритму сортування-останньої:

  • SL-розрідженим, який мінімізує комунікація лише поширення пікселів фактичні растеризации;
  • SL-повний, який магазини і передає повне зображення від кожного процесора. (Moreland, 2001)

Рода-перше, свого роду середнього і сортування останні алгоритми широко прийняті і реалізовані в багатьох додатки і рамки. Наприклад, хром, який являє собою систему для інтерактивних рендеринга на кластерах графічних робочих станцій; сортування першого і сортування в минулому, можуть бути реалізовані за допомогою це. (Хром; Paul, 2004 [Архівовано 1 грудня 2016 у Wayback Machine.]) Ще один відомий каркас рендеринга з відкритим вихідним кодом є Еквалайзер який являє собою ПО проміжного шару для створення паралельних програм OpenGL основі і підтримують як сортувати по першій і сортування останній алгоритм. (Еквалайзер)

Робоче Навантаження Розподіл ред.

Є два, часто конкуруючих, причини для використання паралельного рендеринга. масштабування продуктивності дозволяє фрейми виконуються швидше в той час як дані масштабування дозволяє великі набори даних для візуалізації. Різні способи розподілу навантаження, як правило, надають перевагу одному типу масштабування над іншим. Там також можуть бути і інші переваги і недоліки, такі як латентність і навантаження нерівномірною. Три основні варіанти примітивів роздають цілі кадри, пікселі або об'єкти (наприклад, трикутник сітках).

Розподіл Кадрів ред.

Кожен блок обробки може зробити весь кадр з іншої точки зору або момент часу. Кадри, що формуються по різних точок зору може поліпшити якість зображення зі згладжуванням або додати ефекти, такі як глибина різкості і виведення тривимірного дисплея. Такий підхід дозволяє хороше масштабування продуктивності, але без масштабування даних.

При візуалізації послідовних кадрів паралельно буде лаг для інтерактивних сесій. Відставання між призначеного для користувача введення і дію відображається пропорційно число послідовних кадрів візуалізується паралельно.

Розподіл Пікселів ред.

Набори пікселів в просторі екрану можуть бути розподілені між блоками обробки в тому, що часто називають всервие рендеринга.

Роздача з чергуванням рядків рядків пікселів забезпечує хорошу балансування навантаження, але робить масштабування даних неможливо. Поширення суміжних 2D плитки пікселів дозволяє для масштабування даних по вибракування даних з видом на усіченої. Проте, є службові дані від об'єктів на кордонах Frustum тиражується і дані повинні бути завантажені динамічно в міру зміни точки зору. Динамічне балансування навантаження також необхідний для підтримки масштабування продуктивності.

Розподіл об'єктів ред.

Розподіл об'єктів серед блоків обробки часто згадуються як свого роду останнього рендеринга. Це забезпечує хорошу масштабування даних і може забезпечити гарне масштабування продуктивності, але це вимагає проміжних зображень з обробки вузлів бути альфа-скомбіновані для створення кінцевого зображення. Що більша роздільна здатність зображення, накладні витрати альфа-композітінга також зростає.

Схема балансування навантаження також необхідний для підтримки продуктивності незалежно від умов перегляду. Це може бути досягнуто за рахунок більш розбиття простору об'єктів і призначення декількох штук в кожен блок обробки випадковим чином, однак це збільшує кількість стадій альфа-композітінга, необхідних для створення кінцевого зображення. Інший варіант полягає в призначенні безперервний блок для кожного блоку обробки і оновлювати його динамічно, але це вимагає динамічного завантаження даних.

Гібридний Розподіл ред.

Різні типи розподілів можуть бути об'єднані в ряді модами. Кілька послідовних кадрів можуть бути надані паралельно в той же час рендеринга кожного з цих окремих кадрів паралельно з використанням розподілу пікселів або об'єкта. Розподіл об'єктів можуть спробувати звести до мінімуму їх перекриття в просторі екрану, щоб зменшити витрати на альфа-композітінга, або навіть використовувати розподіл пікселів для візуалізації частини простору об'єктів.

Додатки З Відкритим Вихідним Кодом ред.

З відкритим вихідним кодом пакет Хром (забезпечує механізм паралельного рендеринга для існуючих додатків. Вона перехоплює OpenGL виклики і обробляє їх, як правило, щоб відправити їх на кілька блоків рендеринга водіння стіну [ дисплея. Еквалайзер] є відкритим вихідним кодом рендеринга структури і системи управління ресурсами для MultiPipe додатків. Еквалайзер надає API для написання паралельних, масштабованих додатків візуалізації, які налаштовані під час виконання сервером ресурсів. OpenSG є відкритим вихідним кодом система, яка забезпечує дерева сцени паралельні можливості рендеринга, особливо на кластерах. Вона приховує складність паралельних багатопоточних і групових застосунків і підтримує свого роду перша, а також сортування останньої візуалізації.

Паралельний рендеринг дуже важливий підхід в комп'ютерній графіці. експлуатуючи міць кілька процесорів, багато програм, такі як в режимі реального часу моделювання, анімації, віртуальна реальність, фото-реалістичні зображення, і наукове перевагу візуалізації з використанням паралельності підвищити продуктивність рендеринга. Там було багато різних типів паралелізму і алгоритми реалізовані і досліджені. Успішне застосування паралельної візуалізації необхідно брати до складають мінуси і плюси цих методів. Хоча паралельні методи візуалізації були успішно застосовується в багатьох областях застосування; проблеми все ще залишаються для підвищення масштабованості, балансування навантаження, зв'язок, і склад зображення цих алгоритмів і виробляти більше продуктивність.

Примітки ред.

  1. а б в г д Steven Molnar Michael Cox† David Ellsworth Henry Fuchs. A Sorting Classification of Parallel Rendering.
  2. Equalizer Parallel Rendering.
  3. а б в г Lei Sun. Parallel Rendering – Fast Graphics.

Література ред.

  1. Molnar, S., M. Cox, D. Ellsworth, and H. Fuchs. “A Sorting Classification of Parallel Rendering.” IEEE Computer Graphics and Algorithms, pages 23–32, July 1994.
  2. Jump up^ Molnar, S., M. Cox, D. Ellsworth, and H. Fuchs. “A Sorting Classification of Parallel Rendering.” IEEE Computer Graphics and Algorithms, pages 23–32, July 1994.
  3. Chromium. Retrieved May 2009, from Cox, M. B. (1995). Algorithms for parallel rendering. Ph.D. dissertation, Department of Computer Science, Princeton University, 1995
  4. Crockett, T. W. (1997). An Introduction to Parallel Rendering. Parallel Computing, 23(7), 819-843. Equalizer. Retrieved May 28, 2009, from Girkar, M. B. (1992). Functional parallelism: theoretical foundations and implementation. University of Illinois at Urbana-Champaign
  5. Hillis, W. D. S., Guy L., (1986). Data Parallel Algorithms. Communications of the ACM, December 1986. Molnar, S., Michael Cox, David Ellsworth, Henry Fuchs (1994). A Sorting Classification of Parallel Rendering, IEEE Computer Graphics and Applications. IEEE Computer Graphics and Applications, 14(4), 23-32.
  6. Moreland, K. W., B. Pavlakos C. (2001). Sort-last parallel rendering for viewing extremely large data sets on tile displays. Paper presented at the Proceedings of the IEEE 2001 symposium on parallel and large-data visualization and graphics
  7. Mueller, C. (1995). The sort-first rendering architecture for high-performance graphics. Proc. 1995 Symp. Interactive 3D Graphics (ACM SIGGRAPH, 1995) 75-84.
  8. Paul, B. (2004). Chromium for Cluster Rendering Retrieved May 20, 2009, from Rajagopalan, R. G., D.; Mudur, S.P (2005, April 2005). Functionality Distribution for Parallel Rendering. Paper presented at the Parallel and Distributed Processing Symposium, 2005. Proceedings. 19th IEEE International.