BwUniCluster2.0/Software/Start vnc desktop

From bwHPC Wiki
< BwUniCluster2.0‎ | Software
Revision as of 10:28, 21 May 2024 by M Janczyk (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

To avoid these drawbacks, start_vnc_desktop is provided. It combines the three open source products TurboVNC, VirtualGL and OpenSWR.

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.

Script usage

  • After login the script can simply be called from the command line:
  • To get help on the available options use:
    start_vnc_desktop --help
  • Hardware rendering is currently only available on FH2 and bwUniCluster, it can be requested with:
    start_vnc_desktop --hw-rendering
  • Software rendering is available on all clusters, it can be requested with:
    start_vnc_desktop --sw-rendering
  • There is only a limited number of nodes with hardware rendering support, software rendering runs on all nodes.
  • For large 3D data sets the software renderer may be faster.
  • If neither --hw-rendering nor --sw-rendering is selected no 3D rendering support is available.

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
  • Install:
     sudo apt-get install ./turbovnc_<VERSION>_amd64.deb
  • Execute:
Red Hat Enterprise Linux, Fedora
  • Download: Download Site -> latest version -> turbovnc-<VERSION>.x86_64.rpm
  • Install:
    sudo yum install ./turbovnc-<VERSION>.x86_64.rpm
  • Execute:
SUSE Linux Enterprise, openSUSE
  • Download Download Site -> latest version -> turbovnc-<VERSION>.x86_64.rpm
  • Install:
    sudo zypper install ./turbovnc-<VERSION>.x86_64.rpm
  • Execute:
  • Download: Can be installed from the AUR
  • Install:
    pacaur -S turbovnc
  • Execute:
  • Download: Download Site -> latest version -> TurboVNC64-<VERSION>.exe for 64-bit, TurboVNC-<VERSION>.exe for 32-bit
  • Install: Double click on TurboVNC64-<VERSION>.exe / TurboVNC-<VERSION>.exe. Install in default directory (or chose a different one, if preferred)
  • Execute: Java TurboVNCviewer (vncviewer-javaw.bat in installation directory)