Workshop on Commodity-Based Visualization Clusters
Unreliable Transport Protocol for Commodity-Based OpenGL Distributed
Visualization
Samuel Thibault – ENS LyonXavier Cavin – SCI Institute/Inria Lorraine
Olivier Festor – Inria LorraineEric Fleury - Inria Rhônes-Alpes
2Workshop on Commodity-Based Visualization Clusters
Outline
Motivation Network interconnect Distributed OpenGL Experimentations with Chromium Conclusion and future works
3Workshop on Commodity-Based Visualization Clusters
Outline
Motivation Network interconnect Distributed OpenGL Experimentations with Chromium Conclusion and future works
4Workshop on Commodity-Based Visualization Clusters
Motivation
Clusters of commodity computers Dedicated, expensive network interconnect
– Both transfer time and packets loss are very low– Reliable transport protocol (TCP)
Cheaper network interconnects (… wireless cluster)– Unreliable transport protocol (UDP)– Degradation of rendering quality
5Workshop on Commodity-Based Visualization Clusters
Outline
Motivation Network interconnect Distributed OpenGL Experimentations with Chromium Conclusion and future works
6Workshop on Commodity-Based Visualization Clusters
Network interconnect
Transfer Control Protocol (TCP)– Guaranteed delivery– Acknowledgment mechanism
User Datagram Protocol (UDP)– Unreliable transport protocol– Fast but no delivery or order guarantee
Maximum Transmission Unit (MTU)– Biggest packet size (no fragmentation)– TCP automatically adapts to the MTU– UDP does not
7Workshop on Commodity-Based Visualization Clusters
Outline
Motivation Network interconnect Distributed OpenGL Experimentations with Chromium Conclusion and future works
8Workshop on Commodity-Based Visualization Clusters
Distributed OpenGL
Basic brick
Rendering client
OpenGLdecoder
OpenGLlibrary
OpenGLencoder
OpenGL calls OpenGL calls
OpenGLapplication
Rendering server
Display
Network
TCP
UDP
9Workshop on Commodity-Based Visualization Clusters
Distributed OpenGL
TCP only
10Workshop on Commodity-Based Visualization Clusters
Distributed OpenGL
UDP versus TCP– Remove the acknowledgment mechanism– Some data may not be received– Or not in the order they were sent
UDP only– Almost always fatal crash– Some OpenGL calls shall not be lost: use TCP– Some can: glBegin/glEnd contents (i.e. glVertex)
11Workshop on Commodity-Based Visualization Clusters
Distributed OpenGL
Interleaved UDP/TCP– Synchronization
4 5 5 6 6 6 7UDP
TCP
12Workshop on Commodity-Based Visualization Clusters
Distributed OpenGL
Interleaved UDP/TCP– Result
13Workshop on Commodity-Based Visualization Clusters
Distributed OpenGL
Fixing interleaved UDP/TCP– MTU consideration: no loss example
Expected
12
3
4
5
6
7
8
9
Sent
12
3
4
5
6
7
8
9
Rendered
14Workshop on Commodity-Based Visualization Clusters
Distributed OpenGL
Fixing interleaved UDP/TCP– MTU consideration: single vertex loss example
Expected
12 4
5
6
7
8
9
Received
12 4
5
6
7
8
9
Rendered
15Workshop on Commodity-Based Visualization Clusters
Distributed OpenGL
Fixing interleaved UDP/TCP– MTU consideration: triplet of vertices loss example
Expected
4
5
6
7
8
9
Received
4
5
6
7
8
9
Rendered
16Workshop on Commodity-Based Visualization Clusters
Distributed OpenGL
Fixed interleaved UDP/TCP– Result
17Workshop on Commodity-Based Visualization Clusters
Experimentations
Implementation in Chromium– Framework for OpenGL rendering on clusters of workstations– http://chromium.sourceforge.net
Added features (patches-1-branch of CVS repository)– IPv6 support– Interleaved UDP/TCP support
18Workshop on Commodity-Based Visualization Clusters
Experimentations
Test applications– Crocodile: OpenGL viewer– Rings: Chromium’s test program– Chromium B.S.U.: OpenGL game
19Workshop on Commodity-Based Visualization Clusters
Experimentations
TCPUDP
Crocodile Rings Chromium B.S.U.
100 Mbps
2.2 fps
2.7 fps
110 fps
110 fps
playable
playable
20Workshop on Commodity-Based Visualization Clusters
Experimentations
TCPUDP
Crocodile Rings Chromium B.S.U.
10 Mbps
0.28 fps
0.36 fps
34 fps
39 fps
playable
playable
21Workshop on Commodity-Based Visualization Clusters
Experimentations
TCPUDP
Crocodile Rings Chromium B.S.U.
Wireless
0. 066 fps
0.37 fps
5.5 fps
8 fps
quite playable
non playable
22Workshop on Commodity-Based Visualization Clusters
Conclusion
Interleaved UDP/TCP is adapted:– If geometry represents most of the traffic– When rendering quality is not the first interest– When it is animated– If the network is the bottleneck or has huge loss
It is not:– When the application parts are closely synchronized– On local high bandwidth networks
23Workshop on Commodity-Based Visualization Clusters
Future works
Multiple rendering– UDP IPv6 multicast– What about TCP packets?
UDP buffering: sendmsg/recvmsg– MTU constraints– UDP: 1.5 KB– TCP: 16 KB => less system calls
UDP traffic control– When sender is too fast for network or receiver– Big losses
24Workshop on Commodity-Based Visualization Clusters
Acknowledgments
Support– VTHD: Very High Broadband (French ministry of industry)– AVTC (DOE VIEWS)
People– Chromium community– Alain Filbois– Bruno Levy (Graphite software)