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 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-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.