Parallel ko'rsatish - Parallel rendering

Parallel ko'rsatish (yoki tarqatilgan render) ning qo'llanilishi parallel dasturlash ning hisoblash sohasiga kompyuter grafikasi. Renderlash grafikalar yuzaga keladigan murakkab sahnalar uchun katta hisoblash manbalarini talab qilishi mumkin ilmiy vizualizatsiya, tibbiy vizualizatsiya, SAPR ilovalar va Virtual reallik. Yaqinda o'tkazilgan tadqiqotlar shuni ko'rsatdiki, parallel renderlashda ham qo'llanilishi mumkin mobil o'yin quvvat sarfini kamaytirish va grafik sodiqlikni oshirish.[1] Renderlash - bu xijolat bilan parallel bir nechta domenlarda ish yuki (masalan, piksellar, ob'ektlar, ramkalar) va shu bilan ko'plab tadqiqotlar mavzusi bo'ldi.

Ish yukini taqsimlash

Parallel ko'rsatishni ishlatishning ikkita, ko'pincha raqobatlashadigan sabablari mavjud. Ishlash ko'lamini kattalashtirish freymlarni tezroq ishlashga imkon beradi, ma'lumotlarning masshtablash esa katta hajmdagi ma'lumotlar to'plamini ingl. Ish hajmini taqsimlashning turli usullari miqyosning bir turini boshqasidan ustun qo'yishga moyil. Kabi boshqa afzalliklari va kamchiliklari ham bo'lishi mumkin kechikish va yuklarni muvozanatlash masalalar. Primitivlarni tarqatish uchun uchta asosiy variant - bu butun ramkalar, piksellar yoki ob'ektlar (masalan,). uchburchak meshlar ).

Kadrlarni taqsimlash

Har bir protsessor butun ramkani boshqacha nuqtai nazardan yoki bir vaqtning o'zida ko'rsatishi mumkin. Turli xil nuqtai nazardan olingan ramkalar tasvirni sifatini yaxshilaydi yoki maydonning chuqurligi va uch o'lchovli displey chiqishi kabi effektlarni qo'shadi. Ushbu yondashuv yaxshi ishlash ko'lamini kengaytirishga imkon beradi, ammo ma'lumotlarning miqyosi yo'q.

Parallel ravishda ketma-ket kadrlarni ko'rsatishda interaktiv mashg'ulotlar uchun kechikish bo'ladi. Foydalanuvchi kiritishi va ko'rsatilayotgan amal o'rtasidagi kechikish, ketma-ket ko'rsatilayotgan ketma-ket kadrlar soniga mutanosibdir.

Pikselli tarqatish

Ekran maydonidagi piksellar to'plami protsessor bo'linmalari o'rtasida taqsimlanishi mumkin, ular tez-tez birinchi renderlash deb nomlanadi.[2]

Intervalli piksellar qatorini taqsimlash yuklarni yaxshi muvozanatlashiga imkon beradi, ammo ma'lumotlarning o'lchamlarini imkonsiz qiladi. Bir-biriga yaqin pikselli 2D plitkalarni taqsimlash ma'lumotlarning sonini o'chirish orqali ma'lumotlarni masshtablash imkonini beradi ko'ngilni ko'rish. Shu bilan birga, frustum chegaralaridagi ob'ektlarning ma'lumotlari ko'paytiriladi va ma'lumotlar nuqtasi o'zgarganda dinamik ravishda yuklanishi kerak. Ishlash ko'lamini saqlash uchun dinamik yuk balansi ham zarur.

Ob'ektni taqsimlash

Ob'ektlarni protsessor birliklari o'rtasida taqsimlash ko'pincha oxirgi ishlash deb nomlanadi.[3] Bu ma'lumotlarning yaxshi miqyoslanishini ta'minlaydi va yaxshi ishlash ko'lamini ta'minlashi mumkin, ammo bu ishlov berish tugunlaridan oraliq tasvirlarni bo'lishini talab qiladi alfa kompozitsiyasi yakuniy tasvirni yaratish uchun. Tasvir o'lchamlari o'sib borishi bilan alfa kompozitsion qo'shimcha xarajatlar ham o'sib boradi.

Ko'rish sharoitlaridan qat'i nazar, ishlashni ta'minlash uchun yukni muvozanatlash sxemasi ham zarur. Bunga ob'ekt maydonini ajratish va har bir ishlov berish blokiga tasodifiy ravishda bir nechta qismlarni berish orqali erishish mumkin, ammo bu yakuniy tasvirni yaratish uchun zarur bo'lgan alfa kompozitsion bosqichlarini ko'paytiradi. Yana bir variant - har bir protsessorga tutashgan blokni tayinlash va uni dinamik ravishda yangilash, ammo buning uchun dinamik ma'lumotlarni yuklash kerak.

Gibrid tarqatish

Turli xil taqsimotlarni bir qator modalarda birlashtirish mumkin. Ikkala ketma-ket ramkalar parallel ravishda berilishi mumkin, shu bilan birga har bir alohida freymni piksel yoki ob'ekt taqsimoti yordamida parallel ravishda ko'rsatish mumkin. Ob'ektni taqsimlash alfa kompozitsiya xarajatlarini kamaytirish uchun ekran maydonidagi o'zaro to'qnashuvlarni minimallashtirishga yoki hattoki ob'ektlar maydonini ko'rsatish uchun piksel taqsimotidan foydalanishga harakat qilishi mumkin.

Ochiq manbali dasturlar

Ochiq kodli dasturiy ta'minot to'plami Xrom mavjud dasturlar uchun parallel ko'rsatish mexanizmini taqdim etadi. Bu ushlaydi OpenGL ularni qo'ng'iroq qiladi va qayta ishlaydi, odatda ularni haydovchining bir nechta ko'rsatuvchi qismlariga yuborish uchun displey devori.

Ekvalayzer - bu ochiq kodli renderlash ramka va ko'p quvurli dasturlar uchun resurslarni boshqarish tizimi. Ekvalayzer an API Resurs serveri tomonidan ish vaqtida sozlangan parallel, kengaytiriladigan vizual dasturlarni yozish.[4]

OpenSG ochiq manbadir sahna ko'rinishi parallel ko'rsatish imkoniyatlarini ta'minlaydigan tizim, ayniqsa klasterlarda. Bu parallellikning murakkabligini yashiradi ko'p tishli va klasterli dasturlar va sort-first hamda sort-last render-ni qo'llab-quvvatlaydi.[5]

Golem ochiq manbadir markazlashtirilmagan dastur hozirda render bilan ishlaydigan parallel hisoblash uchun ishlatiladi Blender va undan ko'proq foydalanishni rejalashtirmoqda.[6]

Shuningdek qarang

Tushunchalar
Amaliyotlar

Adabiyotlar

  1. ^ Vu, C .; Yang, B .; Chju, V.; Chjan, Y. (2017). "Birgalikda ish yukini tushirish orqali yuqori mobil GPU ishlashiga". Parallel va taqsimlangan tizimlarda IEEE operatsiyalari. PP (99): 435–449. doi:10.1109 / tpds.2017.2754482. ISSN  1045-9219.
  2. ^ Molnar, S., M. Koks, D. Ellsvort va X. Fuks. "Parallel renderlashning saralash tasnifi. ” IEEE Kompyuter grafikasi va algoritmlari, 23-32 betlar, 1994 yil iyul.
  3. ^ Molnar, S., M. Koks, D. Ellsvort va X. Fuks. "Parallel renderlashning saralash tasnifi. ” IEEE Kompyuter grafikasi va algoritmlari, 23-32 betlar, 1994 yil iyul.
  4. ^ "Arxivlangan nusxa". Arxivlandi asl nusxasi 2008-05-11. Olingan 2020-04-30.CS1 maint: nom sifatida arxivlangan nusxa (havola)
  5. ^ "Arxivlangan nusxa". Arxivlandi asl nusxasi 2017-08-06 da. Olingan 2020-04-30.CS1 maint: nom sifatida arxivlangan nusxa (havola)
  6. ^ https://golem.network

Tashqi havolalar