Using the BRC Visualization Node with RealVNC

The purpose of this document is to explain how to set up and use a graphical user interface (GUI) desktop environment on Savio.

Overview

The remote desktop allows users to run a real desktop within the cluster environment. This is very useful for users who require to run scientific applications with a GUI seamlessly on the cluster, especially some commercial applications, or visualization applications to render results. It also allows users to disconnect and resume from anywhere without losing the work. The remote desktop service is provided with the RealVNC solution.

Usage Instructions

To access the service please follow these steps:

  1. Download and install the RealVNC viewer for your platform of choice.
    • Download the VNC Viewer from here.
    • Alternatively, you can download a VNC Viewer extension for the Chrome browser here to launch the viewer directly from the Chrome browser.
  2. Start the VNC server on the dedicated viz node and record your DISPLAY ID.
    • If you are connecting from within the cluster, for example, if you already have a login session on one of the login nodes, please use the internal hostname, i.e.,
         ssh viz
    • If you are connecting from outside of the cluster, please use the external hostname, i.e.,
         ssh <username>@viz.brc.berkeley.edu
    • Once on the viz node, start the VNC server with “vncserver”. You should see something like:
      -bash-4.1$ vncserver
      VNC(R) Server 6.2.0 (r29523) x64 (Aug 3 2017 17:27:11)
      Copyright (C) 2002-2017 RealVNC Ltd.
      RealVNC and VNC are trademarks of RealVNC Ltd and are protected by trademark
      registrations and/or pending trademark applications in the European Union,
      United States of America and other jurisdictions.
      Protected by UK patent 2481870; US patent 8760366; EU patent 2652951.
      See https://www.realvnc.com for information on VNC.
      For third party acknowledgements see:
      https://www.realvnc.com/docs/6/foss.html
                        

      On some distributions (in particular Red Hat), you may get a better experience
      by running vncserver-virtual in conjunction with the system Xorg server, rather
      than the old version built-in to Xvnc. More desktop environments and
      applications will likely be compatible. For more information on this alternative
      implementation, please see: https://www.realvnc.com/doclink/kb-546

      Running applications in /etc/vnc/xstartup.custom

      VNC Server catchphrase: "House compass horizon. Betty lark Pacific."
                    signature: 44-d7-58-35-1e-9e-2f-53

      Log file is /global/home/users/<username>/.vnc/viz.brc:4.log
      New desktop is viz.brc:4 (136.152.224.36:4)

    • This last line contains the port number (your DISPLAY ID) that you will use to connect to this vncserver that you have just launched, please remember it.
    • In the above example output, the DISPLAY ID is 4.
  3. Connect to the VNC server with VNC Viewer on your local platform.
    • Launch VNC Viewer or launch Chrome and start the VNC Viewer extension.
    • If you are using the VNC viewer application, you should see:VNC viewer application window
    • If you are using the VNC Chrome extension, you should see:VNC Chrome extension window
    • In the “VNC Server” field at the top of the screen, please enter "viz.brc.berkeley.edu:DISPLAY" (without quotes) and replace "DISPLAY" with the actual DISPLAY ID that you obtained from the last step, for example, viz.brc.berkeley.edu:4. You can leave the other options on their default settings. Now, please press the ENTER key or the CONNECT button.
    • After clicking the "Connect" button, a window should pop up to prompt you for your username and password:
      Username and Password window
    • Please fill in your cluster username and the PIN+password generated from your OTP device the same way you would to log into Savio. Check that the “signature” matches the one in the output of the vncserver command. If it does not match, you may be using the wrong DISPLAY number.

After following these steps you should be able to see a VNC Viewer window with an xterm window running, it will look like this:

VNC Viewer window

This is the default environment and you can start running your GUI applications.

If the desktop is too small for your application, you can change the geometry when starting the VNC server. The proper option is -geometry <Width>x<Height>, e.g., vncserver -geometry 1024x768.

Program Examples

Typically, programs need to be started up from the command line. As with batch and interactive jobs, the appropriate modules must be loaded before the program can be launched. See below for examples of starting VisIt and matplotlib.

Starting a Web Browser

You can start a browser by running either of the following from an xterm window:

/global/scratch/kmuriki/firefox

/global/scratch/kmuriki/otterbrowser

Starting Visit

To use VisIt, load the VisIt module with the command module load visit and then start the program with the command visit as shown in the following screenshots:

VisIt commands

VisIt GUI windows

Using Matplotlib

Matplotlib can be used to plot and display figures, but it must be done from within Python.
First, load your desired Python version with module load python/x.y (where x.y is replaced with the appropriate version number). Then, start Python and import matplotlib as desired. Example commands are shown in the following screenshot.

Python matplotlib commands and window

Ending the Session

When you are done using the remote desktop, please shut it down properly to release resources for other users. Simply closing the VNC Viewer does not clean the resource on the server. To properly do so, if you are using the Openbox window manager, right click at an empty space within the VNC Viewer window, then click "Log Out" and the vncserver will be shut down:

Alternatively, to end your vncserver session from within the BRC infrastructure, log back onto viz.brc.berkeley.edu and enter the command

vncserver -kill :<port number>

Following the example given above, this command would be:

vncserver -kill :4

If you have any questions about using the visualization node or run into any issues in the process of using the visualization node, please contact us at brc-hpc-help@berkeley.edu.