ParaView A Users Experience with Remote Visualization

Parallel ParaView on Plasma 101

Running ParaView for remote visualization is an interesting experience, to say the least. Currently I am running from my home PC, through a router, through the cable modem, over Time-Warners network (now Comcast), through the Defense Research and Engineering Network, to the work, to a graphics cluster called Plasma (nothing but Net).

There are basically three steps that you need to perform to run ParaView in a client-server mode.

  1. Set up your home router to allow access for a specific port. For my Linksys router, it is under the Applications & Gaming tab, then under Port Forwarding tab. There the Linksys router allowed me to set up a port forwarding scheme. I chose port 1920, but only because it is an HD resolution number. There was nothing special about that number.
  2. Assuming that you have downloaded and installed the latest stable version of ParaView (version 2.4.4), start up the ParaView client with the following command. Once that is done, the ParaView client will then wait for the ParaView server to perform a reverse connect (-rc). The server port is specifically identified (--server-port=1920). Finally, substitute in your PC's IP address after the -dsh= option.
    wintel% "C:\Program Files\ParaView 2.4\bin\pvclient.exe" -rc --server-port=1920
  3. Make sure your DISPLAY is set correctly on your graphics cluster (in this case Plasma), and execute the ParaView server.
    plasma% DISPLAY=:0.0     
    plasma% pvserver -rc -ch=aa.bb.cc.dd --server-port=1920

This is a single ParaView Server connecting with a single ParaView client. The performance can be slow. For a small dataset, it can take a long time for updates to occur. By updates I mean not only the rendering window, but also for menus. There were times when nothing was changing during the rendering (that is, I was not moving the camera), but it still took a long time for a menu to come up. Not only that, but expose events (popping a window over the top of the ParaView client and then minimizing that window) caused the ParaView client to spend some time re-rendering the client, its menus, and the rendering window.

Running in parallel on Plasma is easy to do.

plasma% DISPLAY=:0.0 mpirun -np 13 --hostfile ib_hostfile \    
/00/pkg/ParaView-2.4.4/bin/pvserver -rc --client-host=aa.bb.cc.dd \    
--render-module=MPIRenderModule --server-port=1920

OR

plasma% DISPLAY=:0.0 mpirun -np 13 --hostfile ib_hostfile \    
/00/pkg/ParaView-2.4.4/bin/pvserver -rc --client-host=aa.bb.cc.dd \    
--render-module=MPIRenderModule --server-port=1920

Again, the performance can be slow. For a small dataset, the only way I received good performance was when I had it cache the geometry locally on my PC.

There are several errors to avoid:

  1. If the display is set to :0.1, you will see the following error message: One or more of the server nodes cannot access a display. Compositing will be disabled and all rendering will be performed locally. Note that this will not scale well to large data. To enable compositing, compile and run the server with off-screen Mesa support or assign a valid display to all server nodes.
  2. Make absolutely, positively sure that you are running exactly the same version. In this case it is version 2.4.4. Other versions (even 2.4.3) are not guaranteed to work.

External Links

Back to ParaView