VirtualGL / TurboVNC
Introduction
VirtualGL is an open source package that gives any Unix or Linux remote display software the ability to run OpenGL applications with full 3D hardware acceleration. The traditional method of displaying graphics applications to a remote X server (indirect rendering) supports 3D hardware acceleration, but this approach causes all of the OpenGL commands and 3D data to be sent over the network to be rendered on the client machine. With VirtualGL, the OpenGL commands and 3D data are redirected to a 3D graphics accelerator on the application server, and only the rendered 3D images are sent to the client machine. VirtualGL "virtualizes" 3D graphics hardware, allowing users to access and share large-memory visualization nodes with high-end graphics processing units (GPUs) from their energy-efficent desktops.
For more information, refer to the current documentation or the background article.
Remote Visualization
NREL has large-memory GPU-equipped data analysis and visualization (DAV) nodes attached to Peregrine. You can remotely run visualization applications on these servers. The TurboVNC software is used to provide the remote display capability. The TurboVNC server provides a virtual X Windows display, and any X Windows application can be run. Display performance using TurboVNC may be better than using the X Windows protocol when connecting from a remote site with low bandwidth and/or high latency. Another benefit is that you can disconnect from a TurboVNC session, go to another location and reconnect to that TurboVNC session, picking up from where you left off. When used along with VirtualGL, TurboVNC provides hardware-accelerated remote visualization for OpenGL based applications.
Install the client software
The first step is to install the TurboVNC client on your local desktop. You will also need an X11 application and an SSH client with a terminal. On Mac OS X, you can use the built-in Terminal app with XQuartz. On Windows, we recommend PuTTY with Xming.
Starting the TurboVNC server
Log onto the visualization server node using your SSH client and start the TurboVNC server:
$ /opt/TurboVNC/bin/vncserver New 'X' desktop is dav1.hpc.nrel.gov:2
Please note:
- You cannot connect to a TurboVNC session through the hpcsh gateway server. You must be on the NREL campus network or using a VPN connection.
- The first time you start vncserver you will be prompted to set a password. This is independent of your login password and can be changed later with the vncpasswd command.
- vncserver accepts an optional argument, --geometry, allowing you to specify the size of the virtual desktop up to 2560x1600.
You may now end your SSH session.
Starting the TurboVNC client
1. On your workstation, launch the TurboVNC viewer app and enter the server address as reported by vncserver, e.g. dav1.hpc.nrel.gov:2.
2. You will be asked for login credentials twice: first to establish a secure SSH tunnel (use your normal username and password), then to connect to the VNC session (use the password you created when running vncserver).
Launching OpenGL applications
You can now run applications in the remote desktop. You can run X applications normally; however, to run hardware-accelerated OpenGL applications, you must run the application prefaced by the vglrun command, e.g., to run the vaporgui application:
$ vglrun vaporgui
Cleaning up
Your remote desktop (i.e., the TurboVNC server) will persist even after you have closed your client. When you are done with your VNC session, you should stop the TurboVNC server to free the resources allocated with that server. To do this run the following command on visualization server node:
$ /opt/TurboVNC/bin/vncserver -kill :2
using the display number (i.e., in this example :2) reported when the server was created.