Version 8.0.168 of the NX Enterprise Client for Macintosh is known to be buggy, and has problems with closing connections when connecting to remote desktops. Please update to version 8.1.2 or greater instead of 8.0.168.
The X11 Window System can be used to run a program on Biowulf and display the graphics on a desktop or laptop. However, X11 can be unreliable and fail with many graphics applications used on Biowulf. The HPC staff recommends NoMachine (NX) for users who need to run graphics applications.
NoMachine is a graphical client that presents a full virtual Linux desktop to a window on the user's local machine. It offers several features that make it an improvement on the traditional local X11 server model:
The NoMachine enterprise client can be downloaded for MacOS, Windows, and Linux from the vendor's website. Please be sure to download and install the enterprise client. The installation can be either system-wide or for a single user, but administrative privileges are required for the windows version during the first run after installation to set firewall permissions for Windows Defender. Administrative privileges are also required to install the Macintosh version.
Slide 1 appears when opening the Installer. Press Next to continue
Slide 2 is to accept the license terms
Slide 3 determines where the client will install. If run as an unprivileged user, it will install by default in that user's home. If run as an administrator, it will install in Program Files. Pressing Next here will start the install process and show install progress.
Slide 4 indicates that the installation was successful.
Slide 1 is what you see when you open the mounted installed. Click on NoMachine.pkg to continue.
Slide 2 shows the welcome screen of the NoMachine Enterprise Client installer. Press Continue to continue.
Slide 3 depicts the license terms.
Slide 4 shows the screen that is required to agreed to the license terms.
Slide 5 shows the installation size and type that will be performed. Pressing Install here will start the actual installation.
Slide 6 is shown to demonstrate that the installation was successful.
Once the client is installed, launch it by double-clicking on the application icon.
Slide 1: To configure a connection to Biowulf, click on the button labeled "New" as indicated in the slide.
Slide 2:
To start a session on the Biowulf head node, double-click the NoMachine icon. If you have already set up the client, you will see a screen that looks like Slide 3 above. Double-click on the Biowulf icon.
Slide 4: the login screen. In the Username box enter your NIH username, and enter your NIH AD password into the Password box. Please note that it is against NIH security policy to save your password in 3rd party programs like the NoMachine client, and therefore it is important that you do not check the checkbox to save your password in the connection file.
By default, a series of help panels will be shown as you log into NoMachine. The first provides information about how to open the menus to control NoMachine. It is possible to prevent these menus from being displayed at the start of a session by checking the "Don't show this message again" box at the lower left-hand corner. The next panel (slide 6) provides a little more information about what controls each menu item provides. Next, the menu panel (slide 7) allows you to chose whether to display the menu panel as covering all the screen or as a window. We recommend the later as the more flexible option. Finally, you will get a panel (slide 8) to control the display resolution of your virtual desktop.
When these help panels have been displayed, you will see your desktop and it will be possible for you to start using your virtual Linux desktop. You should get a window that looks like slide 9, with a menu bar at the top. Open a terminal window either by using the Applications menu in the upper left-hand corner of the screen, or by right-clicking anywhere on the desktop window to call the pop-up menu and then select "Open Terminal Here".
While it may look like you have your own
Linux desktop to work with, the Biowulf head node where you are running
this desktop services 600-800 users at a time, and therefore it is very
important that you not run computationally demanding jobs on the head node.
To run jobs that are more demanding than a simple job submission, it is best to
open a terminal window and then run the sinteractive
command
(slide 10).
When you run sinteractive
, you will be given an interactive
shell running on one of the compute nodes with any graphical displays
automatically redirected onto the NoMachine virtual desktop. Note that it
may take anywhere from a few seconds to a few minutes for sinteractive to
find a compute node for you to run on and to start a shell for you on that
compute node. You can test this for yourself by calling up a terminal window,
running the "sinteractive" command in it, and then running "glxgears" asi
shown in slide 11.
If you do not get a menu bar at the top of the screen, it is possible to reset your desktop to default by performing the following steps:
xfce4-session-logout
rm -r .config/xfce4
Configuration options are found by going to the upper-right corner (this is a user-selectable option) of the NoMachine window (look for the "peel" effect) or by pressing control-alt-0 (zero). Be careful with the default settings that you don't accidentally press the "close window" icon on Windows by mistake. Opening the configuration menu is below the Windows window control icons.
Session manager: When using sinteractive
to connect to
a compute node and run a program with a graphical interface on the Biowulf
cluster, you may get a warning ( Warning: Tried to connect to session
manager, Could not open network socket
) upon starting the GUI
application. This is a harmless message and can be ignored. To supress this
message, after starting the sinteractive
session, and before
starting the desired program, you can type unset SESSION_MANAGER
.
Exiting: There is a difference between quitting the client and logging out of the current session.
NoMachine is capable of continuing to run a remote session after you close the client. If you use the window close button, or the "disconnect" button in the connection section of the NoMachine window, then your session will not be logged out or discontinued. It will continue running and consuming system resources, and when you log in, you will have to either reconnect to that session or terminate it (users are currently limited to one NX session at a time). Please note that while sinteractive sessions will not be immediately terminated, they will also not be suspended, and they will continue to run and burn time while disconnected. When they reach their walltime limits, any sinteractive sessions will terminate.
To log out and end a session when you are done with it, either click on your
name in the upper right-hand corner of the desktop window and select "Log Out"
from the bottom of the drop-down menu (Slide 1) and then press "Log Out"
in the pop-up menu (Slide 2), or run xfce4-session-logout
from a terminal window. This will completely log you out of that session on
Biowulf.
Slow connection? If your session feels laggy or sluggish, there are two configuration options that may improve the performance of the connection. Both of them are found under the "change settings" section of the "Display" option under the Control Panel activated by clicking in the upper-right hand corner of the Desktop window. In the "Display" menu, as show below, the "Change settings" option is found at the right side of the menu options:
The two options that have the most influence on session responsivity are "Display Quality" and "Resolution". They are controlled by the two sliders at the top of the control panel, as shown below:
It may seem counter-intuitive, but under certain circumstances, maximizing the NoMachine window and then matching the remote resolution to the local window resolution, can actually improve the display responsiveness as well as the display quality. This is because, when the remote display resolution matches the local display resolution, the calculation to convert remote pixel sizes to local pixel size doesn't need to happen and everything is that much faster.