Remote Visualization

From KIT HPC Wiki
Jump to: navigation, search
ForHLR I and II are no longer available

ForHLR II has been shut down on 12.04.2021. The ForHLR II file system will continue to be operated until 30.06.2021. The login and data mover nodes will also continue to be available until this date so that you can transfer your data in the usual ways. Users of HoreKa can access the file system directly via mount points (see [1]).

Please note that the file system of ForHLR II has reached the end of its lifetime and is no longer maintained. We do not anticipate any issues, but there is a small probability of data loss in the event of a failure. We therefore adivse you to start transfering and backing up your data now.

After the final shutdown of all components of the Forschungshochleistungsrechner systems the remaining data on the storage systems will be deleted.

Applications for computing time projects on HoreKa can already be filed right now. For more information, please see the new user documentation at [2].

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.

1 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 software rendering may be faster than hardware rendering.
  • If neither --hw-rendering nor --sw-rendering is 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
  • 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
  • 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).