Paraview on Cooley

Set Up User Environment

The recommended way of running ParaView on Cooley is in client/server mode. This consists of running the ParaView client on your local resource, and the ParaView server (pvserver) on the Cooley visualization nodes. The most recent production version currently installed on Cooley is ParaView  4.3.1. This should first be installed on your local resource. Binary and source packages for Linux, MacOS, and Windows are available from the ParaView Download Page. (Run the 'softenv' command on a Cooley login node to see earlier versions of ParaView that are available, currently version 4.1.0. Your local version should match the version that you run on Cooley.)

To put ParaView in your environment on Cooley, add the following line to your ~/.soft.cooley file

NOTE: This must go before the @default entry.

 @paraview-4.3.1

Then run the command "resoft".

In order for ParaView to take advantage of the accelerated graphics on Cooley, the DISPLAY environment variable needs to be set to the local X server. This can be done by adding a few lines to the configuration file that sets up your default shell on Cooley.

Bash users should add the following to your ~/.bashrc file on Cooley:

NOTE: Be careful to ensure that the characters around the word hostname are backticks, and not single quotes, especially if cutting and pasting the text.

 if ( echo `hostname` | grep -sq 'cc' ); then
   export DISPLAY=:0.0
 fi

Csh/Tcsh users should add the following to your ~/.cshrc file on Cooley:

NOTE: Be careful to ensure that the characters around the word hostname are backticks, and not single quotes, especially if cutting and pasting the text.

 if(  `hostname` =~ '*cc*' ) then
   setenv DISPLAY :0.0
 endif

This will tell any process that runs on a visualization node to use display :0.0 (without changing any settings you may have set on the login node). This means that there can only be one pvserver process per node, even though each node has 2 graphics cards. 

 

Start the ParaView Server

In order to connect the ParaView client to a running pvserver, you need to know the host (and port) where the server is listening. This will be the head node of the job. There are several ways to do this, but probably the easiest is to submit an interactive job, starting from a shell on a Cooley login node:

  cooleylogin2:~> qsub -I -n 4 -t 60 -A project_id --attrs=pubnet

The -A project_id is required only if you have multiple projects. By default the visualization nodes have private IP addresses. The --attrs=pubnet argument will bring up the public interface on the nodes in your job so that you can connect directly to the head node of your job (where the pvserver will be listening). When the job starts, you will automatically be logged into the head node of your job. Be sure to take note of the hostname of the host that you end up on, as you will need it in order to connect your ParaView client to the pvserver.

We manually run the mpiexec command to start pvserver:

  cc018:~> mpiexec -f $COBALT_NODEFILE -np 4 pvserver --server-port=8000
  Waiting for client..
  Connection URL: CS://cc018:8000
  Accepting connection(s): cc018:8000

Because of the current display settings, you should run 1 process on each node. So the -n value passed to qsub and the -np value passed to mpiexec above should be the same. Otherwise, multiple processes on the same host will step on each other while trying to access the same graphics card.  The server-port should be in the range of 8000 - 8008.

Once the pvserver is running, and is "Accepting connection(s)" as shown above, you can connect to it from the ParaView client on your local resource. To do this we will need to set up a server configuration in your local ParaView client (Details below.) 

 

Start ParaView Client

You should now launch the ParaView client on your local resource. In order to connect to our running pvserver, we will need to configure some server settings in the client. This initial set up should only need to be done once, and can be reused each time you run ParaView on Cooley.

 

Server Configuration

Connect Icon

Select Connect

From the ParaView client choose to connect to a server by either clicking on the "Connect" icon in the menu bar, or selecting:

File->Connect

From the main menu.

Select Connect
 
Add (or Edit) Server

The first time we connect our local ParaView client to a pvserver on Cooley, we need to Add Server. Once we set up this server, we can reuse it each time we connect the ParaView client to the pvserver on Cooley. We may need to Edit Server in the future if our pvserver ends up on a different host.

Click "Add Server" (first time) or "Edit Server" (subsequent times)

Add (or Edit) Server
Configure Server, Part 1 

Configure the server by first giving it a Name, such as Cooley

Select Server Type: Client/Server

The Host value should be set to the full name of the head node of our job where the pvserver is listening: cc018.cooley.pub.alcf.anl.gov

And the port should be set to the value we used when we started the pvserver: 8000.

Click "Configure"

ParaView Server Configuration
Configure Server, Part 2

Because we are going to connect to a ParaView server that we have already started, we don't need the ParaView client to start a server for us.

Select Startup Type: Manual

Click "Save"

Configure Server (Part 2)
 
Connect

Now that we have a server defined and configured, highlight it in the list.

Click "Connect"

Select ParaView Server

Now when you select File->Open from the main menu, you will be browsing the filesystem on Cooley.