Paraview
Running Paraview in parallel on the Vienna Scientific Cluster
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:
Submitting a batch job
First connect to the login node of your university
# ssh <user>@vsc5.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).
Starting the SSL tunnel
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
Connecting the client
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 → Add Server
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 Configure. In the 'Configure Server' window, for 'startup type' select Manual and klick Save.
Now select the newly created server and click Connect. 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.