O'Reilly logo

High Performance Visualization by E. Wes Bethel, Charles Hansen, Hank Childs

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 17
IceT
Kenneth Moreland
Sandia National Laboratories
17.1 Introduction ...................................................... 373
17.2 Motivation ........................................................ 374
17.3 Implementation .................................................. 374
17.3.1 Theoretical Limitations ... and How to Break Them ... 375
17.3.2 Pixel Reduction Techniques ............................. 376
17.3.3 Tricks to Boost the Frame Rate ......................... 377
17.4 Application Programming Interface ............................. 378
17.4.1 Image Generation ........................................ 378
17.4.2 Opaque versus Transparent Rendering .................. 379
17.5 Conclusion ........................................................ 379
References .......................................................... 381
The Image Composition Engine for Tiles (IceT) is a high-performance,
sort-last parallel rendering library. IceT is designed for use in large-scale,
distributed-memory rendering applications. It works efficiently with large
numbers of processes, with large amounts of geometry, and with high-
resolution images. In addition to providing accelerated rendering for a stan-
dard display, IceT also provides the unique ability to generate images for tiled
displays. The overall resolution of the display may be several times larger
than any viewport rendered by a single machine. IceT is currently being used
as the parallel rendering implementation in high performance visualization
applications as like VisIt (see Chap. 16) and ParaView (see Chap. 18).
17.1 Introduction
The Image Composition Engine for Tiles (IceT) is an API designed to
enable applications to perform sort-last parallel rendering on large displays [8].
The design philosophy behind IceT is to allow very large data sets to be
rendered on arbitrarily high resolution displays. Although frame rates can be
sacrificed in lieu of scalable polygon/second rendering rates, there are many
features in IceT that allow an application to achieve interactive rates. These
373
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 [10].
17.2 Motivation
The original motivation for IceT was the need to support high performance
rendering for scientific visualization on large format displays [16]. 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-
entific data continues to grow, desktop displays with over 2 megapixels are
common, and nearly all high performance scientific visualization is performed
on distributed-memory computers.
There are three general classes of parallel rendering algorithms: sort-first,
sort-middle, and sort-last [7] (although, it is possible to combine elements of
these classes together [14]). When run on a distributed-memory machine, every
type of parallel rendering algorithm has some overhead caused by communi-
cation. In sort-first 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-first and sort-middle parallel rendering algorithms efficiently
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.
17.3 Implementation
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

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required