Both scenarios are wrong.  ParaView will not push out data from process 0 to 
processes 1-3 unless you explicitly run a filter that does that (or the reader 
does that internally, but I know of no such reader).  What is actually 
happening is more along the lines of:


 1.  Processes 0-3 each read in a partition of data from the file.
 2.  Each process extracts polygonal geometry from their local data.
 3.  Per your settings, ParaView decides to send the geometry to the client.  
The data is collected to process 0 and sent to the client.

The reason you are not seeing vtkFileSeriesReader on all of the servers is that 
there is a threshold in the timer log to not show anything that executes under 
a certain amount of time (by default 0.01 seconds).  If you change the Time 
Threshold to Show All, you should be able to see everything that executes, even 
if it completes immediately.

You should note that how readers read partitions is determined by the reader 
itself.  Many of the readers do not really handle partitioned reading.  Thus, 
the reader will do something naïve like read everything on process 0.  Based on 
your timings, that is probably what is happening to you.  That is, processes 
1-3 probably have empty data.  You never specified what format of data you are 
reader, so I cannot answer the data completely.  However, if you want to know 
how your data is partitioned on the server (at least, before rendering), you 
can run the Process Ids filter.

-Ken


On 9/24/09 9:09 PM, "chew ping" <[email protected]> wrote:

Hi all,

I'm doing parallel rendering using 1 client (dual core laptop) and 2 cluster 
servers (dual core desktop)
below is the timer log result i collected when i run: mpirun -np 4 pvserver

-----------------------------------------------------------------------------------------------
Local Process
Still Render, 3.029 seconds
Execute vtkMPIMoveData id: 457, 1.98248 seconds


Server, Process 0
Execute vtkFileSeriesReader id: 176, 0.637821 seconds
Execute vtkMPIMoveData id: 457, 1.49186 seconds
Dataserver gathering to 0, 0.829525 seconds
Dataserver sending to client, 0.661658 seconds

Server, Process 1
Execute vtkMPIMoveData id: 457, 0.141821 seconds
Dataserver gathering to 0, 0.141544 seconds

Server, Process 2
Execute vtkMPIMoveData id: 457, 0.243584 seconds
Dataserver gathering to 0, 0.243318 seconds

Server, Process 3
Execute vtkMPIMoveData id: 457, 0.191589 seconds
Dataserver gathering to 0, 0.191303 seconds

-----------------------------------------------------------------------------------------------------

i have difficulty interpreting the timer log, my guess is:

Scenario 1:
Process 0 reads the whole data, disseminate the dats into 4 pieces, then 
distribute to itself and Process 1&2&3,
each node will process the data and send it back Process 0,
Process 0 gather all data and send it back to client,
client renders the data

Scenario 2:
Process 0 reads the whole data, distribute the whole data to Process 0&1&2&3,
each node will 'take' their own piece of data to process, then send it back 
Process 0,
Process 0 gather all data and send it back to client,
client renders the data

Which scenario is the correct one? or both are wrong?

is there any resources i could refer to find what does it mean by: Execute 
vtkFileSeriesReader, Execute vtkMPIMoveData?

any help / feedback is highly appreciated!
thanks!

regards,
chewping







   ****      Kenneth Moreland
    ***      Sandia National Laboratories
***********
*** *** ***  email: [email protected]
**  ***  **  phone: (505) 844-8919
    ***      web:   http://www.cs.unm.edu/~kmorel

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to