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 helpdesk@surfsara.nl.
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 gpu_images_ssd
datastore. 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 Import
button 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_config
Answer in order: 1, n, n, y, X.sudo ufw allow from <your home IP address> to any
to 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. 145.100.1.0/24, which allows all ip addresses starting with 145.100.1.*sudo reboot
for the changes to come into effectYou 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 -geometry
option.vncviewer <your VM's ip address>:1
mesa-utils
package (on Ubuntu). You run the command vglrun glxgears
, and if you see three red, green a blue cogs, everything works correctly.