The Linux 3D graphics stack is based on X11 and OpenGL. This has some drawbacks in conjunction with remote visualization:
- Rendering takes place on the client, not the cluster
- Whole 3D model must be transferred via network to the client
- Some OpenGL extensions are not supported when using indirect / client side rendering instead of direct / hardware based rendering
- Many round trips in the X11 protocol negatively influence interactivity
- X11 is not available on non-Linux platforms
- Compatibility problems between client and cluster can occur
Virtual Network Computing (VNC) is a graphical desktop sharing system. VNC is platform-independent - there are clients and servers for many GUI-based operating systems. The VNC server is the program on the machine that shares its screen. The VNC client (or viewer) is the program that watches, controls, and interacts with the server. For more details see: Wikipedia
VirtualGL redirects the 3D rendering commands from Linux OpenGL applications to 3D accelerator hardware in the cluster. For more details see: Wikipedia
When no 3D accelerator hardware is available OpenSWR, a high performance, highly scalable software rasterizer for OpenGL can carry out the rendering task. For more details see: OpenSWR
This script takes a two step approach to start a VNC server in the cluster environment:
In the first step the batch system is used to allocate resources where a VNC server can be started.
In the second step the VNC server is launched on the resources granted by the batch system. When VNC server is successfully started all required login credentials and connection parameters will be reported. To connect to this VNC server a VNC client installation on the local desktop is required.
1 Script usage
- After login the script can simply be called from the command line:
- To get help on the available options use:
- Hardware rendering is currently only available on FH2 and bwUniCluster, it can be requested with:
- Software rendering is available on all clusters, it can be requested with:
- There is only a limited number of nodes with hardware rendering support, software rendering runs on all nodes.
- For large 3D data sets software rendering may be faster than hardware rendering.
- If neither
--sw-renderingis selected no 3D rendering support is available.
2 VNC client
In general every VNC client can be used to connect to the VNC server. However for best performance and compatibility the use of the TurboVNC client is recommended. Below you find the necessary steps for different client operation systems.
- Debian, Ubuntu
- Download: Download Site -> latest version -> turbovnc_<VERSION>_amd64.deb
sudo apt-get install ./turbovnc_<VERSION>_amd64.deb
- Red Hat Enterprise Linux, Fedora
- Download: Download Site -> latest version -> turbovnc-<VERSION>.x86_64.rpm
sudo yum install ./turbovnc-<VERSION>.x86_64.rpm
- SUSE Linux Enterprise, openSUSE
- Download Download Site -> latest version -> turbovnc-<VERSION>.x86_64.rpm
sudo zypper install ./turbovnc-<VERSION>.x86_64.rpm
- Download: Can be installed from the AUR
pacaur -S turbovnc
- Download: Download Site -> latest version -> TurboVNC64-<VERSION>.exe for 64-bit, TurboVNC-<VERSION>.exe for 32-bit
- TurboVNC requires a installed Java runtime environment available from Java SE Downloads. Be careful to select the same bitness for TurboVNC and the JRE.
- Install: Double click on TurboVNC64-<VERSION>.exe / TurboVNC-<VERSION>.exe. Install in default directory (or choose a different one, if preferred)
- Execute: Java TurboVNCviewer (vncviewer-javaw.bat in installation directory).