Skip to content

High Performance Computing : Visualization

Created by Potthoff, Sebastian, last modified on 23. Sep 2021

Sometimes it might be necessary (for various reasons) to use a GUI on PALMA. For this purpose, we offer two solutions via a VNC server on two dedicated nodes:

  1. Software-Rendering (SWR): Since the CPUs are quite fast, the rendering can be done in software (meaning the CPUs are utilized instead of a GPU)
  2. Hardware-Rendering (HWR): Rendering is done on a node with a dedicated GPU

To connect to one of those nodes, you can either use your own, local VNC client or use an in-browser solution, which only requires a standard web browser.

Windows Users You will need plink (which is part of PuTTY) for both solutions, if you are using a Windows system.

Hardware

The following hardware resources are available:

Type Dedicated Node(s) CPUs/User GPUs/User Timelimit Max No. of Users
SWR 1 18 (skylake) - 12h 4
HWR 1 12 (skylake) 1 (Titan XP) 12h 4

Usage

We provide a module on PALMA, giving access to a script, which performs the necessary steps and prints out instructions how to proceed.

  1. Log in on PALMA
  2. Load the visualization module

    bash ml visualization/vis

  3. Use viscon.sh to start your session, --help gives you an overview of all available options

    ```bash $ viscon.sh --help

    viscon.sh -- visually connect to PALMA II via VNC.

    options: -h, --help this help message

    -w, --web           use VNC-in-the-browser (no additional VNC client required)
    -g, --gpu           use hardware rendering (default: software rendering)
    

    ```

  4. Run viscon.sh with your preferred options

    bash viscon.sh -w

    The output will look similar to this (with adjusted username and a randomly generated password)

    ```bash salloc: Pending job allocation 9201438 salloc: job 9201438 queued and waiting for resources salloc: job 9201438 has been allocated resources salloc: Granted job allocation 9201438

    ```

    Your Session is ready, to connect to your VNC session:

    (1) On Linux/MacOS, run:

        ssh -i ~/.ssh/id_rsa_palma -o ServerAliveInterval=60 -L 6081:localhost:6080 username@palma.uni-muenster.de 'ssh -L 6080:localhost:6081 r04n08'
    

    On Windows (provided that the PuTTY installation directory is in your PATH variable), run:

        plink -i %HOMEPATH%\Documents\id_rsa_palma -L 6081:localhost:6080 username@palma.uni-muenster.de ssh -o ServerAliveInterval=60 -L 6080:localhost:6081 r04n08
    

    in your terminal (just keep it open)

    (2) Point your browser to http://localhost:6081/vnc.html?host=localhost&port=6081

    Password: j8s4+3vn

    To end your session:

    1) close your browser tab 2) press CTRL + C in your local terminal 3) press CTRL + C in this terminal, then call "exit"

    ```

  5. Wait until the session has started and follow the instructions. Copy/Paste the lines from the terminal output. First you open a new terminal window and create an SSH tunnel to the allocated node with a specific port being passed through, e.g. :

    bash ssh -i ~/.ssh/id_rsa_palma -o ServerAliveInterval=60 -L 6081:localhost:6080 username@palma.uni-muenster.de 'ssh -L 6080:localhost:6081 r04n08'

    You will get a message that a "Pseudo-terminal will not be allocated because stdin is not a terminal." This is OK and you can minimize (not close!) this terminal window as the SSH tunnel is now established.

  6. Then you can either open the URL given by the script to use the in-browser version, or use your local VNC client to connect to the node. As an example the browser solution is shown here:

    novnc_browser1

    Type in the generated password you were given when you called the viscon.sh script. You will be presented with a (minimal) desktop environment. You can open a terminal window, load modules and run your GUI applications.

    novnc_browser2

  7. Depending on what kind of rendering you chose, you start your GUI applications in a different manner:

    • Software Rendering (CPU)

    • Open a terminal within the remote session window and enter

      ```bash
      "module load intel Mesa" or "module load foss Mesa"
      ```
      
    • Start an application with a GUI

    novnc_browser3

    • Hardware Rendering (GPU)

    • Open a terminal within the remote session and use vglrun to run your application

      vglrun myapplication
      

    novnc_browser4

Note that some software needs special commands to run correctly. E.g. matlab needs a special flag to run with vglrun. Refer to the official VirtualGL documentation for more information.

        vglrun -nosoftwareopengl matlab