Paraview

A Forward Connection Over an ssh Tunnel

The setup described is for use with a paraview server (pvserver) started via the Sun Grid Engine (SGE) and a paraview client (paraview) running on a remote workstation. Paraview starts a server process on one of the compute nodes of the VSC and connects to other slave nodes in order to distribute the work load among the processor cores. The server process listens on a specified port for a paraview client which has to be manually connected. This can be achieved by establishing a SSL tunnel to the master node where the paraview server process is running.

The procedure is as follows:

First connect to the login server of your university

# ssh <user>@vsc.tuwien.ac.at

Submit a batch job via qrsh (e.g.):

# qrsh -pe mpich 16 -l h_rt=00:30:00 -pty y bash

Now an interactive session will be started on the master node for this job. Assuming the master node is 'r10n01' you will see messages similar to the following:

{Parallel job requests a multiple of 8 slots.}
{Host exclusive access granted !}
{using default project: p70XXX}
[user@r10n01 ~]#

The option

-l h_rt=00:30:00

which, in this example, specifies a runtime of 30 minutes is useful for backfilling the grid engine queue. When, e.g. a highly parallel job is reserving ressources and blocks other queued jobs, then the time until this job would actually start can be used by jobs which fit into the remaining time slot. Furthermore, the option

-pty y bash

is required to have access to SGE environment variables (like NSLOTS or TMPDIR).

Once the session has started the user is connect to the node where the paraview server will be started and the SSL tunnel from the client to this node has to be established. To open a tunnel to the node 'r10n01', type on you client workstation:

# ssh -L XXXXX:r10n01:YYYYY <user>@vsc.tuwien.ac.at

where 'XXXXX' is the port on your local machine and 'YYYYY' is the port on which the paraview server will listen on the job's master node.

Then on the master node start the paraview server with the following command:

[user@r10n01 ~] # mpirun -m $TMPDIR/machines -np $NSLOTS /opt/paraview/bin/pvserver --use-offscreen-rendering --server-port=YYYYY
Listen on port: YYYYY
Waiting for client...

Commonly, the following ports are used:

XXXXX=11111
YYYYY=11112

Now the paraview client can be connected to this server process.

Start the client on your workstation (e.g.):

# paraview &

From the menu select: File → Connect →

In the 'Configure new server' window choose:

Name: VSC
Server Type: Client/Server
Host: localhost
Port: XXXXX

where XXXXX is whatever you have set when establishing the SSL tunnel. Then klick . In the 'Configure Server' window, for 'startup type' select and klick .

Now select the newly created server and click . The connection to the pvserver program should then be established and on the compute node, where it is running, you should see:

[user@r10n01 ~] # mpirun -m $TMPDIR/machines -np $NSLOTS /opt/paraview/bin/pvserver --use-offscreen-rendering --server-port=YYYYY
Listen on port: YYYYY
Waiting for client...
Client connected.
Notes
  • Paraview 3.7 is installed as /opt/paraview/bin/pvserver
  • Paraview 3.6.2 is installed as /opt/paraview/362/bin/pvserver

The version number of the Paraview client has to match the version number of the server. Otherwise one receives an error message like /Process id: 0 » ERROR: In /root/projects/ParaView3/Servers/Common/vtkProcessModuleConnectionManager.cxx, line 690 vtkProcessModuleConnectionManager (0x1a8eee10): Handshake failed. You are probably using mismatching versions of client and server.

  • doku/paraview.txt
  • Last modified: 2017/09/01 13:22
  • by ir