374 High Performance Visualization
features include image compression, empty pixel skipping, image reduction,
and data replication. Together, these features make IceT a versatile parallel
rendering solution that provides optimal parallel rendering under most data
size and image size combinations.
IceT is designed to take advantage of spatial decomposition of the geometry
being rendered. That is, it works best if all the geometry on each process is
located in as small a region of space as possible. When this is true, each process
usually projects geometry on only a small section of the screen. This results
in less work for the compositing engine.
Overall, IceT demonstrates extraordinary speed and scalability. It is used
to render at tremendous rates, such as billions of polygons per second, and on
the largest supercomputers in the world .
The original motivation for IceT was the need to support high performance
rendering for scientiﬁc visualization on large format displays . Further-
more, the IceT development group needed to take advantage of the distributed
memory rendering clusters that were replacing the more expensive multipipe
rendering computers of the day. These requirements still ring true today. Sci-
entiﬁc data continues to grow, desktop displays with over 2 megapixels are
common, and nearly all high performance scientiﬁc visualization is performed
on distributed-memory computers.
There are three general classes of parallel rendering algorithms: sort-ﬁrst,
sort-middle, and sort-last  (although, it is possible to combine elements of
these classes together ). When run on a distributed-memory machine, every
type of parallel rendering algorithm has some overhead caused by communi-
cation. In sort-ﬁrst and sort-middle algorithms, this overhead is proportional
to the amount of geometry being rendered. In the sort-last algorithms, this
overhead is proportional the number of pixels on the display.
Although sort-ﬁrst and sort-middle parallel rendering algorithms eﬃciently
divide screen space and are often used to drive tiled displays, these algorithms
simply cannot scale to the size of data that sort-last algorithms are able to
support [12, 18]. Because large-scale data is its primary concern, IceT im-
plements sort-last rendering and employs the techniques used to reduce the
overhead incurred with high-resolution displays.
The most important aspect of parallel rendering in IceT’s implementation
is that it performs well with both large amounts of data and high-resolution
displays. The sort-last compositing algorithms, described in Chapter 5, en-
sure that IceT performs well with large amounts of data and large process