Parallel rendering

This is an old revision of this page, as edited by 67.150.91.179 (talk) at 12:32, 31 January 2006 (cleanup, reorg). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Parallel rendering is used to improve the performance of computer graphics. The rendering of graphics requires massive computational resources for complex objects like medical visualization, iso-surface generation, and some CAD applications. Traditional methods like ray tracing, 3D textures, etc., work extremely slowly in simple machines.

Subdivision of work

Parallel rendering divides the work to be done and processes it in parallel. For example, if we have a non-parallel ray-casting application, we would send rays one by one to all the pixels in the view frustum. Instead, we can divide the whole frustum into some x number of parts and then run that many threads or processes to send rays in parallel to those x tiles. We can use a cluster of machines to do such a thing and then composite the results. This is parallel rendering.

Traditional parallel rendering is a great example of what is meant by "embarrassingly parallel" in that the frames to be rendered are distributed amongst the available compute nodes. For instance, one frame is rendered on one compute node. Multiple frames can be processed because there are multiple nodes. A truly parallel process can distribute a frame across multiple nodes using a tightly coupled cross communication methodology to process frames by orders of magnitude faster. In this way, a full-rendering job consisting of multiple frames can be edited in real-time enabling designers to do better work faster.

Parallel rendering can be used in graphics intensive applications to visualize the data more efficiently by adding resources like more machines.

Open source applications

There is an open source software package called Chromium (http://chromium.sourceforge.net) which provides a parallel rendering mechanism for existing applications.

See also

General catigory

Distributed applications