Chromium: a stream-processing framework for interactive rendering on clusters

We describe Chromium, a system for manipulating streams of graphics API commands on clusters of workstations. Chromium's stream filters can be arranged to create sort-first and sort-last parallel graphics architectures that, in many cases, support the same applications while using only commodity graphics accelerators. In addition, these stream filters can be extended programmatically, allowing the user to customize the stream transformations performed by nodes in a cluster. Because our stream processing mechanism is completely general, any cluster-parallel rendering algorithm can be either implemented on top of or embedded in Chromium. In this paper, we give examples of real-world applications that use Chromium to achieve good scalability on clusters of workstations, and describe other potential uses of this stream processing technology. By completely abstracting the underlying graphics architecture, network topology, and API command processing semantics, we allow a variety of applications to run in different environments.

[1]  Homan Igehy,et al.  The design of a parallel graphics interface , 1998, SIGGRAPH.

[2]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[3]  Thomas A. Funkhouser Coarse-grained parallelism for hierarchical radiosity using group iterative methods , 1996, SIGGRAPH.

[4]  D BrownMaxine,et al.  The ImmersaDesk and Infinity Wall projection-based virtual reality displays , 1997 .

[5]  Sudipto Guha,et al.  Streaming-data algorithms for high-quality clustering , 2002, Proceedings 18th International Conference on Data Engineering.

[6]  Gordon Stoll,et al.  Lightning-2: a high-performance display subsystem for PC clusters , 2001, SIGGRAPH.

[7]  Gordon Stoll,et al.  WireGL: a scalable graphics system for clusters , 2001, SIGGRAPH.

[8]  William J. Dally,et al.  Polygon rendering on a stream architecture , 2000, Workshop on Graphics Hardware.

[9]  Marc Levoy,et al.  The digital Michelangelo project: 3D scanning of large statues , 2000, SIGGRAPH.

[10]  David Ellsworth,et al.  Distributing display lists on a multicomputer , 1990, I3D '90.

[11]  Anselmo Lastra,et al.  PixelFlow: the realization , 1997, HWWS '97.

[12]  Henry Fuchs,et al.  A sorting classification of parallel rendering , 1994, IEEE Computer Graphics and Applications.

[13]  Marc Levoy,et al.  Streaming QSplat: a viewer for networked visualization of large, dense models , 2001, I3D '01.

[14]  Pat Hanrahan,et al.  Distributed Rendering for Scalable Displays , 2000, ACM/IEEE SC 2000 Conference (SC'00).

[15]  Carolina Cruz-Neira,et al.  Surround-Screen Projection-Based Virtual Reality: The Design and Implementation of the CAVE , 2023 .

[16]  Jarek Rossignac,et al.  Hidden contours on a frame-buffer , 1992, Eurographics Workshop on Graphics Hardware.

[17]  David Kirk,et al.  Virtual graphics , 1988, SIGGRAPH.

[18]  Pat Hanrahan,et al.  A distributed graphics system for large tiled displays , 1999, Proceedings Visualization '99 (Cat. No.99CB37067).

[19]  Thomas A. Funkhouser,et al.  Load balancing for multi-projector rendering systems , 1999, Workshop on Graphics Hardware.

[20]  Lee Markosian,et al.  Real-time nonphotorealistic rendering , 1997, SIGGRAPH.

[21]  Mark Segal,et al.  The OpenGL Graphics System: A Specification , 2004 .

[22]  John G. Torborg,et al.  A parallel processor architecture for graphics arithmetic operations , 1987, SIGGRAPH.

[23]  Massimiliano Fatica,et al.  Stanford Center for Integrated Turbulence Simulations , 2000, Comput. Sci. Eng..

[24]  Thomas A. Funkhouser,et al.  Parallel rendering with K-way replication , 2001, Proceedings IEEE 2001 Symposium on Parallel and Large-Data Visualization and Graphics (Cat. No.01EX520).

[25]  Tom Duff,et al.  Compositing digital images , 1984, SIGGRAPH.

[26]  William J. Blanke The Metabuffer: A Scalable Multiresolution Multidisplay 3-D Graphics System Using Commodity Rendering Engines , 2000 .

[27]  Jennifer Widom,et al.  Continuous queries over data streams , 2001, SGMD.

[28]  Donald R. Jones,et al.  Parallel Graphics and Interactivity with the Scaleable Graphics Engine , 2001, ACM/IEEE SC 2001 Conference (SC'01).

[29]  John G. Eyles,et al.  PixelFlow: high-speed rendering using image composition , 1992, SIGGRAPH.

[30]  Michael Cox Algorithms for parallel rendering , 1995 .

[31]  Christopher Giertsen,et al.  Parallel volume rendering on a network of workstations , 1993, IEEE Computer Graphics and Applications.

[32]  William R. Mark,et al.  The F-buffer: a rasterization-order FIFO buffer for multi-pass rendering , 2001, HWWS '01.

[33]  Pat Hanrahan,et al.  A real-time procedural shading system for programmable graphics hardware , 2001, SIGGRAPH.

[34]  Charles L. Seitz,et al.  Myrinet: A Gigabit-per-Second Local Area Network , 1995, IEEE Micro.

[35]  Thomas Funkhouser,et al.  Sort-First Parallel Rendering with a Cluster of PCs , 2000 .

[36]  Philip D. Heermann Production visualization for the ASCI One TeraFLOPS machine , 1998, Proceedings Visualization '98 (Cat. No.98CB36276).

[37]  John Rohlf,et al.  IRIS performer: a high performance multiprocessing toolkit for real-time 3D graphics , 1994, SIGGRAPH.

[38]  Marc Olano,et al.  Interactive multi-pass programmable shading , 2000, SIGGRAPH.

[39]  Donald P. Greenberg,et al.  Acceleration techniques for progressive refinement radiosity , 1990, I3D '90.

[40]  Homan Igehy,et al.  Pomegranate: a fully scalable graphics architecture , 2000, SIGGRAPH.

[41]  Kwan-Liu Ma,et al.  Parallel Volume Rendering Using Binary-Swap Image Composition , 2008, International Conference on Computer Graphics and Interactive Techniques.

[42]  Tom McREYNOLDS,et al.  Advanced graphics programming techniques using opengl , 1998, SIGGRAPH 1998.

[43]  Kwan-Liu Ma,et al.  Parallel volume rendering using binary-swap compositing , 1994, IEEE Computer Graphics and Applications.

[44]  Laurent Moll,et al.  Sepia: scalable 3D compositing using PCI Pamette , 1999, Seventh Annual IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00375).

[45]  A. Heirich,et al.  Scalable distributed visualization using off-the-shelf components , 1999, Proceedings 1999 IEEE Parallel Visualization and Graphics Symposium (Cat. No.99EX381).

[46]  Homan Igehy,et al.  Parallel texture caching , 1999, Workshop on Graphics Hardware.

[47]  Anne Rogers,et al.  Hancock: a language for extracting signatures from data streams , 2000, KDD '00.

[48]  Ramesh Raskar,et al.  Image precision silhouette edges , 1999, SI3D.

[49]  Pat Hanrahan,et al.  Designing graphics architectures around scalability and communication , 2001 .

[50]  William E. Lorensen,et al.  Marching cubes: A high resolution 3D surface construction algorithm , 1987, SIGGRAPH.

[51]  Pat Hanrahan,et al.  Tracking graphics state for networked rendering , 2000, Workshop on Graphics Hardware.

[52]  Ramesh Raskar Hardware support for non-photorealistic rendering , 2001, HWWS '01.

[53]  Michael Gleicher,et al.  Non-invasive, interactive, stylized rendering , 2001, I3D '01.

[54]  John S. Montrym,et al.  InfiniteReality: a real-time graphics system , 1997, SIGGRAPH.

[55]  Thomas A. Funkhouser,et al.  Hybrid sort-first and sort-last parallel rendering with a cluster of PCs , 2000, Workshop on Graphics Hardware.