250 likes | 366 Views
Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization. Samuel Thibault – ENS Lyon Xavier Cavin – SCI Institute /Inria Lorraine Olivier Festor – Inria Lorraine Eric Fleury - Inria Rhônes-Alpes. Outline. Motivation Network interconnect Distributed OpenGL
E N D
Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization Samuel Thibault – ENS Lyon Xavier Cavin – SCI Institute/Inria Lorraine Olivier Festor – Inria Lorraine Eric Fleury - Inria Rhônes-Alpes
Outline • Motivation • Network interconnect • Distributed OpenGL • Experimentations with Chromium • Conclusion and future works
Outline • Motivation • Network interconnect • Distributed OpenGL • Experimentations with Chromium • Conclusion and future works
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
Outline • Motivation • Network interconnect • Distributed OpenGL • Experimentations with Chromium • Conclusion and future works
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
Outline • Motivation • Network interconnect • Distributed OpenGL • Experimentations with Chromium • Conclusion and future works
Distributed OpenGL • Basic brick OpenGL application OpenGL decoder OpenGL calls OpenGL calls Network OpenGL encoder OpenGL library Display TCP UDP Rendering client Rendering server
Distributed OpenGL • TCP only
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)
Distributed OpenGL • Interleaved UDP/TCP • Synchronization UDP 4 5 5 6 6 6 7 TCP
Distributed OpenGL • Interleaved UDP/TCP • Result
5 4 2 1 6 3 8 9 7 Expected Rendered Distributed OpenGL • Fixing interleaved UDP/TCP • MTU consideration: no loss example 5 4 2 1 6 3 8 9 7 Sent
Expected Distributed OpenGL • Fixing interleaved UDP/TCP • MTU consideration: single vertex loss example 5 5 4 4 2 2 1 1 6 6 8 8 9 9 7 7 Received Rendered
Expected Distributed OpenGL • Fixing interleaved UDP/TCP • MTU consideration: triplet of vertices loss example 5 5 4 4 6 6 8 8 9 9 7 7 Received Rendered
Distributed OpenGL • Fixed interleaved UDP/TCP • Result
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
Experimentations • Test applications • Crocodile: OpenGL viewer • Rings: Chromium’s test program • Chromium B.S.U.: OpenGL game
Crocodile Rings Chromium B.S.U. TCP UDP Experimentations 100 Mbps 2.2 fps 110 fps playable 2.7 fps 110 fps playable
Crocodile Rings Chromium B.S.U. TCP UDP Experimentations 10 Mbps 0.28 fps 34 fps playable 0.36 fps 39 fps playable
Crocodile Rings Chromium B.S.U. TCP UDP Experimentations Wireless 0. 066 fps 5.5 fps quite playable 0.37 fps 8 fps non playable
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
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
Acknowledgments • Support • VTHD: Very High Broadband (French ministry of industry) • AVTC (DOE VIEWS) • People • Chromium community • Alain Filbois • Bruno Levy (Graphite software)