A visualisation server is available again. The configuration is rather different to what was used before, so please read these instructions carefully.
There is a dedicated visualization server called chpcviz1, and an identical backup server called chpclic1. Please note that these servers should be used for pre- and post-processing only. If the servers are being overloaded, we reserve the right to kill your processes without warning. These servers mount the Lustre and NFS file systems, have 64 GB of RAM and 2 Intel Xeon E5-2640 processors, each with 12 processor cores, as well as NVidia Tesla K20m GPU cards. For security reasons, these servers do not have IP addresses visible from outside the CHPC. However, they can be accessed via the login node by means of SSH tunneling. Although it is possible to perform remote visualization by means of X-forwarding (log in with “ssh -X”), this approach is generally too slow to be of use if the user is not on the internal network. It is therefore preferable to use a remote desktop. However, standard VNC is too slow for this and does not work properly with OpenGL, the library mostly used for 3D graphics. The visualization server has been set up with TurboVNC and VirtualGL, which gets around both of these problems. Use the following process for remote visualization:
There is a default VNC server installed on chpcviz. Do not use it. Use TurboVNC, which can be started with a command like this:
/opt/TurboVNC/bin/vncserver :3 -geometry 1920×1080 -depth 24
However, the default startup script that TurboVNC supplies for your X-Windows session is faulty. We are working on providing a better default, but in the meantime, please use the following interim work-around:
cp xstartup xstartup.turbovnc
exec /opt/VirtualGL/bin/vglrun /bin/mate-session,
exec /opt/VirtualGL/bin/vglrun /bin/xfce4-sessionor
exec /opt/VirtualGL/bin/vglrun /bin/gnome-sessiondepending on the your favored choice of desktop environment. Both mate and xfce4 work particularly well.
A typical xstartup.turbovnc file looks like this:
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS exec /opt/VirtualGL/bin/vglrun /usr/bin/mate-session #exec /opt/VirtualGL/bin/vglrun /usr/bin/xfce4-session
More than one VNC session can be run simultaneously. In this example, two other sessions are already running, therefore :3 is used to specify that this will be a session on virtual display 3. If this is unavailable, try :4, etc. Optionally specify an appropriate display resolution and colour depth, as in the above example. If you get a warning of unsupported resolution, try one of the standard resolutions. The port number used for a VNC session is 5900+n , where n is the number of the display. In this example, the VNC session will be served on port 5903.
The vncserver will continue running even after logging out. If you are no longer going to use it, please kill the server as follows:
/opt/TurboVNC/bin/vncserver -kill :3
where :3 should be changed to whichever display the server has been running on.
You cannot log into chpcviz1 directly from outside CHPC's network. However, it is easy to set up an ssh tunnel to it. There are a number of ways to set up such a tunnel:
This is an example of the command:
ssh -f firstname.lastname@example.org -L 5903:chpcviz1:5903 -N
Any VNC client can be used to connect to the TurboVNC server on chpcviz1. However, to take full advantage of the higher speed and configuration options of TurboVNC, use the TurboVNC client as well. It can be downloaded from http://sourceforge.net/projects/virtualgl/files/TurboVNC/ . The Windows installer includes a customized version of PuTTY. Once TurboVNC has been installed, run the PuTTY in the TurboVNC installation directory. In the left pane, expand the SSH option, and click on Tunnels. Add the port number for your local host in the source port box, and chpcviz1:5903 (use the port number that your VNC server is using) in the destination box.
Now click on “Add”.
Log in with your usual user-id and password.
If you haven't done so already, install the TurboVNC client, either from http://sourceforge.net/projects/virtualgl/files/TurboVNC/ or from a repository for your version of Linux. Start the TurboVNC Viewer client, and specify localhost::5903 (or whichever local port number you have selected) as the VNC server. The documentation recommends using double colons and the full 590* number, but this also works:
Click on connect and log in with the VNC password you provided when starting the VNC server for the first time.
You should now get a remote desktop:
Clicking on the top left corner will open an “Options” menu:
Experiment with the various settings. You can trade off quality for speed. On a slow connection, use fast low quality settings to set up the scene, then request a “Lossless refresh” to get a high quality image.
3D programs (Paraview, for example) mostly use OpenGL. In a normal VNC session, OpenGL is most likely to throw an error, or at best run with software rendering. In order to take advantage of the graphics processing hardware on the server, it is necessary to run OpenGL programs with the VirtualGL “wrapper”. For example:
/opt/VirtualGL/bin/vglrun /apps/chpc/compmech/CFD/Paraview-4.3.1-Linux-64bit/bin/paraview &
will run a recent version of Paraview. If you have started up your X-windows session with the vglrun wrapper as per the first time instructions given above, it is not necessary to use it when starting the OpenGL application. The following $HOME/.vnc/xstartup.turbovnc file makes life easier. Pre-loading the right version of the OpenGL library also ensures that software that might have linked to a VirtualGL-incapable library is forced to link to a working version of the library.
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS # Comment out the next line if you don't want the mate desktop exec /opt/VirtualGL/bin/vglrun /bin/mate-session # Uncomment the next line if you want to use the xfce4 desktop #exec /opt/VirtualGL/bin/vglrun /bin/xfce4-session
/opt/TurboVNC/bin/vncserver -kill :3
will shut down the VNC server for display 3, freeing up resources for other users.