In this guide we will describe how to setup and use remote interactive visualization on the HPC Cloud. It allows the user of the HPC cloud to fully use virtual machines equipped with GPUs for interactive rendering, with the result being transferred over the internet to their own local laptop or desktop.
By default, you will not have access to the GPU nodes of the HPC Cloud. In order to get this, please send an e-mail to firstname.lastname@example.org.
If GPU access has been enabled for your account, you will have to use a datastore that is enabled on the GPU nodes. This datastore is called
gpu_images_ssd and behaves the same way as the
local_images_ssd datastore, except that it is accessible on the GPU nodes only. In other words, using this datastore makes sure that your VM is run on the nodes which have GPU’s installed on them.
Note that the
ceph datastore is also enabled on the GPU nodes. However, as described here, it is best to put your OS image on either the
gpu_images_ssd or the
ceph can then be used for larger data images and for persistent data.
Normally, an OpenGL-based visualization application running on your local machine will send OpenGL rendering commands to the GPU and let it handle the rendering and displaying of the output. On the Cloud, this is slightly different in this respect, as the rendered output needs to be transferred back to the user. To accomplish this in a fairly user-transparent manner the packages VirtualGL and TurboVNC are used. VirtualGL provides a way to intercept the rendering output of an OpenGL-based application with high performance, while TurboVNC is capable of compressing and serving that output on-the-fly. OpenGL applications do not have to be modified in any way in this scheme, but the user does need to use an extra command when starting applications, which will be described below.
You can either set up your own cloud image, or use an image provided by SURFsara. In this guide we will use one of the standard images provided by SURFsara.
Ubuntu 16.04 GPU VIS) and import it with the
Importbutton in the upper right.
Make persistent). After this, refresh the list with the button of the two arrows chasing each other and make sure the status of your image is “ready”
GK104GL [GRID K2]GPU. Make sure to click the green “Update” button to save your changes to the VM
ssh ubuntu@<ip address>
sudo /opt/VirtualGL/bin/vglserver_configAnswer in order: 1, n, n, y, X.
sudo ufw allow from <your home IP address> to anyto allow access from your own client IP address. If you have a dynamic IP address, you can specify a range using the / syntax, e.g. 188.8.131.52/24, which allows all ip addresses starting with 145.100.1.*
sudo rebootfor the changes to come into effect
You only need to do the previous steps once. For every subsequent work session, you need only need to reinstate your VM and start your virtual desktop as shown in the steps below:
/opt/TurboVNC/bin/vncserver -geometry 1920x1200. You can vary the resolution as desired using the
vncviewer <your VM's ip address>:1
mesa-utilspackage (on Ubuntu). You run the command
vglrun glxgears, and if you see three red, green a blue cogs, everything works correctly.