Remote Visualization

Overview

ARIS provides the capability to perform interactive visualization processing of your data. Two visualization servers provide high-end GPU rendering capabilities to enable the use of OpenGL and GPU accelerated graphic applications.

The user can run the visualization application on the ARIS nodes (where he has fast access to to the shared filesystem of ARIS) instead of their local desktop workstation without transferring any data locally.

Recommended client TurboVNC http://sourceforge.net/projects/turbovnc/

Visualization nodes technical information
Architecture x86-64
System Dell PowerEdge 7910
Total number of nodes 2
Components
Processor Type Ivy Bridge - Intel Xeon E5-2630v4
Nominal Frequency [GHz] 2.2
Processors per Node 2
Cores per Processor 10
Cores per Node 20
Hyperthreading OFF
Memory
Memory per Node [GByte] 256
Graphic Accelerators
Accelerator type GPU - NVIDIA Quadro M5000
Accelerators per node 2
Accelerator memory [GByte] 8

Usage

Visualization service workflow:

1. Connect to ARIS

Connect as usual to login.aris.grnet.gr (Login to ARIS)

Note the physical hostname you are connected (for example login01.aris.grnet.gr)

$ hostname
$ uname -n

login01

2. Create a VNC password.

It is needed only once, before the first use of visualization service

$ mkdir -p $HOME/.vnc/

$ /opt/TurboVNC/bin/vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n

The password must be at least six characters long and only the first eight characters are significant.

3. Start the VNC server on the login node :

$ /opt/TurboVNC/bin/vncserver

Desktop 'TurboVNC: login01:1 (username)' started on display login01:1

Creating default startup script $HOME/.vnc/xstartup.turbovnc
Starting applications specified in
$HOME/.vnc/xstartup.turbovnc
Log file is $HOME/.vnc/login01:1.log

Note the port that is assigned to your VNC session and the assigned display. You can extract that information from the VNC log file $HOME/.vnc/login01:1.log (output of the vncserver command)

$ grep -E "VNC.*port" $HOME/.vnc/login01:1.log

21/12/2016 12:48:33 Listening for VNC connections on TCP port 5901

Typical values are 5901 and login01:1, port may change depending on the active VNC sessions on login node, but it is 5901 or higher 5902 etc. If you are connected to login01, and your session assigned display :2, the port info is logged in file $HOME/.vnc/login01:2.log

4. Create an ssh tunnel from your PC to the VNC server :

Linux/MAC OS/*IX :

ssh -i PATH_TO_YOUR_PRIVATE_KEY username@hostname.aris.grnet.gr -L 5901:localhost:5901

      You should use :
              hostname : <login01>,<login02> set the hostname your are connected to from step 1.
              username : your username on ARIS
              5901     : The port number assigned to your VNC session
              PATH_TO_PRIVATE_KEY: The path to you private `id.rsa` key

Windows

Putty

Set the hostname you are connected from step 1.

putty_login01

Configure the tunnel port assigned to your VNC session (from step 3)

Connection -> SSH -> Tunnels

Click Add button

putty_tunnel

Bitvise

Set the hostname you are connected from step 1.

bitvise_login01

Configure the tunnel port assigned to your VNC session (from step 3)

C2S Tab -> Add

Click Add button

bitvise_tunnel

5. If vncviewer is not installed on your PC install it.

TurboVNC http://sourceforge.net/projects/turbovnc/

6. Run TurboVNC Viewer from your PC.

On your Linux/MAC/*IX :

$ vncviewer localhost:5901

On Windows run turbovnc client

turbovnc_win

At this point, you should type the VNC password created in step 1.

vncviewer_password

After this you’ll see a very minimal VNC session on login node with just a terminal.

turbovnc_minimal

7. Access the visualization node.

Create a slurm job file viz.slurm to submit in SLURM that will reserve vizualization resources : node, CPU cores, GPU(s). This is a typical SLURM script similar to those you use to run your applications, with the following modifications

#!/bin/bash
####################################
#        Visualization Job         #
####################################
#SBATCH --job-name=visualization # Job name
#SBATCH --output=visualization.%j.out # Stdout (%j expands to jobId)
#SBATCH --error=visualization.%j.err # Stderr (%j expands to jobId)
#SBATCH --partition=viz # instead of compute
#SBATCH --gres=gpu:1 # to reserve 1 of the 2 available gpus
#SBATCH --nodes=1    # to reserve 1 node
#SBATCH --ntasks=10  # to reserve half of cpu cores that correspong to # 1 of the 2 available gpus
#SBATCH --time=01:00:00 # Walltime
#SBATCH --account=pr0000 # Accounting project

export GEOMETRY=1024x768
startviz

The command you should execute in your SLURM script is : startviz i.e. instead of the usual srun EXE args the you use in computational jobs issue only : startviz

The default desktop geometry is 1024x768 If you like to change the geometry issue in SLURM script just before startviz

export GEOMETRY=2048x1280

to use a 20148x1280 desktop geometry

From any terminal submit the SLURM script to visualization partition.

$ sbatch viz.slurm

Check your stdout file visualization.out

$ cat visualization.out

To connect use : vncviewer viz01:1

8. VNC Session

From the VNC session terminal created in step 3 issue the command that is reported in the job output file visualization.out i.e. something like

vncviewer viz01:1

vncviewer_viz01

You’ll see an almost complete gnome desktop on the vizualization node assigned to your job. (If you dont see it click inside the window)

gnome_desktop

Disable your Gnome session screensaver

It is needed only once

Please disable the gnome session screensaver or the screen will get locked. gconftool-2 --type bool --set /apps/gnome-screensaver/lock_enabled false

9. Run Visualization Software

From this desktop you can run your vizualization software using vglrun

For example, if you use paraview :

    ```
    module load paraview
    vglrun paraview.
    ```

load_paraview paraview

Your vizualization software will use the resources assigned to your job. It is crucial to start all visualization software with the vglrun command.

Without vglrun software will not start.

10. End Visualization

Logout

Logout

After visualization, you should logout from your gnome desktop. If you ommit this step, the desktop will remain active for the period requested in your SLURM script.

gnome_logout

if you ask 6 hours in your visualization job, and forget to logout from gnome desktop, your session will be terminated automatically 6 hours after job start. The use of visualization partition consumes core hours from your budget. Don’t forget to logout to avoid reserving resources and consuming core hours doing nothing.

Stop VNC server on login node

When you finish your visualization activities do not forget to stop the minimal VNC server on login node :

On the login node issue :

$ /opt/TurboVNC/bin/vncserver -list

TurboVNC server sessions:

X DISPLAY # PROCESS ID
:1    25400

To stop this session issue :

/opt/TurboVNC/bin/vncserver -kill :1