13.02.2014 Views

Large Scale Data Visualization and Rendering - Computation ...

Large Scale Data Visualization and Rendering - Computation ...

Large Scale Data Visualization and Rendering - Computation ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Large</strong> <strong>Scale</strong> <strong>Data</strong> <strong>Visualization</strong><br />

<strong>and</strong> <strong>Rendering</strong>:<br />

Scalable <strong>Rendering</strong><br />

R<strong>and</strong>all Frank<br />

Lawrence Livermore National Laboratory<br />

UCRL-PRES<br />

PRES-145218<br />

This work was performed under the auspices of the U.S. Department t of Energy by the University<br />

of California, Lawrence Livermore National Laboratory under contract No. W-7405W<br />

7405-Eng-48.


Definitions <strong>and</strong> Goals (1)<br />

• Scalable rendering definition<br />

For an increase in work quanta, an equivalent<br />

increase in rendering resources maintains constant<br />

rendering time.<br />

• The Goal: Aggregation<br />

The basic scalable rendering goal is to effectively <strong>and</strong><br />

efficiently aggregate various system components to<br />

address increasing data driven dem<strong>and</strong>s.<br />

IEEE <strong>Visualization</strong> 2001 rjf, 2/23


Definitions <strong>and</strong> Goals (2)<br />

• <strong>Visualization</strong> scalability along two axis<br />

• <strong>Data</strong>sests<br />

•Increases in cell count, etc.<br />

• Displays<br />

•Higher pixel counts<br />

•Multiple/tiled displays<br />

IBM T221 ‘Bertha’ (3840x2400)<br />

LLNL ASCI White<br />

(8192 CPUs, 13TF)<br />

469M Triangle Isosurface<br />

(2048x2048x1920x273 Grid)<br />

LLNL PowerWall (6400x3072)<br />

IEEE <strong>Visualization</strong> 2001 rjf, 3/23


What makes rendering unique?<br />

Generation of graphical primitives<br />

• Graphics computation: primitive extraction/computation<br />

• Multiple rendering engines (both in number <strong>and</strong> type)<br />

Video displays<br />

• Routing of video tiles<br />

• An aggregation of multiple rendering engines<br />

Interactivity (not a render-farm!)<br />

• Real-time imagery<br />

• Interaction devices, human in the loop (prediction issues)<br />

Unique I/O requirements<br />

Unique I/O requirements<br />

• Access patterns/performance<br />

IEEE <strong>Visualization</strong> 2001 rjf, 4/23


Systems Architecture<br />

What does a scalable rendering system look<br />

like?<br />

One or more systems/machines providing:<br />

• <strong>Computation</strong>al capacity (extract primitives)<br />

• Graphical rendering capacity (draw primitives)<br />

• Display capacity (display images)<br />

Layered, integrated software:<br />

Layered, integrated software:<br />

• Application (domain/problem specific)<br />

• Toolkits, <strong>Data</strong> models, etc<br />

• <strong>Rendering</strong> (Mesa, OpenGL, DirectX, Qsplat, etc)<br />

IEEE <strong>Visualization</strong> 2001 rjf, 5/23


System Architecture: Compute Nodes<br />

<strong>Computation</strong>al elements upon which the<br />

visualization application runs<br />

• May run the computation itself!<br />

• Single system image (SSI)<br />

• SGI Onyx<br />

• Distributed clusters<br />

• IBM SP, Myrinet+PCs<br />

• I/O systems<br />

• “Interconnect”<br />

• NUMA, Myrinet, GigE, …<br />

• Disk subsystems<br />

IEEE <strong>Visualization</strong> 2001 rjf, 6/23<br />

Network Switch<br />

PC<br />

PC<br />

PC<br />

PC<br />

PC<br />

PC<br />

PC<br />

PC


System Architecture: Graphics Options<br />

Add rendering capability to the nodes<br />

• Software<br />

• Mesa<br />

• Custom (e.g. qsplat)<br />

PC<br />

PC<br />

gfx<br />

gfx<br />

• Hardware<br />

• IR pipes/pipelets<br />

Network Switch<br />

PC<br />

PC<br />

PC<br />

gfx<br />

gfx<br />

gfx<br />

• PC graphics<br />

PC<br />

PC<br />

gfx<br />

gfx<br />

nVidia GeForce 2<br />

•nVidia, Matrox, …<br />

PC<br />

gfx<br />

•3Dlabs, HP, …<br />

IEEE <strong>Visualization</strong> 2001 rjf, 7/23


System Architecture: Displays<br />

Connect rendering capability to displays<br />

• Desktop(s)<br />

• Tiled displays<br />

• PowerWalls<br />

• IBM T221 (“Bertha”)<br />

PC<br />

PC<br />

gfx<br />

gfx<br />

Video<br />

Switch<br />

monitor<br />

• Video switching<br />

• Video delivery<br />

• Custom hardware<br />

• IBM SGE<br />

• Stanford Lightning-2<br />

• Compaq Sepia-2<br />

Network Switch<br />

PC<br />

PC<br />

PC<br />

PC<br />

PC<br />

PC<br />

gfx<br />

gfx<br />

gfx<br />

gfx<br />

gfx<br />

gfx<br />

Compositor<br />

monitor monitor<br />

monitor monitor<br />

monitor<br />

• SGI, HP video compositors<br />

IEEE <strong>Visualization</strong> 2001 rjf, 8/23


Systems Architecture: Software<br />

Various goals result in very different software<br />

solutions…<br />

Must provide an appropriate solution to the<br />

aggregation problem.<br />

A balance must be struck between data<br />

h<strong>and</strong>ling <strong>and</strong> rendering requirements.<br />

IEEE <strong>Visualization</strong> 2001 rjf, 9/23


<strong>Rendering</strong> Aggregation Approaches<br />

• 2D – “screen space”<br />

• “Sort-first” rendering model<br />

• Targets display scalability<br />

• Supports high frame rates<br />

• 3D – “data space”<br />

• “Sort-last” rendering model<br />

• Targets large data scalability<br />

• Supports high primitive counts<br />

IEEE <strong>Visualization</strong> 2001 rjf, 10/23


Aggregation: Sort First<br />

Tiling (2D decomposition in screen space)<br />

Route portions of a final aggregate display to their<br />

final destination with no overlap<br />

• Order independent<br />

• Destination determines<br />

b<strong>and</strong>width<br />

• Graphics primitives may be<br />

moved, replicated or sorted<br />

for load balancing<br />

• Simple color data<br />

• Can support local framerate<br />

IEEE <strong>Visualization</strong> 2001 rjf, 11/23


Aggregation: Sort Last<br />

Compositing (3D decomposition in data space)<br />

3D blocks that are combined using classic graphics<br />

operators (e.g. Z-buffering, alpha blending, etc)<br />

• Z, α, stencil enhanced pixels<br />

• Fixed 3D data decompositions<br />

(data need not move)<br />

• B<strong>and</strong>width exceeds that of<br />

output display (3D vs 2D)<br />

• Hierarchy trades b<strong>and</strong>width for<br />

latency<br />

• Ordering may be critical<br />

• “Generation” at local framerate<br />

IEEE <strong>Visualization</strong> 2001 rjf, 12/23


Aggregation: Issues<br />

•Multi-pass rendering algorithms<br />

• “Complete” intermediate image requirements difficult<br />

•Framebuffer readback<br />

• Performance <strong>and</strong> availability of graphics APIs<br />

•<strong>Rendering</strong> resolution issues<br />

• <strong>Data</strong>set domains <strong>and</strong> (global) Z-buffer resolution<br />

• Limited pixel resolution (e.g. α-compositing)<br />

•Compositing Issues<br />

• Latency <strong>and</strong> ultimate framerate<br />

• Ordering/Transparency<br />

•Flexible/scalable software interfaces<br />

• <strong>Data</strong> partitioning: The “zoom” problem<br />

• Anisotropic rendering environments<br />

IEEE <strong>Visualization</strong> 2001 rjf, 13/23


Examples: Scalable <strong>Rendering</strong> Systems<br />

Hardware<br />

• Classical SSI <strong>and</strong> clusters (SGI, IBM, etc)<br />

• “Viz Sim” cluster systems (SGI, HP, Artabel)<br />

•Limited data (replicated), targets walls/”immersion”<br />

Software<br />

• Integrated application/framework solutions<br />

•VTK, OpenDX (MPI), EnSight, MeshTV, VisIt<br />

• “Low-level” toolkits<br />

•libpglc, TNT-Pmesa, WireGL, Chromium<br />

IEEE <strong>Visualization</strong> 2001 rjf, 14/23


Examples: Sort-last Toolkits<br />

• TNT-PMesa<br />

(S<strong>and</strong>ia, Lisa Ice, et al)<br />

• Composition system integrated into Mesa<br />

• Details of the scheme hidden behind OpenGL API<br />

• Linked to software rasterizer (Mesa)<br />

• Not the SourceForge PMesa project!<br />

• Libpglc (S<strong>and</strong>ia, Brian Wylie, et al)<br />

• Sort-last composition, several optimized modes<br />

• New application API/rendering structure<br />

• Supports hardware rendering<br />

• 300M Polys/sec @ 64 nodes on a 469M tri isosurface<br />

IEEE <strong>Visualization</strong> 2001 rjf, 15/23


Examples: WireGL Toolkit (1)<br />

“Drop-in” replacement for OpenGL (Stanford)<br />

• Supports unmodified applications<br />

Targets tiled displays<br />

• Geometry bucketed/sorted<br />

• “Sort-first” routing of all primitives<br />

Renderer<br />

Renderer<br />

Application<br />

Virtual<br />

Renderer<br />

Renderer<br />

Renderer<br />

IEEE <strong>Visualization</strong> 2001 rjf, 16/23


Examples: WireGL Toolkit (2)<br />

Efficient network protocol<br />

• All OpenGL comm<strong>and</strong>s encoded onto a stream<br />

• <strong>Rendering</strong> on remote “servers”<br />

• Context state tracking<br />

Parallel OpenGL API<br />

• Semaphores/Barriers<br />

• “H<strong>and</strong>led” in the servers<br />

Demonstrated input <strong>and</strong> output scalability<br />

Demonstrated input <strong>and</strong> output scalability<br />

• Many noted limits, so…<br />

IEEE <strong>Visualization</strong> 2001 rjf, 17/23


Examples: Chromium Toolkit (1)<br />

WireGL replacement (Stanford)<br />

• Work-in-progress<br />

• Based on WireGL technologies<br />

• Chromium implements WireGL<br />

Addressing limitations<br />

• “Local” node rendering<br />

• Extensibility<br />

• Non-render/tile operations<br />

• Better hardware abstractions<br />

IEEE <strong>Visualization</strong> 2001 rjf, 18/23<br />

…<br />

Decode<br />

Parallel API<br />

OpenGL<br />

App<br />

OpenGL API<br />

State tracking<br />

Tiling/Sorting<br />

Encode/Xmit<br />

Decode<br />

Parallel API<br />

OpenGL<br />


Examples: Chromium Toolkit (1)<br />

WireGL replacement (Stanford)<br />

• Work-in-progress<br />

• Based on WireGL technologies<br />

• Chromium implements WireGL<br />

Addressing limitations<br />

• ‘Local’ rendering (sort-last)<br />

• Extensibility<br />

• Non-render/tile operations<br />

• Better hardware abstractions<br />

Decode<br />

Network Server<br />

Parallel API<br />

IEEE <strong>Visualization</strong> 2001 rjf, 19/23<br />

…<br />

OpenGL SPU<br />

App<br />

OpenGL SPU API<br />

State tracking<br />

SPU<br />

Tiling/Sorting<br />

Encode/Xmit<br />

Decode<br />

Network Server<br />

Parallel API<br />

OpenGL SPU<br />


Examples: Chromium Toolkit (2)<br />

Distributed rendering pipeline management system<br />

• Hinting/query interfaces (application “translucent”)<br />

Extensibility: The Stream Processing Unit (SPU)<br />

• “Filter” view of an OpenGL implementation<br />

• Allow for direct OpenGL rendering (e.g. sort last)<br />

• True rendering framework for algorithm integration<br />

• Any SPU can render, modify, absorb… the OpenGL API<br />

• Supports SPU inheritance<br />

Improved context h<strong>and</strong>ling<br />

Improved context h<strong>and</strong>ling<br />

• Multiple contexts/application windowed contexts<br />

IEEE <strong>Visualization</strong> 2001 rjf, 20/23


Examples: Compositing Systems<br />

Custom hardware for image composition<br />

• Sepia (Compaq)<br />

• Dedicated network (ServerNet II)<br />

• Custom compositing (FPGA on NIC)<br />

Sepia-2<br />

• Lightning-2/<br />

2/MetaBuffer<br />

(Stanford &<br />

Intel/UTexas<br />

UTexas)<br />

• DVI based tiling/compositing<br />

• Scalable Graphics Engine (IBM)<br />

• “Tiled” framebuffer<br />

• gigE/UDP based<br />

Lightning-2<br />

IEEE <strong>Visualization</strong> 2001 rjf, 21/23


Present <strong>and</strong> Future…<br />

Basic <strong>and</strong> partial solutions available today…<br />

• Turnkey tiled display <strong>and</strong> cluster aware applications<br />

• Integrated data <strong>and</strong> rendering ‘toolkits’<br />

Still many research <strong>and</strong> development topics<br />

• Improved compositing (HW <strong>and</strong> SW solutions)<br />

• <strong>Data</strong> representations/decompositions<br />

• Alternate visualization approaches<br />

•Multi-resolution/progressive techniques<br />

•New primitives/rendering methods<br />

IEEE <strong>Visualization</strong> 2001 rjf, 22/23


Some Library/Application Links<br />

Mesa: mesa3d.sourceforge<br />

sourceforge.net<br />

TNT-PMesa<br />

PMesa: www.cs.s<strong>and</strong>ia.gov/VIS/pmesa.html<br />

WireGL: graphics.stanford<br />

stanford.edu/software/<br />

/software/wireglwiregl<br />

Chromium: chromium.sourceforge<br />

sourceforge.net<br />

VTK: www.kitware<br />

kitware.com<br />

OpenDX: www.opendx.org<br />

EnSight: www.ceintl.com<br />

MeshTV: www.llnl.gov/meshtv<br />

IEEE <strong>Visualization</strong> 2001 rjf, 23/23

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!