'''Parallel rendering''' (or '''Distributeddistributed 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|last=Wu|first=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|url=http://ieeexplore.ieee.org/document/8047282/|journal=IEEE Transactions on Parallel and Distributed Systems|volume=PP|issue=99|pages=435–449|doi=10.1109/tpds.2017.2754482|issn=1045-9219}}</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 Distributiondistribution ==
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 meshes).