== Using VirtualGL with the VGL Transport [[PageOutline]] [[Image(http://www.virtualgl.org/pmwiki/uploads/Main/virtualgl.gif, 200px, align=left, margin=10, link=wiki:vnc3d)]] [[Image(vgltransport.png, 400px, align=right, margin=10, link=wiki:vnc3d)]] '''VirtualGL''' is an open source package which gives any Unix or Linux remote display software the ability to run OpenGL applications with full 3D hardware acceleration. The OpenGL commands and 3D data are instead redirected to a 3D graphics accelerator on the application server, and only the rendered 3D images are sent to the client machine. VirtualGL has two built-in “image transports” which can be used to send rendered 3D images to the client machine. The '''VGL Transport''' is most often used whenever the 2D X server (the X server used to draw the application’s GUI and transmit keyboard and mouse events back to the application server) is located across the network from the application server, for instance if the 2D X server is running on the user’s desktop machine. [http://www.virtualgl.org/vgldoc/2_2/#hd002 | more ...] === !Advantages/Disadvantages of the VirtualGL/VGL Transport ==== Advantages * Every application window appears as a '''separate window''' on the user’s desktop. * consumes fewer server resources, since the 2D (X11) rendering occurs on the client machine * supports stereographic and overlay rendering ==== Disadvantages * The VGL Transport relies on the chatty remote X11 protocol. \\ As a result, the VGL Transport is '''not recommended''' for use on high-latency or low-bandwidth networks. \\ Please use VNC for this * As with any remote X11 app, if the network connection drops, then the application '''will exit'''. === Using VirtualGL with the VGL Transport requires four general steps. 1. '''Install VirtualGL''' on your local machine. 2. '''Start an X Server''' on your local machine. 3. '''Connect to JURECAVIS''' with vglconnect -s. 4. '''Start the application''' with vglrun. \\ === 1. Install VirtualGL ... Before you use can call '''vglconnect -s @jurecavis.fz-juelich.de''' you have to install VirtualGL on your local machine: * Linux/MacOSX - http://www.virtualgl.org * Windows+Cygwin - http://www.virtualgl.org/vgldoc/2_2/#hd004005 * Windows+Exceed - http://www.virtualgl.org/vgldoc/2_2/#hd004004 [http://www.virtualgl.org/vgldoc/2_2/#hd004/ | more ...] \\ === 2. Start an X Server ... Start an X Server on your local machine. * Linux * your X11 server is used for your standard desktop and should be running already * MacOSX * start the Mac X11 application * in the X11 application, start a new xterm [Command-N] if one isn’t already started * Windows\Cygwin * start Cygwin/X * start a new xterm if one isn’t already started (right-click on the Cygwin/X taskbar icon, then select Applications–>xterm.) \\ === 3. Connect to JURECAVIS ... In this scenario any OpenGL commands are computed to a JPEG on JURECAVIS and send to the local machine via the VGL Transport Layer. The 2D (X11) command are directly passed to the local X server running on your machine. By default the X11 traffic is encrypted, but the VGL Transport is left unencrypted to maximize performance. This will fail on JURECA - you need to encrypt the VGL Transport, too, which is forced with the '''-s''' flag: {{{ #!sh vglconnect -s -bindir /usr/bin @jurecavis.fz-juelich.de }}} * -s = Tunnel VGL Transport and X11 through SSH (default: tunnel only X11). * -bindir = Path in which the VGL executables and scripts are installed on JURECA. '''Important:''' \\ vglconnect searches for additional VirtualGL-tools in $VGL_BINDIR on your local machine if set - elsewise it expects these in /usr/bin. [http://www.virtualgl.org/vgldoc/2_2/#hd007006 | more ...] === 4. Start the application ... Now start your application on JURECA with '''vglrun''': {{{ #!sh vglrun }}} [http://www.virtualgl.org/vgldoc/2_2/#hd007 | more ...] ---- any feedback welcomed - [mailto:h.zilken@fz.juelich.de], [mailto:j.goebbert@fz-juelich.de]