Parallel rendering: Difference between revisions

Content deleted Content added
m linking
m link [pP]arallel computing
 
(7 intermediate revisions by 5 users not shown)
Line 1:
'''Parallel rendering''' (or '''distributed rendering''') is the application of [[parallel programming]] to the computational ___domain of [[computer graphics]]. [[Rendering (computer graphics)|Rendering]] graphics can require massive computational resources for complex scenes that arise in [[scientific visualization]], [[medical visualization]], [[Computer-aided design|CAD]] applications, and [[virtual reality]]. Recent research has also suggested that parallel rendering can be applied to [[mobile gaming]] to decrease power consumption and increase graphical fidelity.<ref>{{Cite journal|lastlast1=Wu|firstfirst1=C.|last2=Yang|first2=B.|last3=Zhu|first3=W.|last4=Zhang|first4=Y.|date=2017|title=Toward High Mobile GPU Performance through Collaborative Workload Offloading|journal=IEEE Transactions on Parallel and Distributed Systems|volume=PP|issue=99|pages=435–449|doi=10.1109/tpds.2017.2754482|issn=1045-9219|doi-access=free}}</ref> Rendering is an [[embarrassingly parallel]] workload in multiple domains (e.g., pixels, objects, frames) and thus has been the subject of much research.
 
== Workload distribution ==
There are two, often competing, reasons for using parallel rendering. Performance scaling allows frames to be rendered more quickly while data scaling allows larger data sets to be visualized. Different methods of distributing the workload tend to favor one type of scaling over the other. There can also be other advantages and disadvantages such as [[Latency (engineering)|latency]] and [[load balancing (computing)|load balancing]] issues. The three main options for primitives to distribute are entire frames, pixels, or objects (e.g. [[triangle meshesmesh]]es).
 
=== Frame distribution ===
Each processing unit can render an entire frame from a different point of view or moment in time. The frames rendered from different points of view can improve image quality with anti-aliasing or add effects like depth-of-field and [[three-dimensional display]] output. This approach allows for good performance scaling but no data scaling.
 
When rendering sequential frames in parallel there will be a lag for interactive sessions. The lag between user input and the action being displayed is proportional to the number of sequential frames being rendered in parallel.
Line 25:
The open source software package [[Chromium (computer graphics)|Chromium]] provides a parallel rendering mechanism for existing applications. It intercepts the [[OpenGL]] calls and processes them, typically to send them to multiple rendering units driving a [[video wall|display wall]].
 
Equalizer is an open source rendering [[Software framework|framework]] and resource management system for multipipe applications. Equalizer provides an [[Application programming interface|API]] to write parallel, scalable visualization applications which are configured at run-time by a resource server.<ref>{{Cite web |url=http://www.equalizergraphics.com/ |title=ArchivedEqualizer: copyParallel Rendering |access-date=2020-04-30 |archive-url=https://web.archive.org/web/20080511163442/http://www.equalizergraphics.com/ |archive-date=2008-05-11 |url-status=dead }}</ref>
 
[[OpenSG]] is an open source [[Scene graph|scenegraph]] system that provides parallel rendering capabilities, especially on clusters. It hides the complexity of parallel [[Thread (computer science)|multi-threaded]] and clustered applications and supports sort-first as well as sort-last rendering.<ref>{{Cite web |url=http://www.opensg.org/ |title=Archived copyOpenSG |access-date=2020-04-30 |archive-url=https://web.archive.org/web/20170806213018/http://www.opensg.org/ |archive-date=2017-08-06 |url-status=dead }}</ref>
 
Golem is an open source [[decentralized application]] used for [[parallel computing]] that currently works with rendering in [[Blender_(software)|Blender]] and has plans to incorporate more uses.<ref>{{Cite web|title=Golem Network|url=https://golem.network/|access-date=2021-05-16|website=golem.network}}</ref>
 
==See also==
Line 46:
 
{{DEFAULTSORT:Parallel Rendering}}
{{Computer graphics}}
[[Category:3D computer graphics]]
[[Category:Applications of distributed computing]]