Last Verified : 2023-12-19
This tutorial shows you how to run ParaView with the client running on your desktop and the pvserver tasks executing in parallel on an LC cluster. This tutorial assumes you have already installed a copy of ParaView on your local desktop. If you haven't already, please see our main ParaView page for download instructions. If you are using Windows, you will need to install additional software, e.g. PuTTY, to set up the SSH tunnels.
Please contact the LC Hotline for assistance: lc-hotline@llnl.gov, (925) 422-4531
Overview of ParaView Components for Parallel Usage at LLNL
The figure above shows a pictorial representation of ParaView as run in parallel at LLNL. The client runs on your local desktop and uses your graphics card to display images quickly on your computer. The heavy lifting is done on batch nodes of an LC cluster. Because of the firewalls at LLNL, you will have to establish an SSH tunnel to carry the data from the "listening server" to the client on your desktop. The instructions below will walk you through this setup.
Client-Server Setup
NOTE The version of your desktop installation of ParaView should match the version you are running on the LC cluster.
If you aren't sure what version you are using, you can open the Help > About menu item within the ParaView application. On the cluster, you can run pvserver -V to retrieve the version information. If the versions do not match, you should either load a different ParaView module on the cluster (see our main ParaView page), or install a different version of ParaView on your desktop (multiple versions can exist simultaneously).
1. Allocate Resources
On an LC login node, use the appropriate command to request an interactive job allocation (salloc for systems using Slurm, lalloc for LSF). This is how you reserve one or more batch nodes to dedicate to your pvserver task(s).
You can (and should) use the various option flags to specify details about the job such as the number of nodes, time limits, the partition of nodes to use, and the account(/bank) to charge. For example:
salloc -N 2 -t 60 # Requests 2 nodes for 60 minutes salloc -A foo -N 4 --time-min=2:30:0 # Requests 4 nodes for at least 2hrs 30min, charged to the "foo" account lalloc 2 -W 60 # Requests 2 nodes for 60 minutes
To see a list of available options for this command simply type salloc -h or lalloc -h on the command line. For more in-depth information, you can type man salloc or view the online Slurm documentation.
Please review the LC documentation regarding banks, allocations, and jobs.
2. Start Server(s) and Create SSH Tunnel
Once the nodes are reserved, you will be logged into an interactive command line on the first node in the batch job. Run the LLNL pvserver_parallel script to start the desired pvserver tasks. For example:
pvserver_parallel 16
# Starts 16 parallel pvserver processes
NOTE If the pvserver_parallel command is not found, you may need to run module load paraview first.
You must specify the number of pvserver tasks you want to run. This number is limited by your current job's node allocation. You may run one task per core per node. For instance, if you reserved 2 nodes that have 8 cores each, you could run up to 16 pvserver tasks. Be aware that the number of cores per node may vary between clusters.
You may also pass any options to pvserver_parallel which pvserver would take. (Note that the --force-offscreen-rendering option is included automatically.)
The pvserver_parallel script will print out instructions for creating the necessary SSH tunnel. Below is a sample of what those instructions might look like:
PLEASE READ THIS PART CAREFULLY! IT MAY CHANGE FOR EACH MACHINE! You are on the cluster 'foobar', presumably on the LLNL CZ network. You will need an SSH tunnel FROM your desktop TO this cluster. To create a tunnel, run one of the following ON YOUR DESKTOP machine: For Mac/Linux ssh -L 11111:foobar42:11111 username@foobar For Windows with Plink (PuTTY Link) plink -L 11111:foobar42:11111 username@foobar The command must be run on your local desktop in order to work; Don't try to run it on the LC cluster!
The instructions may be different on the CZ and RZ networks. The commands will also change to include the appropriate cluster name, node number, and your username.
Special Instructions for Windows
While Mac and Linux systems typically have an SSH client and server installed by default, Windows systems do not. In order to create SSH tunnels to or from your Windows system, you will need additional software.
SSH Client
We recommend using PuTTY as an SSH client on Windows. If you do not have PuTTY installed, LLNL users should download PuTTY via the LLNL LANDesk Software Portal (look for a pre-installed application called "Portal Manager"). Otherwise, it is available through the PuTTY download webpage. The PuTTY installation will include PuTTY Link, also known as Plink. This will enable you to use plink commands for SSH connections via the Command Prompt.
3. Connect Desktop ParaView Client
Once you have one or more pvserver tasks running on the cluster, you can connect from your desktop client. Open ParaView on your desktop (if you haven't had it running already). Then, click on the Connect icon, or select File > Connect from the menus.
This will open the connection dialog. The first time you connect from your client, you will need to set up a new server configuration. You should only need to do this once; the configuration will be saved and added to the list.
The screenshot above shows a previously configured connection. If this is your first time connecting from this client, your list will be empty. Click on the "Add Server" button to continue to the dialog below.
Enter the values as shown here to configure the connection. The "Name" can be anything you would like to use to identify this configuration in the future.
Server Type: Client / Server Host: localhost Port: 11111
In the following dialog, set the Startup Type to "Manual", as we will always start the pvserver by hand.
Click "Save", and this configuration will be added to the list.
To connect your client using this configuration, click on the appropriate entry in the list, then click the "Connect" button. Alternatively, you may double-click on the entry.
You will know you have a successful connection when you see the "Client connected" message displayed on the pvserver process terminal, and your named connection in ParaView's Pipeline Browser (instead of it saying "builtin").
NOTE If you see OpenGL errors when you connect, try running module load opt mesa before starting the pvserver.
4. Verify Parallel Setup
The easiest way to verify that you have a successful parallel connection is to look at the Memory Inspector within the ParaView application. If the Memory Inspector panel is not visible, you can turn it on using View > Memory Inspector in the menus.
The Memory Inspector should list both your desktop client and the server nodes you are connected to. You should also see a list of the cores in use under each node.