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:
- 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)
- 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.
- Log in on PALMA
-
Load the visualization module
bash ml visualization/vis
-
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)
```
-
Run
viscon.sh
with your preferred optionsbash 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"
```
-
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.
-
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:
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.
-
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
-
Hardware Rendering (GPU)
-
Open a terminal within the remote session and use
vglrun
to run your applicationvglrun myapplication
-
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