Hardware-accelerated graphics rendering (qsh-vis)
Software that requires OpenGL and a graphics card to render complex visualisations cannot be run on all of ShARC’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 ShARC 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 ShARC 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.
On the login node (not a worker node) run the command
qsh-vis. The output should look something like the following:
[te1st@sharc-login1 ~]$ qsh-vis NOTE: you can only run 1 GPU acclerated session New 'sharc-node098.shef.ac.uk:1 (te1st)' desktop is sharc-node098.shef.ac.uk:1 Starting applications specified in /home/te1st/.vnc/xstartup Log file is /home/te1st/.vnc/sharc-node098.shef.ac.uk:1.log Accelerated VNC graphics session started *******To connect: ******* Use the TigerVNC application to connect to: sharc-node098.shef.ac.uk:5901 Make sure to enter your normal ShARC username/password when prompted. The latest version of the TigerVNC client can be downloaded from: https://github.com/TigerVNC/tigervnc/releases Note that TigerVNC no longer supports http access to the java vncviewer client, however the java vncviewer application can be downloaded from https://github.com/TigerVNC/tigervnc/releases Hit [enter] to terminate this VNC graphics session
Leave that terminal running.
On your machine start the ‘VNC Viewer’ program that comes with TigerVNC (this is called
vncvieweron Linux). You should then see a dialog box like this:
Enter the connection details for TigerVNC that were issued by the
sharc-node098.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
sharc-node098`; see the
qsh-visoutput) that is equipped with a graphics card (Optional: run
nvidia-smito 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-visand press enter to stop the worker session (and allow someone else to use that graphics-card-equipped node).
Resources available to qsh-vis sessions
Sessions started using
qsh-visby default have allocated to them:
1 CPU core
You can request additional resources by passing the same parameters to
qsh-visthat can be used with
qsub(see Interactive 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-vissets 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)…
qrshto start a script with these resources.
This script then starts a TigerVNC
vncserveron 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
Xvncprocess when Enter is pressed.