[Paraview] Newbie question about paraview's parallel visualization procedure

Moreland, Kenneth kmorel at sandia.gov
Thu Jul 5 16:03:21 EDT 2007


Raashid,

 

First, let me assure you that ParaView's parallel visualization and
rendering are efficient and scalable.  We have been able to use ParaView
to visualize 6 billion cell grids and have clocked rendering speeds of
over 8 billion polygons per second (albeit with much larger clusters
than you have set up).

 

As far as your problems are concerned, I'm going to have to do a lot of
guessing because I cannot replicate your problem and there are missing
pieces of information.  Looking at your mpirun command, it appears that
the DISPLAY variable is set to the same value on every process.  That
is, all processes in the ParaView server are creating a remote (for
them) X window on 10.101.11.71.  If that is the case, it is very, very
bad.  Basically, that would mean that all of the rendering is being
funneled into one computer.  Thus, instead of actually getting parallel
rendering, you are getting serial rendering plus the added overhead of
moving OpenGL primitives and images across the network plus the standard
overhead of parallel rendering.  Note that because you are only using 3
computers, I would not expect the parallel gains to be much higher than
the natural overhead of the parallel algorithms.  If your computers are
using a standard Ethernet connection, the relatively high latency and
low bandwidth will further erode the parallel gains.

 

The fact that your parallel job is crashing when you have a parallel job
with a sizeable data set suggests that you might not be using parallel
rendering at all.  You can shut off parallel rendering with the 3D view
properties or ParaView will shut it off for you if the server cannot
create the appropriate rendering windows.  When parallel rendering is
shut off, ParaView does the only thing left: funnel all of the geometry
to the client.

 

Verify that you are actually doing parallel rendering.  Start by running
in client/server mode (don't bother with parallel standalone: its
usefulness is basically limited to debugging).  Go to 3D View
Properties, verify that the checkbox next to "Composite" is checked and
move the slider all the way to the left (0 MBytes).  If everything is
working right, parallel rendering should now always be used.  The
easiest way to verify that is to observe the subsampling, which only
happens on interactive rendering when rendering in parallel.  Make sure
that the checkbox next to "Subsample Rate" is checked and move the
slider to the right to 4 Pixels or more.  Now when you rotate your 3D
rendering, it should look pixilated.

 

Offhand, I cannot think of another reason for your memory failures.  I
just used the Wavelet source to create a 125,000,000 cell structured
mesh on three nodes of our visualization cluster (each with 1 MB each),
then created 5 isosurfaces (~7.4 million cells and ~3.7 points) and
rendered it just fine.

 

One last piece of advice: don't run D3 on your structured data.
ParaView can balance your structured data without any help.  D3 is
designed for unstructured data.  The first thing it will do is convert
the structured data to unstructured, which is a much less efficient
representation.  It makes more sense to run D3 on the output of the
contour filter, but that is probably not worthwhile unless the contour
is very big and very unbalanced.

 

-Ken

 

________________________________

From: paraview-bounces+kmorel=sandia.gov at paraview.org
[mailto:paraview-bounces+kmorel=sandia.gov at paraview.org] On Behalf Of
Raashid Baig
Sent: Thursday, July 05, 2007 12:25 PM
To: paraview at paraview.org
Subject: [Paraview] Newbie question about paraview's parallel
visualization procedure

 

I am a newbie to parallel visualization and ParaView in general, I
have some doubts which may be very fundamental.  

I am using ParaView2.6.X and trying to do some performance analysis
and dataset limit of ParaView in general as a part of an academic
project. I want to see what are the gains in CPU & memory usage and
time required to render a particular dataset when ParaView is run in
parallel. All machines are Intel Core Duo 2, 2GB DDR2 RAM, and 2GB
swap, all machines have NVidia 7series graphics cards and have
Debian/Ubuntu Linux

I have structured data-sets with point attributes in form of VTK
legacy files.  When I run paraview in stand-alone mode on a single
machine, I am able to draw 5 iso-surface for structured grid datasets
upto 5 million points. But when I put the same VTK legacy files on 3
different computers (all have ParaView 2.6.X installed) and run
ParaView through LAM/MPI in distributed stand alone mode (as described
in the ParaView book) on these 3 machines, the performance decreases
for the isosurface case. Not only does the time taken to render final
image, cpu/memory usage increase, I am only able to visualize till 1
million grid points. After 1 million point the get an error (this
particular error is for a dataset of 2 million) :

raashid at ged:~/src/cvs/paraview-unix/bin$ mpirun -np 3 -x
DISPLAY=10.101.11.71:0.0 ./paraview
ErrorMessage
# Error or warning: There was a VTK Error in file:
/home/raashid/src/cvs/ParaView/VTK/Common/vtkDataArrayTemplate.txx (266)
vtkIdTypeArray (0xe041768): Unable to allocate 59135376 elements of size
4 bytes.
ErrorMessage end
------------------------------------------------------------------------
-----
One of the processes started by mpirun has exited with a nonzero exit
code.  This typically indicates that the process finished in error.
If your process did not finish in error, be sure to include a "return
0" or "exit(0)" in your C code before exiting the application.

PID 16283 failed on node n0 (10.101.11.71) due to signal 11.
------------------------------------------------------------------------
-----

I get the same error as above if I use a D3 filter before applying the
iso-contour.


Following the ideas of a technical report I tried to open the VTK
legacy file when ParaView server was running on 3 different computers
and the client was running on a different computer, apply the D3
filter and then save the file as PVTK unstructured grid format
(*.pvtu, with 1 ghost levels), close the paraview, start a fresh
paraview session with the same configuration (ParaView server was
running on 3 different computers and the client was running on a
different computer) load the master *.pvtu file and do the same
iso-contour example as above, the server again crashes and displays
the following error.(this particular error is for 2.5 million grid
points)

On the server side I get the message :
------------------------------------------------------------------------
------
raashid at ender:~/src/cvs/paraview-unix/bin$ mpirun -np 3 -x
DISPLAY=10.101.11.71:0.0 ./pvserver
Listen on port: 11111
Waiting for client...
Client connected.
Process id: 0 >> ERROR: In
/home/raashid/src/cvs/ParaView/VTK/Common/vtkDataArrayTemplate.txx, line
95
vtkIdTypeArray (0xd243258): Unable to allocate 75216436 elements of size
4 bytes.

Process id: 0 >> ERROR: In
/home/raashid/src/cvs/ParaView/Servers/Common/vtkProcessModule.cxx, line
1187
vtkProcessModule (0xb395560): Exception: Insufficient memory exception.
------------------------------------------------------------------------
------

On the client side I get the message
------------------------------------------------------------------------
-------
raashid at ged:~/src/cvs/paraview-unix/bin$ ./pvclient
--server-host=10.101.11.72
Connected to server
ErrorMessage
# Error or warning: There was a VTK Error in file:
/home/raashid/src/cvs/ParaView/Servers/Common/vtkProcessModule.cxx
(1171)
vtkProcessModule (0xc0c7530): Received exception from server:
Insufficient memory exception.
ErrorMessage end
ErrorMessage
# Error or warning: There was a VTK Error in file:
/home/raashid/src/cvs/ParaView/Servers/Common/vtkServerConnection.cxx
(67)
vtkServerConnection (0xc0ee1b8): Server Connection Closed!
ErrorMessage end
------------------------------------------------------------------------
--------

Am I using the wrong file type, if yes what should I use ?  
Is there some threshold limit I am violating ?

Please help me with this problem, because I am in serious trouble. 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://public.kitware.com/pipermail/paraview/attachments/20070705/4c5f7eaf/attachment.html


More information about the ParaView mailing list