Accelerating Remote X Performance on DaVinci Using NX

Overview
Installing the NX Client

      Downloading the NX Client
      Downloading the Key File from DaVinci
      Setting Up the NX client
Using the NX Client
      Starting the NX Client
      Connecting to DaVinci
      Terminating the NX Client
      Changing the NX Client Configuration

Overview

In past NERSC surveys, users complained about poor network performance for interactive, GUI-based applications, or stated that they did not use NERSC resources for interactive GUI-based applications due to poor network performance.

In order to address these concerns, we evaluated alternatives to X11 tunneling/compression via ssh in order to alleviate X11 performance problems caused mainly by high network latency to remote locations. The X11 protocol was designed for local area network connections. Because of this fact, several design decisions led to poor performance over wide area network connections. In particular: (i) the X protocol is very verbose, requiring comparatively large amounts of data to be sent over the network, and (ii) many operations require a 'handshake' between client and server leading to long wait times on high-latency links before an operation can be completed.

After evaluating several technologies, we chose to implement NX from NoMachine Inc. The base implementation of the server-side code is open source, and clients for several platforms (Linux, Mac OSX, Solaris, and Windows) are available from NoMachine's Web page (http://www.nomachine.org/).

At this time, the NX server software has been installed only on DaVinci, which is the primary NERSC system supporting analytics and visualization applications.

If you experience any difficulties using NX, please send email to consult@nersc.gov.


Downloading the NX Client

Note: if you are using a Linux platform, an NX client may be included with your Linux distribution. Before using the already installed NX client, check that it is from NoMachine and that it is v. 3.2 or newer. If it does not meet these criteria, then follow the instructions below to download an NX client from the NoMachine Web site.

  • Go to http://www.nomachine.com/download.php.
  • In the NX Client Products section, click on the green arrow next to your platform. There are NX clients for Linux, Mac OSX, Solaris, and Windows platforms.
  • On the next window, click on the green arrow next to your platform version e.g., "NX Client RPM for Linux - x86_64".
  • Follow the installation instructions.
  • Note: You do not necessarily need root access to install the NX client. Depending on which client software you download, you can unpack it in your home (or other) directory. Please consult with your local system administrator as necessary.

Downloading the Key File from DaVinci

You will need to download a key file from DaVinci to your machine (e.g., to your desktop or home directory). One of the configuration steps below, requires you to import the key file into your local NX configuration. The location of the key file on DaVinci is /usr/common/graphics/NX/DaVinci.key. As noted in the configuration step below, you should delete the key file after the Import and Save steps.


Setting Up the NX Client
 
  • Start the NX client.
  • Click the "Next" button in the configuration wizard window.  
     
  • Enter "DaVinci" as "Session" and "davinci.nersc.gov" as "Host". Leave "ADSL" selected as the type of internet connection.  
     
     
     
     
     
     
     
     
     
     
     
  • Click the "Next" button.
 
 
  • Leave "Unix/KDE" selected as session type. (Note: To save computational resources for actual data analysis your remote desktop will use fvwm as the window manager regardless of your chosen session type.)
  • If you would like a fixed screen size, select it here; otherwise, you will be able to select "Available area" in a later step.  
     
     
     
     
     
     
     
     
  • Click the "Next" button.
 
 
 
 
 
 
 
  • Select the "Show the Advanced Configuration dialog" checkbox and click "Next". (Note: Depending on your platform there may be addional checkboxes, e.g., the option to create an icon for the connection on the Desktop.)  
     
     
     
     
     
     
     
  • Click the "Finish" button.
 
 
 
 
 
 
 
 
 
 
  • Click the "Key" button.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Click the "Import" button.  
     
  • Using the file browser (not shown), select the "DaVinci.key" file that you saved to your machine in the Downloading the Key File from DaVinci step above.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Click the "Save" button on the "General - Key management" window.  
  • Delete the "DaVinci.key" file immediately or make sure that permissions are set so that only you can access it.
 
 
 
 
 
 
 
  • Do NOT select "Remember my password". The NX client saves the password in an insecure way!  
     
     
     
     
     
     
     
     
     
  • Choose "Available area" in the "Display" section, or select a fixed resolution if you prefer.  
     
     
     
     
     
  • Click the "Ok" button.
 
 
 
 
 
 
 
 
 
 
 
 
 
  • Choose "Yes" when asked whether to save your configuration.
  • At this point you will have the option to connect to DaVinci. See the Connect to DaVinci section below.

Starting the NX Client

Depending on your platform, you either can launch the NX Client by clicking on the NX icon, or else by typing "nxclient" on the command line (assuming that you have added the path to the executable to the PATH environment variable, e.g., for a Linux installation, add /usr/NX/bin to the PATH environment variable).


Connecting to DaVinci
 
  • Enter your NERSC username and password in the "Login" and "Password" fields. Select "DaVinci" as session type, if it is not already active.  
     
     
     
     
     
  • Click the "Login" button.
 
 
  • A window with a remote desktop will open. An xterm shell will be started when the desktop opens. Additional shells can be started by clicking on the "Shells" button.  
     
  • FreeNX always uses fvwm as the window manager, regardless of whether you choose KDE or Gnome as session type. We implemented this behavior to conserve computational resources on DaVinci for actual data analysis.

Terminating the NX Client
 
  • To terminate your session on DaVinci, click the "fvwm" button in the upper left screen corner and choosing "Exit" from the drop-down list.

Changing the NX Client Configuration
 
 
 
 
 
 
 
  • To change any of the configuration parameters, start the NX client, and then click the "Configure" button to bring up the configuration GUI. Click on the tab of the group of parameters that you want to change.

printable page with smaller figures Gunther Weber, May 22, 2008; revised October 31, 2008    
 
top of page