Running client-server

The best way to run VisIt is client-server. This means that you run the VisIt clients on your local desktop computer while also having VisIt components that process the data remotely on another computer where the data were generated. This approach lets you leverage hardware accelerated graphics on your desktop computer while also processing data in parallel on a remote computer so data do not have to be moved.

By running the VisIt GUI locally, you get other benefits:

  1. VisIt is faster since it does not incur network latency when you interact with it.
  2. X-server software is not used or needed.


Setting up Client-Server

Installing VisIt with proper Host Profiles

Make sure that you select host profiles when you install VisIt. Host profiles contain information that tell VisIt how to access its compute server on remote computers, telling VisIt where to find executables, which machines to log into, how to run in parallel, etc.


Windows

If you use Windows, be sure to select a Network configuration when you install VisIt. If you access LLNL computers, select the LLNL Open network configuration.

SetupNetworkConfig.png


Linux

The visit-install script provides command line options to select select host profiles.

Use visit-install --help to see a list of options:

Usage: visit-install [-c anag | anl | llnl_open | llnl_open_rz | llnl_open_cz | ...]

OSX

If you are using the VisIt application bundle, when you first run a setup dialog will appear to help you install host profiles:

OSXFirstTime.png

You can also access this dialog from the Options Menu, by selecting "Host profiles and Configuration setup".


If you do not select any host profiles then VisIt will not have any additional hints about how to log into remote computers.

Additional configuration

Client/server setup does sometimes require a little bit of additional configuration to make things work properly.

Change your username

By default, host profiles will contain the username for your local desktop computer. Since that username is often different from your username on the remote computer, it is best to edit the host profiles for the remote computer so they will use the proper username. This will prevent you from having to change the username each time you want to log into the remote computer.

  1. Alter host profiles so they contain your 'username' for the computers you will access. It is best to change it for all LLNL computers. The Host Profiles window can be accessed from the Options menu in the VisIt Main window.
  2. Save your settings.

HostProfileUsername.png

RZ systems

LLNL has compute systems on a network called the RZ, which is limited to a subset of LLNL users. Access to the RZ network is controlled by a gateway host and this fact is reflected in VisIt's host profiles for RZ computers. VisIt can tunnel SSH connections through a gateway computer but it requires that you have passwordless SSH set up from the gateway computer to the host where you ultimately want to run VisIt.

Setting up passwordless SSH between the RZ gateway and the RZ computers is relatively straightforward. You'll need to edit the ~/.ssh/authorized_keys file for the gateway computer so it contains the contents of the ~/.ssh/id_rsa.pub file from one of the RZ computers.

  1. Log into rzzeus
  2. Examine the files in your .ssh directory ls .ssh
  3. If there is no file called id_rsa.pub then type ssh-keygen. If prompted for a pass phrase, just press the Enter key.
  4. Append the resultant public key id_rsa.pub to authorized_keys file. cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

Now that you've made the changes, exit rzzeus so you're back at the gateway computer. Try logging into rzzeus again. If you have followed the procedure completely then you should not be asked for a password.

Please contact LC if you follow these instructions and passwordless ssh between the gateway and RZ compute clusters fails to work.

Windows systems

The above procedure for setting up passwordless access from the RZ gateway to the RZ computers is required on all platforms. Sometimes though when you try to run from the gateway to the RZ computer, you might be asked yes/no questions about whether you want to connect. This typically happens when you log into a remote computer for the first time, or the first time you log in using a particular hostname. Whatever the case, it's best to log into the remote RZ computer once using normal SSH before attempting the connection in VisIt. This will cause the yes/no connection question to be asked where you can answer it. It is important to remember that VisIt will use the long form of a host name (e.g. rzalastor.llnl.gov) as opposed to the short host name that you might use (e.g. rzalastor).

It is important for you to log in using the long host name so subsequent VisIt connections being made to the same RZ computers will work without the yes/no question being asked.

Here is an example command you can use to test passwordless hop between rzgw and rzzeus:

  1. ssh UNAME@rzgw ssh UNAME@rzzeus.llnl.gov pwd
  2. When prompted, enter your RZ cryptocard password and you should see the path to your home directory printed without any additional passwords or prompts.

Again, if you encounter a "yes/no" SSH connection question, entering "yes" should store this setting so subsequent connections will only require the cryptocard password.

See SSH on Windows for more information about setting up SSH on Windows.

Bug Fix for VisIt 2.5.0

VisIt 2.5.0 built the qtssh.exe SSH program as a Windows application instead of as a Windows console application. Apparently, this caused problems when connecting to the RZ. Get a new version of qtssh.exe to solve the problem. Simply download the new version of the program and copy it into your VisIt installation over the old version of the qtssh.exe program.

  • VisIt 2.5.1 corrected the problem.
Most recent issues between Windows and RZ

(As of Sep 4, 2015) The above test for passwordless hop between rzgw and rzXXX may not be sufficient.

If after verifying the hop, you still have trouble connecting VisIt to RZ, try this:

Open a command prompt in VisIt's install location, and type the following command:

qtssh.exe -t -v UNAME@rzgw.llnl.gov ssh UNAME@rzXXX pwd

('-v' for 'verbose', so qtssh prints out more information, '-t' to enable pty allocation and to see the 'yes/no' ssh connection question.)

Again, if you encounter a "yes/no" SSH connection question, entering "yes" should store this setting so subsequent connections will only require the cryptocard password. This is stored in ~/.ssh/known_hosts on rz, for use by rzgw. Generally, the "yes/no" will be for the particular RZ machine, not the gateway.

You may also want to do the verification with use the full path to rzXXX as specified above: rzXXX.llnl.gov

Since this step stores individual rz machine creds in ~/.ssh/known_hosts, you will need to repeat the step for every RZ machine you wish VisIt to connect with.

Using Client-Server

Accessing files

Use the Open Files dialog to open files as you normally would, except that you should first select the host for the computer where your data resides.

FileDialog.png

Accessing files via the command line

Users often will log into remote computers and display VisIt back via X11 simply because they have complex directory structures containing many runs of simulation data. It is possible to tell your local VisIt to access remote files on the command line as you would for local files. You just need to use the -o option.

visit -o host:/path/to/data/file.ext

Entering Passwords

When VisIt connects to remote computers, and SSH needs a password, VisIt will display a password dialog. You would enter your password for the remote computer so VisIt can continue connecting to invoke its remote programs. If the displayed username for the remote computer is not correct then you can click the Change username button to open another dialog that lets you change your username. Once you've changed your username, you will again be prompted for a password.

  • You can edit your username in the Host Profiles Window to avoid having to change the username each time you log into the remote computer.

PasswordDialog.png

If you make a mistake or wish to cancel the program launch, you can Cancel out of the password dialog and then Cancel the VisIt component launch.

Selecting a file

Once VisIt connects successfully to the remote computer, you will be able to browse the file system in VisIt as though you were browsing a local file system. Find the data that you want to open, click on the file, and click the Ok button.

SelectRemoteFiles.png

Selecting a Host Profile

On computers having one or more host profiles, VisIt will prompt you which host profile you want to use once you open the data file. VisIt uses the host profile you select to launch the compute server. For example, if your remote host has profiles for serial and parallel and you choose the parallel host profile, VisIt will take the required actions needed to launch a parallel VisIt compute server on your system.

SelectHostProfile.png

Trouble Connecting

Sometimes, you might have trouble connecting to remote computers using client/server mode when using them for the first time. This often boils down to network configuration problems. VisIt tries to mitigate this by providing host profiles for commonly used systems and making sure that those profiles use SSH tunneling to bypass common network problems such as misconfigured hostnames, restrictive firewalls, etc.

When you can't connect, running VisIt with debugging logs can often shed some light on the nature of the connection failure. To run VisIt with debugging logs, type the following when you invoke the VisIt command:

visit -debug 5

Debug logs will have a .vlog suffix. When diagnosing connection problems, you should find some A.vcl*.vlog files on the remote computer if the VisIt commands were successfully run. It's often the case that you'll get this far but then something on the local client side prevents the remote VisIt programs from connecting back over the TCP/IP sockets.

Hung Connection

Sometimes you think you've done everything right and VisIt still fails to connect to the remote computer, making VisIt look hung. On Mac and Linux, by default VisIt will attempt to open the ssh command in a pseudo-terminal, which is an offscreen terminal. When VisIt sees a request for a password in the pseudo-terminal output, VisIt pops up the Password dialog so you can enter your password. In certain rare situations, it is possible for this infrastructure to fail.

  1. VisIt cannot create a pseudo-terminal
  2. SSH has gotten into a state that causes a critical prompt for input and VisIt's code to deal with SSH prompts does not handle it. The VisIt team needs to know about these errors ASAP.

In either of these situations, it can be advantageous to run VisIt from the command prompt with the -nopty argument:

visit -nopty

On Mac you could type this command into Terminal:

~Desktop/VisIt.app/Contents/Resources/bin/visit -nopty

When VisIt gets the -nopty command line option, no pseudo-terminal is allocated and all SSH messages and prompts are output to console. You would enter your password as well as any other required inputs at the prompts in the console window. If SSH is the point of failure for whatever reason, running without a pseudo-terminal will let you see what questions are being asked.