Download - Equalizer - Math
![Page 1: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/1.jpg)
Equalizer
Parallel OpenGL Application Framework
Stefan Eilemann, Eyescale Software GmbH
![Page 2: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/2.jpg)
Outline
• Overview
• High-Performance Visualization
• Equalizer
• Competitive Environment
• Equalizer
• Features
• Scalability
• Outlook
![Page 3: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/3.jpg)
HPV
• High-Performance Visualization - like
HPC but for interactive 3D applications
• Address the demand to visualize huge
data sets using COTS clusters
• Issue is to scale rendering performance
using multiple GPU’s and CPU’s
![Page 4: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/4.jpg)
Equalizer
“GLUT for multi-GPU systems and
visualization clusters”
![Page 5: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/5.jpg)
History
• 1992: CAVElib
• Multi-Frustum
• 2000: SGI OpenGL Multipipe SDK
• Scalability for SGI Onyx and Prism
• 2005: Equalizer
• Clusters, C++, Open Platform
• 2007: Eyescale Software GmbH
![Page 6: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/6.jpg)
Selected Use CasesDisplay Walls
Multi-GPU Platforms Remote Rendering
Scalable Rendering
Virtual Reality Equalizer
![Page 7: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/7.jpg)
HPV Solution Space
• Transparent solutions
• Based on OpenGL interception
• Programming interfaces
• Distributed Scene Graphs
• Middleware
• GPGPU frameworks
![Page 8: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/8.jpg)
HPV Transparent Solutions
• Chromium, ModViz VGP, OMP, ...
• Operate on OpenGL command stream
(HPC analogy: auto-parallelizing
compilers)
• Provide programming extensions for
better performance and scalability
• Performance and compatibility issues
![Page 9: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/9.jpg)
HPV Programming Interfaces
• ScaleViz, Vega Prime, OpenSG
• Impose invasive programming model and
data structure (HPC analogy: CFD codes)
• Best for developing from scratch
• Equalizer, CAVElib, VRJuggler, MPK
• Limited to HPV-critical areas of the code
(HPC analogy: MPI, PVM)
• Best for porting existing applications
![Page 10: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/10.jpg)
GPGPU Frameworks
• CUDA, RMDP, CTM
• HPC tools to use GPUs for data processing
• Do not address parallel rendering
• Can be integrated with OpenGL and
Equalizer
![Page 11: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/11.jpg)
Equalizer
• Minimally invasive
• Asynchronous execution
• Runtime scalability
• Clusters and SSI
• Open Source
![Page 12: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/12.jpg)
Minimally Invasive
• “Make porting as simple as possible -
but not simpler.”
• Work is limited to visualization-
relevant parts
• Read Programming Guide or Parallel
Graphics Programming presentation
![Page 13: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/13.jpg)
Equalizer Application
• Typical OpenGL
application structure
• Separate rendering and
application code
start
clear
draw
swap
exit ?
event handling
initialize
update data
exit
no
yes
stop
![Page 14: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/14.jpg)
Equalizer Application
• Instantiate rendering
multiple times
• Optional: data
distribution for clustersyesyes
yes
begin frame
clear
draw
end frame
event handling
exit ?
update data
exit config
stop
start
init config
init windows
exit?
start
thread
stop
thread
noexit?
start
thread
stop
thread
no
swap
(sync)
clear
draw
swap
init windows
no
init data
![Page 15: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/15.jpg)
Asynchronous Execution
• Improves scalability on bigger clusters
• Latency between last draw and main
• Hides imbalance in load distribution
• Optional per-node synchronization
![Page 16: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/16.jpg)
Runtime Scalability
• Runtime configuration
• Parallel execution of the application’s
rendering code
• Typically one thread per graphics card,
one process per node
![Page 17: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/17.jpg)
Runtime Configuration
• Hierarchical resource description:
Node!Pipe!Window!Channel
• Node: single system of the cluster
• Pipe: graphics card
• Window: drawable and context
• Channel: view
• Resource usage: compound tree
![Page 18: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/18.jpg)
Runtime Configuration
Configcompound
eye [ LEFT RIGHT ]
channel "front"wall { ... }swapbarrier {}
channel "bottom"wall { ... }swapbarrier {}
Channelname "bottom"viewport {...}
Windowviewport {...}
Pipe
Node
Channelname "front"viewport {...}
![Page 19: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/19.jpg)
Runtime Scalability
• 2D (sort-first), DB (sort-last), eye
(stereo) and pixel compounds
• Compatible with compositing hardware
• Hardware-specific optimizations
![Page 20: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/20.jpg)
2D/Sort-First
• Scales fillrate
• Scales vertex processing
if view frustum culling
is efficient
• Parallel overhead due
to primitive overlap
limits scalability
![Page 21: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/21.jpg)
DB/Sort-Last
• Scales all aspects of
rendering pipeline
• Application needs to
be adapted to render
subrange of data
• Result composition
relatively expensive
![Page 22: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/22.jpg)
Parallel Compositing
• Compositing cost
grows linearly for DB
• Parallelize compositing
• Flexible configuration
• Constant per-node cost
• Details in EGPGV’07
presentation
source1
(destination)source 2 source 3
![Page 23: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/23.jpg)
Eye/Stereo
• Stereo rendering
• Active, passive and
anaglyphic stereo
• Excellent
loadbalancing
• Limited by number
of eye views
![Page 24: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/24.jpg)
Pixel
• Scales fillrate
perfectly
• Similar to 2D
• Raytracing, Volume
Rendering
![Page 25: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/25.jpg)
DPlex/Time-Multiplex
• Good scalability
and loadbalancing
• Increased latency
may be an issue
• Not yet
implemented
frame N+2frame N frame N+1
ch
an
ne
lb
uffe
r 0
bu
ffe
r 1
bu
ffe
r 2
![Page 26: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/26.jpg)
Multilevel Compounds
• Compounds allow any
combination of modes
• Combine different
algorithm to address
and balance bottlenecks
• Example: use DB to fit
data on GPU, then use
2D to scale further
![Page 27: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/27.jpg)
Compounds
• 2D: low IO overhead, limited scalability
• DB: high IO overhead, great scalability
• Eye: good scalability
• Pixel: linear fill-rate scalability
! Combine modes
! DB: use parallel compositing
![Page 28: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/28.jpg)
Multi-GPU and Clusters
• Equalizer runs on both architectures
• Execution model is the same
• Shared memory systems allow
additional optimisations
• Porting for SSI simpler than full port
![Page 29: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/29.jpg)
Equalizer Vision
• Equalizer: Scalable rendering engine
• Chromium: OpenGL single virtual screen
• Scenegraphs: Distributed data management
Legacy ApplicationsHPV Applications
Chromium
OpenGL, Xdmx and System Libraries
Scenegraph
Equalizer
![Page 30: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/30.jpg)
Near Future
• DB compositing optimizations
• 2D and DB load-balancing
• Data processing
• Examples, demos, applications
• Failure robustness
![Page 31: Equalizer - Math](https://reader030.vdocuments.us/reader030/viewer/2022012803/61bd1e9f61276e740b0f8dbe/html5/thumbnails/31.jpg)
Last Words
• LGPL license: commercial use welcome
• Open platform for scalable graphics
• Minimally invasive: easy porting
• Clusters and shared memory systems
• Linux, Windows, Mac OS X
• More on: www.equalizergraphics.com