Paralel oluşturma - Parallel rendering

Paralel oluşturma (veya dağıtılmış işleme ), paralel programlamanın bilgisayar grafiklerinin hesaplama alanına uygulanmasıdır . Rendering grafik ortaya çıkan karmaşık sahneler için büyük bilgi işlem kaynakları gerektirir bilimsel görselleştirme , tıbbi görüntüleme , CAD uygulamaları ve sanal gerçeklik . Yakın zamanda yapılan araştırmalar, paralel oluşturmanın güç tüketimini azaltmak ve grafik doğruluğu artırmak için mobil oyunlara uygulanabileceğini de öne sürdü . Görüntü oluşturma, birden çok alanda (ör. Pikseller, nesneler, çerçeveler) utanç verici derecede paralel bir iş yüküdür ve bu nedenle birçok araştırmanın konusu olmuştur.

İş yükü dağıtımı

Paralel oluşturmayı kullanmanın genellikle birbiriyle yarışan iki nedeni vardır. Performans ölçeklendirme, çerçevelerin daha hızlı oluşturulmasına izin verirken, veri ölçeklendirme daha büyük veri kümelerinin görselleştirilmesine izin verir. İş yükünü dağıtmanın farklı yöntemleri, bir ölçekleme türünü diğerine tercih etme eğilimindedir. Gecikme ve yük dengeleme sorunları gibi başka avantajlar ve dezavantajlar da olabilir . İlkellerin dağıtacağı üç ana seçenek bütün çerçeveler, pikseller veya nesnelerdir (örneğin, üçgen kafesler ).

Çerçeve dağılımı

Her bir işleme birimi, tüm bir kareyi farklı bir bakış açısından veya zamandaki andan oluşturabilir. Farklı bakış açılarından oluşturulan kareler, kenar yumuşatma ile görüntü kalitesini artırabilir veya alan derinliği ve üç boyutlu görüntü çıktısı gibi efektler ekleyebilir . Bu yaklaşım, iyi bir performans ölçeklendirmesine izin verir ancak veri ölçeklendirmesi yoktur.

Sıralı kareleri paralel olarak oluştururken, etkileşimli oturumlar için bir gecikme olacaktır. Kullanıcı girdisi ile görüntülenen eylem arasındaki gecikme, paralel olarak oluşturulan sıralı karelerin sayısıyla orantılıdır.

Piksel dağılımı

Ekran alanındaki piksel setleri, genellikle sıralama ilk işleme olarak adlandırılan işlemde işlem birimleri arasında dağıtılabilir.

Geçişli piksel satırlarının dağıtılması, iyi bir yük dengeleme sağlar, ancak veri ölçeklendirmeyi imkansız hale getirir. Bitişik 2B piksel döşemelerinin dağıtılması, verileri hüsrana uğratan görünümle ayıklayarak veri ölçeklendirmeye olanak tanır . Bununla birlikte, kesik sınırlardaki nesnelerin çoğaltılmasından kaynaklanan bir veri yükü vardır ve verilerin, bakış açısı değiştikçe dinamik olarak yüklenmesi gerekir. Performans ölçeklendirmesini sürdürmek için dinamik yük dengeleme de gereklidir.

Nesne dağıtımı

Nesneleri işlem birimleri arasında dağıtmak, genellikle sıralama son oluşturma olarak adlandırılır. İyi veri ölçeklendirmesi sağlar ve iyi performans ölçeklendirmesi sağlayabilir, ancak son görüntüyü oluşturmak için işlem düğümlerinden gelen ara görüntülerin alfa birleştirilmiş olmasını gerektirir . Görüntü çözünürlüğü arttıkça, alfa birleştirme ek yükü de büyür.

Görüntüleme koşullarından bağımsız olarak performansı korumak için bir yük dengeleme şemasına da ihtiyaç vardır. Bu, nesne alanını aşırı bölümlere ayırarak ve her bir işleme birimine rastgele bir şekilde birden çok parça atayarak elde edilebilir, ancak bu, son görüntüyü oluşturmak için gereken alfa birleştirme aşamalarının sayısını artırır. Diğer bir seçenek, her işleme birimine bitişik bir blok atamak ve bunu dinamik olarak güncellemektir, ancak bu dinamik veri yüklemesi gerektirir.

Hibrit dağıtım

Farklı dağıtım türleri bir dizi modada birleştirilebilir. Bir çift sıralı çerçeve paralel olarak oluşturulabilirken, bu tek tek karelerin her birini bir piksel veya nesne dağıtımı kullanılarak paralel olarak oluşturabilir. Nesne dağıtımları, alfa birleştirme maliyetlerini azaltmak için ekran alanındaki örtüşmelerini en aza indirmeye çalışabilir veya hatta nesne alanının bölümlerini oluşturmak için bir piksel dağıtımı kullanabilir.

Açık kaynak uygulamaları

Açık kaynaklı yazılım paketi Chromium , mevcut uygulamalar için paralel bir oluşturma mekanizması sağlar. OpenGL çağrılarını keser ve işler, genellikle onları bir ekran duvarını süren birden çok işleme birimine göndermek için .

Ekolayzer, çoklu uygulamalar için açık kaynaklı bir işleme çerçevesi ve kaynak yönetimi sistemidir. Ekolayzer, bir kaynak sunucusu tarafından çalışma zamanında yapılandırılan paralel, ölçeklenebilir görselleştirme uygulamaları yazmak için bir API sağlar .

OpenSG , özellikle kümelerde paralel oluşturma yetenekleri sağlayan açık kaynaklı bir senaryo sistemidir. Paralel çok iş parçacıklı ve kümelenmiş uygulamaların karmaşıklığını gizler ve sırala ve son sırala oluşturmayı destekler.

Golem, şu anda Blender'da oluşturma ile çalışan ve daha fazla kullanımı dahil etme planları olan paralel hesaplama için kullanılan açık kaynaklı, merkezi olmayan bir uygulamadır .

Ayrıca bakınız

Kavramlar
Uygulamalar

Referanslar

  1. ^ Wu, C .; Yang, B .; Zhu, W .; Zhang, Y. (2017). "İşbirliğine Dayalı İş Yükü Aktarımı ile Yüksek Mobil GPU Performansına Doğru" . Paralel ve Dağıtık Sistemlerde IEEE İşlemleri . PP (99): 435–449. doi : 10.1109 / tpds.2017.2754482 . ISSN   1045-9219 .
  2. ^ Molnar, S., M. Cox, D. Ellsworth ve H. Fuchs. " Paralel Oluşturmanın Sıralama Sınıflandırması ." IEEE Computer Graphics and Algorithms, sayfalar 23-32, Temmuz 1994.
  3. ^ Molnar, S., M. Cox, D. Ellsworth ve H. Fuchs. " Paralel Oluşturmanın Sıralama Sınıflandırması ." IEEE Computer Graphics and Algorithms, sayfalar 23-32, Temmuz 1994.
  4. ^ "Arşivlenmiş kopya" . 2008-05-11 tarihinde orjinalinden arşivlendi . Erişim tarihi: 2020-04-30 . CS1 Maint: başlık olarak arşivlenmiş kopya ( bağlantı )
  5. ^ "Arşivlenmiş kopya" . Arşivlenmiş orijinal 2017-08-06 tarihinde . Erişim tarihi: 2020-04-30 . CS1 Maint: başlık olarak arşivlenmiş kopya ( bağlantı )
  6. ^ "Golem Ağı" . golem.network . Erişim tarihi: 2021-05-16 .

Dış bağlantılar