NERSCPowering Scientific Discovery Since 1974


January 31, 2017


ParaView is an open-source, multi-platform data analysis and visualization application. ParaView users can quickly build visualizations to analyze their data using both qualitative and quantitative techniques. The data exploration can be done interactively in 3D or programmatically using ParaView's batch processing capabilities. ParaView was developed to analyze extremely large datasets using distributed memory computing resources and can be run on supercomputers to analyze terascale datasets, as well as on laptops for smaller data.

Remote Visualization with ParaView

ParaView is a client-server application. The ParaView client (or simply paraview) will run on your desktop while the server will run at the remote supercomputing site. The following describes the steps you will take to install ParaView on your desktop and configure it so that you can launch parallel jobs on remote systems from within the ParaView GUI. Running ParaView remotely in a client-server configuration involves establishing an ssh tunnel to the login node, launching the ParaView server, and connecting the server to the client over the tunnel via a socket.

Install the ParaView Client

The first step is to install ParaView. It is recommended that you use the binaries provided by Kitware on your workstation matching the NERSC installed version. This ensures client-server compatibility. The version number that you install must identically match the version installed at NERSC. Use the following link to download the correct ParaView client binary version for your desktop environment: ParaView binaries. Version 3.98.1 is currently the recommended version, however versions 3.98.1, 4.1.0, 4.2.0, 4.3.1, and 4.4.0 are installed on edison.  Currently (as of 2/2017) ParaView is not installed on cori due to a bug in the ParaView batch mode operation.  It will be installed when the bug is fixed.

Install Dependencies

In order to use ParaView remotely you will also need an ssh client and a terminal program. On Linux and Mac this functionality is provided by the ssh and xterm programs, both of which should come pre-installed on most Linux and Mac systems. On Windows the ssh and terminal functions are provided by the programs plink.exe and cmd.exe, of which only cmd.exe will come pre-installed. The ssh client, plink.exe, needs to be installed before using ParaView. This program can be installed using the Windows installer from the PuTTY download site. The PuTTY install folder needs to be added to the system path after the install. This can be done in the Windows control panel, by opening "Control Panel\System and Security\System" , opening the "Advanced System Settings" page, and opening the "Environment Variables" dialog box.

Install the NERSC server config

NERSC provides an integrated server configuration that enables "point and click" ssh tunnel configuration, job configuration and submission, enabling users to quickly launch the ParaView server on NERSC systems.

    1. Close any instances of ParaView running on your desktop.
    2. Download one of the following NERSC server configurations to your workstation. Choose a "win" configuration if you are running Windows. Choose a "unix" configuration if you are running MacOS or Linux.
NERSC System ParaView Configuration Recommended Version
cori cori-unix.pvsc cori-win.pvsc 5.4.1
edison  edison-unix.pvsc edison-win.pvsc 5.3.0
  1. Open the ParaView client and click the Connect button or from the File menu choose connect. In the choose a server dialog box click the load servers button and select the NERSC server config.

The NERSC server configurations will now show up in ParaView's connect menu. 

Launching the server on NERSC systems

  1. Start ParaView on you desktop
  2. Open the File->Connect menu
  3. Select a server (Edison or Cori) and click Connect
  4. Configure the job with number of CPUs, walltime and so on. Click Connect to submit the job.
  5. In the xterm that opens enter your password. This creates the ssh tunnel to the remote system and submits the job.

After a brief wait the newly launched ParaView server will connect back to your desktop. One common issue for Mac users is that ParaView does not find the xterm program. When this occurs, the ParaView client reports "The process failed to start. Either the invoked program is missing...". This is resolved by locating the full path to the xterm program in step 4 above.

1. Open ParaView and select File->Connect from the menu.

2. Select a NERSC system from the Choose server dialog.

3. Configure the run and ssh tunnel options in the server configuration dialog.

4. The Starting server dialog will be shown while the client waits for the server to start and connect back.

5. The server config script will start an xterm allowing you to login to the selected system. The tunnel is established between the workstation the remote system and the job is submitted. This window needs to stay open while you use ParaView.


Static linking vs. shared linking on the Cray

Applications run faster on NERSC's Cray systems when they are statically linked. Unfortunately, static linking poses some issues for ParaView. To work around these issues, NERSC maintains both static and shared ParaView builds on the Cray systems. The shared build is the default, as it's the easiest to use. However, it will have reduced performance and longer start up times compared to the static builds.

We recommend that users use the static build on NERSC's Crays. When doing so, users need to be aware that there are currently two issues with static linking in ParaView. First, OSMesa's llvmpipe OpenGL driver crashes when statically linked into ParaView. Thus when using the static build of ParaView we fallback to the slower less capable OSMesa classic OpenGL driver. The rendering performance hit is completely covered by the speedup in start time achieved by the static build. Second, static builds' plugins are compiled into the ParaView server. For users this means that when they first connect they will encounter a dialog box prompting them to load plugins on the client side. When this dialog box is encountered, users should load the reported plugins so that both client and server have the same set of plugins loaded. If you fail to do so ParaView will crash the first time it renders.

Network connections

If you are connecting over a consumer broadband connection you may get a speed up by using zlib compression. To enable this option, open Edit->Settings->Render View->Server, set (A) Remote Render Threshold checked 0 MBytes , and select (F) Apply presets for consumer broadband/dsl.

ParaView Render View Server settings dialog.

See also these instructions on the ParaView wiki. 

Running in Batch Mode

In batch mode the ParaView server runs on its own without a client executing a python script. Batch mode provides a way to automate common visualization tasks and alleviates the necessity of being present when the job executes. Log in to the desired system, and submit your job using the batch startup script. For example on Edison the sequence of command would be:

$ ssh
$ module load ParaView
$ 4 4 00:30:00 default debug `pwd`/


For more information execute with no command line arguments and an explanation of the required command line argumnets will be printed.

Example ParaView Batch Python Script

 The following ParaView batch script renders a sphere colored by MPI Rank. It can be used for basic testing.

from paraview.simple import *

s = Sphere()
s.ThetaResolution = 128
s.PhiResolution = 128

p = ProcessIdScalars()

rep = Show(p)

lr = p.PointData.GetArray("ProcessId").GetRange()
lut = GetLookupTableForArray("ProcessId",
    RGBPoints=[lr[0], 0.0, 0.0, 1.0, lr[1], 1.0, 0.0, 0.0],

rep.ColorArrayName = 'ProcessId'
rep.LookupTable = lut



See Also

ParaView home page.