Software that requires OpenGL and a graphics card to render complex visualisations cannot be run on all of Iceberg’s nodes as:
Only a limited number of nodes have graphics cards
None of the nodes that do have a monitor attached
To run such software on Iceberg we therefore need:
A means to automate the finding of a node with a graphics card that we can use for visualisation purposes
A way of streaming the images rendered on a node through to the machine the user is sat in front of.
We have set up on Iceberg a system for hardware-accelerated visualisation that uses two main tools: VirtualGL and TigerVNC. See below for simple usage instructions.
Download and install TigerVNC on your machine. TigerVNC is a program that allows you to efficiently view graphical programs on one computer that are actually running on another computer.
Connect to Iceberg. Note that if you are using a VPN connection from off-campus then at present the following instructions will not work for you if your home network uses IP addresses in the range 192.168.0.0 - 192.168.3.255: you should instead a) connect from on-campus or b) use the ShARC cluster’s visualisation nodes or c) change your home network IP range to something different e.g. 192.168.100.0-255.
On the login node (not a worker node) run the command
qsh-vis. The output should look something like the following:
[te1st@iceberg-login1 ~]$ qsh-vis NOTE: you can only run 1 GPU acclerated session New 'node000:1 (te1st)' desktop is node000:1 Starting applications specified in /home/te1st/.vnc/xstartup Log file is /home/te1st/.vnc/node000:1.log Accelerated VNC graphics session started *******To connect: ******* Either startup a web-browser and enter the address: http://node000.sheffield.ac.uk:5800 or use the TigerVNC application to connect to: node000.sheffield.ac.uk:5900 Make sure to enter your normal Iceberg username/password when prompted. To end session : press [enter]
Leave that terminal running.
On your machine start the ‘VNC Viewer’ program that comes with TigerVNC (this is called
vncviewer on Linux). You should then see a dialog box like this:
Enter the connection details for TigerVNC that were issued by the
qsh-vis command e.g.
node000.shef.ac.uk:5901 (NB the node name and last four digits may differ when you run
You should now see a desktop within a window. This desktop is running on a worker node (in the case of the presented example this is
node000`; see the
qsh-vis output) that is equipped with a graphics card (Optional: run
nvidia-smi to see what type of graphics card). A terminal window is automatically started from which you can load modules and start applications that require hardware-accelerated graphics.
When you are finished, close VNC Viewer then return to the terminal within which you started
qsh-vis and press enter to stop the worker session (and allow someone else to use that graphics-card-equipped node).
Sessions started using
qsh-vis by default have allocated to them:
1 CPU core
You can request additional resources by passing the same parameters to
qsh-vis that can be used with
qsub (see Starting interactive jobs and submitting batch jobs).
Research groups who have purchased their own GPU visualisation nodes may have different defaults.
At present only one graphics-card-equipped node is available for use with
qsh-vis so there may be contention for this resource. Some research groups have purchased their own visualisation nodes.
Behind the scenes:
qsh-vis sets the default resources to be requested for the interactive session (based on whether the user belongs to a research group that has dedicated visualisation nodes)…
qrsh to start a script with these resources.
This script then starts a TigerVNC
vncserver on a port that is unique over the range of machines on which hardware-accelerated visualisation sessions can be started.
TigerVNC supports VirtualGL, a means of streaming the images rendered by say a graphics card to a remote machine.
The aforementioned script then kills the created
Xvnc process when Enter is pressed.