Transcript
Page 1: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 2: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

2Workshop on Commodity-Based Visualization Clusters

Outline

Motivation Network interconnect Distributed OpenGL Experimentations with Chromium Conclusion and future works

Page 3: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

3Workshop on Commodity-Based Visualization Clusters

Outline

Motivation Network interconnect Distributed OpenGL Experimentations with Chromium Conclusion and future works

Page 4: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 5: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

5Workshop on Commodity-Based Visualization Clusters

Outline

Motivation Network interconnect Distributed OpenGL Experimentations with Chromium Conclusion and future works

Page 6: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 7: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

7Workshop on Commodity-Based Visualization Clusters

Outline

Motivation Network interconnect Distributed OpenGL Experimentations with Chromium Conclusion and future works

Page 8: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 9: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

9Workshop on Commodity-Based Visualization Clusters

Distributed OpenGL

TCP only

Page 10: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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)

Page 11: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

11Workshop on Commodity-Based Visualization Clusters

Distributed OpenGL

Interleaved UDP/TCP– Synchronization

4 5 5 6 6 6 7UDP

TCP

Page 12: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

12Workshop on Commodity-Based Visualization Clusters

Distributed OpenGL

Interleaved UDP/TCP– Result

Page 13: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 14: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 15: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 16: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

16Workshop on Commodity-Based Visualization Clusters

Distributed OpenGL

Fixed interleaved UDP/TCP– Result

Page 17: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 18: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

18Workshop on Commodity-Based Visualization Clusters

Experimentations

Test applications– Crocodile: OpenGL viewer– Rings: Chromium’s test program– Chromium B.S.U.: OpenGL game

Page 19: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 20: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 21: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 22: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 23: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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

Page 24: Unreliable Transport Protocol for Commodity-Based OpenGL Distributed Visualization

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)


Recommended