Remote Visualization¶
Remote visualization enables you to run graphical applications on NHR@KIT systems in an interactive way, while making use of all its resources (including hardware-based 3D rendering on the GPUs) and only transferring the resulting, pre-rendered images to your local system.
Available Methods¶
NHR@KIT officially supports two different methods for remote visualization:
- JupyterHub Desktop - Browser-based access with software rendering for OpenGL
- start_vnc_desktop - Custom script that supports hardware-accelerated rendering for OpenGL and advanced options
It is also possible to set up a VNC server manually, but this is largely out of the scope of this documentation.
Info
All officially supported remote visualization solutions use TurboVNC as the VNC server and VirtualGL or Mesa3D for OpenGL rendering.
JupyterHub Desktop¶
This solution allows you to get access to a remote desktop through a common web browser. No dedicated client installation is required. The default desktop environment is GNOME Shell.
Warning
Jupyter Desktop currently only supports software-based OpenGL rendering and doesn't use GPUs for hardware acceleration.
To log into the JupyterHub system and start a Desktop session, follow the instructions in the JupyterHub section, select the JupyterLab-Basemodule jupyter/extensions in the resource selection dialogue, and then click on Desktop.
start_vnc_desktop¶
start_vnc_desktop is a custom-made script developed specifically for the HPC systems at SCC. It provides the same functionality as the JupyterHub Desktop session, but supports more advanced use cases (e.g. hardware-accelerated OpenGL rendering).
Usage¶
The start_vnc_desktop script has to be executed on a login node:
| Option | Meaning |
|---|---|
-n |
Number of nodes to allocate |
--ppn |
Number of processors to allocate on each node |
--num-gpu |
Number of GPUs to allocate on each node |
-q |
Batch partition/queue to submit the job to |
-t |
Walltime limit for the session |
--hw-rendering |
Use hardware-accelerated OpenGL rendering on GPU(s) |
--sw-rendering |
Force software-based OpenGL rendering on GPU(s) |
By default the script will allocate a single node without any GPUs.
Session lifetime
start_vnc_desktop uses salloc to allocate the visualization nodes. After the script has set up everything and output instructions on how to connect, you will be dropped into a shell on one of the allocated compute nodes. If you log out of this shell, the allocated job and therefore the whole remote desktop will be terminated.
TurboVNC¶
The currently recommended client is TurboVNC. It has a built-in gateway feature that supports SSH as a gateway.
Linux Terminal (preferred)¶
Open a Terminal and execute the command line provided by the start_vnc_desktop script:
/opt/TurboVNC/bin/vncviewer ExtSSH=1 Via=user@hk2.scc.kit.edu Server=<server>:1 Password=<password> SecurityTypes=VNC
Windows/Mac/Linux GUI¶
Start the TurboVNC client and fill in the required fields in the GUI client.
Internal vs. external TurboVNC SSH client
Depending on your TurboVNC client version and operating system, you may have to force it to use the operating system's own SSH client. This can be done on the command line by passing ExtSSH=1.
Manual VNC server setup¶
You can load the vis/turbovnc module to get a vncserver binary. For security reasons, always set up password authentication for your VNC servers.
For detailed documentation on remote visualization setup and usage, see the HPC user documentation.