HPC-Cluster

Visualization

For visualization of large data sets it's often unpractical to download them to a local workstation, the size of the data sets and the available bandwith are limiting factors.  To visualize in place (i.e. close to the data),  a visualization server is available. It's especially helpful for complex 3D graphics. In addition, GPU cluster nodes can be used as well when accesses via interactive jobs.

For simpler visualization (2D graphics, simple 3D graphics) it's usually sufficient to work inside an X2Go session.

Concept: VirtualGL uses a local GPU for rendering the 3D parts and sends the resulting 2D representation to the client.

A) On the visualization server

Prerequisites

The visualization server is  cluster-v.math.tu-berlin.de.

Users who would like to use VirtualGL must be members of the vglusers group.

Usage

Generally there are three ways to use VirtualGL:

  1. In an X2Go session

    Here, it's sufficient to start the application under vglrun, e.g.:

    cluster-v% vglrun paraview
     
  2. With a VNC proxy

    Here you start a VNC server on the virtualization server and route its traffic through an ssh tunnel:
     
    client% ssh -L 5909:localhost:5909 cluster-v.math.tu-berlin.de -l <username>
    cluster-v%  module add turbovnc/3.0.2
    cluster-v%  vncserver :9 -noxstartup
    cluster-v%  DISPLAY=:9 vglrun paraview
    client% vncviewer :9

    In the exampe above both the client and cluster-v use the X11 display number '9' (from which the VNC port number 5909 (=5900+9) is derived).  Instead of '9' any unused number can be used.
     
  3. With a local VirtualGL client

    If the local client has VirtualGL installed, vglconnect can be used ti establish a connection to the virtualization server:

    client%  vglconnect -s cluster-v.math.tu-berlin.de -l <username>

    and the application can be started under vglrun:

    cluster-v%  vglrun paraview

pros and cons of the above methods

  • If the application has many 2D elements (menus, buttons, etc.) method 3) is not recommended over slow(er) links (DSL).
  • Method 2) is likely the most performant of the three, It should, however, avoided due to the complexity of the setup.
    Use 1) instead.

B) In an interactive job

In special cases it can be useful to start a GUI within an interactive job, e.g. in connection with a  running simulation, for debugging or due to special hardware requirements.

For such cases the interactive job should be started from withhin an X2Go session (choose any of the login servers) and it needs an additional environment variable.
Example:

  cluster-i%  USE_VGL=1 qrsh -l gpus=1  bash --login
  node733%  display=$(/afs/math/software/gpu/sbin/start_private_xserver)
  node733%  module load paraview 
  node733%  vglrun -d $display -c rgb  paraview