Large Scale Data Visualization and Rendering - Computation ...
Large Scale Data Visualization and Rendering - Computation ...
Large Scale Data Visualization and Rendering - Computation ...
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