ug4
Parallel Rendering

General Information about Parallel Rendering


  • There are at least two advantages of the approach introduced in the following: You can utilise the processing power of a parallel machine to render (very) huge data sets, and, if you utilise the same parallel machine which you've used to generate these data sets as "rendering server" also there is no need to transfer the data e.g. on your local workplace computer solely for the purpose of visualisation.


Parallel Rendering with ParaView


Prerequisites: ParaView (client) is installed on your local machine, and ParaView (server; with MPI support) is installed on the machine which is intended as rendering server.

Note
It is important that the version of the client match that of the server!

For a local installation of ParaView on the rendering server see Installation of ParaView (optional).

This mode of running ParaView is also called "Client-Server mode". In client-server mode, one executes the pvserver program on a parallel machine and establish a connection with the ParaView client application on your local workspace computer.

In the following we describe the steps necessary for establishing a so called "reverse connection" (i.e., the server connects to the client instead of that the client connects to the server) from the client running on your local machine to the server running on Cekon, so the recommended way is to start the local client first, and afterwards the remote server (otherwise you might get error messages that the connection was refused; nevertheless it is possible to connect if you are fast enough to start and configure the client (see steps 1 and 2 below) also in this case since the server retries for about one minute to establish a connection to the client).

  1. Start the ParaView program on your local machine as usual. This process is the ParaView client.

  2. Then choose "File -- Connect" (or click the "Connect" icon in the clients toolbar).

    In the "Choose Server Configuration" dialog window popping up click "Add Server" (window title changes to "Edit Server Configuration").

    Fill in the necessary information to define a connection with the ParaView server running on Cekon (the following steps are only necessary for the first time you add a specific server):

    • Name: "cekon" (only descriptive; this is the name that will appear in the "Choose Server Configuration" dialog you can use after finishing this setup for all subsequent connection attempts),
    • Server Type: "Client / Server (reverse Connection)",
    • Port: "11111" (this is the default port; see below for use of other ports).

    Then click "Configure" and choose "Startup Type": "Manual". Click "Save".

    Select the (newly defined) server and click "Connect". A small window appears saying "Establishing connection to 'cekon'", "Waiting for server to connect." <–! Note that the client does not need the servers hostname / address since the client is the active one in establishing the connection. So, the statement in the "Name" field is (and can be) just descriptive. On the other side, if a "forward connection" should be established and where the client connects to the server one has to specify the server by stating its hostname - which can be done in an additional field. -->

  3. Login to Cekon via ssh and start the ParaView server program, pvserver (installed system-wide in this example; you might want to use your own version installed locally to meet the version match mentioned above), specifying that your local machine act as the "client host" (the parameter -ch specifies the "client host"; the option -rc stands for "reverse connection"):

    salloc -n <NP> mpirun /usr/local/bin/pvserver -ch=<yourlocalhost>.gcsc.uni-frankfurt.de -rc --use-offscreen-rendering
    int local(bglp_vertex_descriptor p)
    Definition: parallel_matrix.h:57

    If the server is able to establish the connection to the client it ouputs something like the following:

    salloc -n 16 mpirun /usr/local/bin/pvserver -ch=clever.gcsc.uni-frankfurt.de -rc --use-offscreen-rendering
    salloc: Granted job allocation 21861
    Connecting to client (reverse connection requested)...
    Connection URL: csrc://clever.gcsc.uni-frankfurt.de:11111
    Client connected.

  4. In the "Pipeline Browser" of your client now a symbol for the server you are connected with is visible (instead of the "builtin" server symbol for the local machine on which ParaView (client) is running).

    Now you are ready to load data located on the servers filesystem, not on your local filesystem, i.e., the "File - Open" dialog makes the servers filesystem accesible.

  5. Open a file with data to be visualised and setup your Visualisation Pipeline as usual, and do your visualisation work.

  6. When finished, click the "Disconnect" icon in the clients toolbar - the server process exits automatically, and the server symbol in the clients "Pipeline Browser" is replaced by the (usual) "builtin" server symbol so that all subsequent load commands access the local filesystem (again).

If a ParaView server is already running and listening at the default port, 11111 (or if this port is blocked by a firewall etc.), you have to start the server with the additional parameter –server-port=<portnumber> where <portnumber> is a free (non-default) port number (and of course you have to take this number into account in the "Connection URL" field described above).

<–! A "reverse connection" might be necessary in cases where the server lies behind a firewall etc.-->

For some further documentation see e.g.: