[Paraview] Problems with distributed (volume) rendering

Paul Melis paul at science.uva.nl
Wed Sep 19 04:12:58 EDT 2007


Hello,
(warning, long post :-/)

I'm trying to get distributed volume rendering to work with paraview and 
I'm having some problems. I'm pretty new to paraview (although I've been 
using VTK for some time now) and could use a pointer or 2.

Is it at all possible to use the client-server feature to use a compute 
cluster to do volume rendering with paraview? I seem to find some 
conflicting statements about this on the web.
I'm using the CVS version of paraview (mostly because that's what I do 
with VTK and that works fine). Would that hurt in this case, should I 
use the latest stable 3.0.x?

I've got the following setup:
- one desktop machine (running fedora core 4), on which I run paraview 
as client
- a cluster of machines (running some other linux distribution) on which 
I run pvserver
- connection is reverse from server to client, as there is a firewall in 
between. I've verified the connection can be established.

The following steps work as expected:
1. start paraview on my desktop machine
2. use File -> Connect to let paraview wait for a connection from the 
cluster
3. on the first cluster node run
mpirun -np 8 pvserver -rc -ch=<desktop-machine>
4. the connection is succesfully made
5. load in data with File -> Open, in this case a 128^3 structured 
points set stored in a .vtk file on the cluster nodes (from shared 
homedir available on all cluster nodes)

I actually test with a contour filter a.t.m. as volume rendering gives 
an even greater mess than described below.

The following does not work correctly:
6. add a contour filter, with some appropriate iso-value (Filter -> 
Common -> Contour, Apply).  I'm now seeing a black square, roughly where 
the dataset would be (perhaps the screen-space bounding box?) Sometimes 
the view is updated and I now see a mess: 8 axes that are not aligned 
and parts of the isosurface, but it looks like it's one part of the 
whole isosurface that is repeatedly rendered, but at differing 
locations. It does not look like the whole isosurface is broken into 
pieces that are rendered at the wrong position.

I've set the Remote Render Threshold to 0 to always force remote 
rendering (the option is checked as well).
When I use only 1 cluster node (mpirun -np 1 ...) everything seems to 
work fine, both isosurface and volume rendering.

One thing I suspect is that there's a problem with my MPI installation. 
As I was having problems compiling paraview with MPI support (extra 
libraries not linked in) I set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER 
to mpicc and mpic++, respectively. Can this cause problems like this? 
Second thing is that I'm having trouble confirming which implementations 
of MPI there are on my workstation and cluster machines. A mismatch here 
will probably also cause trouble. A final thing I was wondering about is 
wether the client <-> server connection is also using MPI, or if it uses 
some proprietary form of communication?

Thanks for any help,
Paul



More information about the ParaView mailing list