No subject


Mon Aug 10 18:29:21 EDT 2009


i tried running the same data using np1 until np10, and i get the following=
 reading for still render, the rest of the readings are quite consistent, w=
hich makes me wonder why the time (still render) decrease initially but inc=
rease eventually? shouldn't it become much faster when more nodes are used?=
 all my server nodes are identical to each other (intel core 2 duo, 2.66 GH=
z)


ParaView doesn't use parallelism to scale in terms of processing speed, it =
uses it to scale in terms of achievable data size. That means, if you have =
sufficient memory on one machine, processing the data on two machines isn't=
 likely to give you any speed up and will usually slow it down because of t=
he extra code and especially communication that has to happen in the parall=
el program (Ahmdahls law). If the problem is too big for one machine, then =
the only alternative is to split the data and run it on many machines (Gust=
afsen's law). That said, if the data is nearly to big for one machine, for =
instance when swapping, then splitting it and running it on several machine=
s will make it faster for a while until the overhead starts to dominate the=
 performance.



----------------------------------------------
number of process used still render (seconds)
np1 7.16043
np2 3.93390
np3 3.05784
np4 3.02900
np5 3.02851
np6 3.04962
np7 3.43479
np8 3.47883
np9 3.71554
np10 3.80835
----------------------------------------------


appreciate your reply!

regards,
chewping


________________________________
From: kmorel at sandia.gov
To: lcp81um at msn.com; paraview at paraview.org
CC: kitware at kitware.com
Date: Mon, 28 Sep 2009 08:37:08 -0600
Subject: Re: [Paraview] How to interpret timer log


Both scenarios are wrong.  ParaView will not push out data from process 0 t=
o processes 1-3 unless you explicitly run a filter that does that (or the r=
eader does that internally, but I know of no such reader).  What is actuall=
y 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 execut=
es 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 reade=
r itself.  Many of the readers do not really handle partitioned reading.  T=
hus, the reader will do something na=EFve 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 forma=
t 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" <lcp81um at msn.com <http://msn.com/> > wrote:

Hi all,

I'm doing parallel rendering using 1 client (dual core laptop) and 2 cluste=
r 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 di=
stribute 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: kmorel at sandia.gov <http://sandia.gov/>
**  ***  **  phone: (505) 844-8919
    ***      web:   http://www.cs.unm.edu/~kmorel


_______________________________________________
Powered by www.kitware.com <http://www.kitware.com/>

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

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

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





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


--_000_C6F1F482DB69kmorelsandiagov_
Content-Type: text/html;
 charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

<HTML>
<HEAD>
<TITLE>Re: [Paraview] How to interpret timer log</TITLE>
</HEAD>
<BODY>
<FONT FACE=3D"Calibri, Verdana, Helvetica, Arial"><SPAN STYLE=3D'font-size:=
11pt'>The only reason why the two systems should give different results is =
if they are loading different data or the settings do not match up, which y=
ou claim is not the case. &nbsp;If you want to ensure that the settings are=
 the same, you can launch ParaView with the &#8211;dr flag, which will igno=
re your settings file and use all the default settings.<BR>
<BR>
The decision for using parallel rendering or to transfer data to the client=
 is made in vtkSMMultiProcessRenderView::GetCompositingDecision(), which is=
 called on the client. &nbsp;If you really want to find out what is going o=
n, you can set a breakpoint there and see what the decision is and how Para=
View came about it.<BR>
<BR>
-Ken<BR>
<BR>
<BR>
On 10/7/09 4:51 AM, &quot;chew ping&quot; &lt;<a href=3D"lcp81um at msn.com">l=
cp81um at msn.com</a>&gt; wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT SIZE=3D"2"><FONT FACE=3D"Verdana, Helvetica=
, Arial"><SPAN STYLE=3D'font-size:10pt'>Hi all, <BR>
&nbsp;<BR>
thanks for the reply below.<BR>
&nbsp;<BR>
my friend and i each run parallel rendering using our own notebook as clien=
t, but we use the same data, same servers and same version of ParaView, CMa=
ke, QT, MPI. We use same settings and did the same thing, however our timer=
 log results are a little bit different.<BR>
&nbsp;<BR>
<B>My timer log result<BR>
</B>----------------------------------------------------------------------<=
BR>
Local Process<BR>
--- Disable display lists.<BR>
--- Disable triangle strips.<BR>
Still Render, 0.043315 seconds<BR>
Still Render, 0.021299 seconds<BR>
Still Render, 0.024769 seconds<BR>
Still Render, 0.02782 seconds<BR>
Still Render, 10.7477 seconds<BR>
Execute vtkMPIMoveData id: 462, 3.73372 seconds<BR>
&nbsp;<BR>
&nbsp;<BR>
Server, Process 0<BR>
Execute vtkFileSeriesReader id: 182, 0.641624 seconds<BR>
Execute vtkPVGeometryFilter id: 248, 0.005231 seconds<BR>
Execute vtkPVCacheKeeper id: 459, 6.9e-05 seconds<BR>
Execute vtkMPIMoveData id: 462, 3.3546 seconds<BR>
Dataserver gathering to 0, 0.831371 seconds<BR>
Dataserver sending to client, 2.5226 seconds<BR>
Execute vtkOrderedCompositeDistributor , 0.000142 seconds<BR>
&nbsp;<BR>
Server, Process 1<BR>
Execute vtkFileSeriesReader id: 182, 0.000345 seconds<BR>
Execute vtkPVGeometryFilter id: 248, 0.005231 seconds<BR>
Execute vtkPVCacheKeeper id: 459, 5.7e-05 seconds<BR>
Execute vtkMPIMoveData id: 462, 0.14266 seconds<BR>
Dataserver gathering to 0, 0.142351 seconds<BR>
Execute vtkOrderedCompositeDistributor , 9.8e-05 seconds<BR>
&nbsp;<BR>
Server, Process 2<BR>
Execute vtkFileSeriesReader id: 182, 0.000325 seconds<BR>
Execute vtkPVGeometryFilter id: 248, 0.004975 seconds<BR>
Execute vtkPVCacheKeeper id: 459, 6.3e-05 seconds<BR>
Execute vtkMPIMoveData id: 462, 0.244045 seconds<BR>
Dataserver gathering to 0, 0.243799 seconds<BR>
Execute vtkOrderedCompositeDistributor , 9.7e-05 seconds<BR>
&nbsp;<BR>
Server, Process 3<BR>
Execute vtkFileSeriesReader id: 182, 0.000408 seconds<BR>
Execute vtkPVGeometryFilter id: 248, 0.00521 seconds<BR>
Execute vtkPVCacheKeeper id: 459, 5.6e-05 seconds<BR>
Execute vtkMPIMoveData id: 462, 0.192467 seconds<BR>
Dataserver gathering to 0, 0.192195 seconds<BR>
Execute vtkOrderedCompositeDistributor , 0.000113 seconds<BR>
&nbsp;<BR>
-----------------------------------------------------------------------<BR>
&nbsp;<BR>
<B>My friend's timer log result<BR>
</B> <BR>
-----------------------------------------------------------------------<BR>
Local Process<BR>
Still Render, 3.98618 seconds<BR>
&nbsp;<BR>
&nbsp;<BR>
Server, Process 0<BR>
Execute vtkFileSeriesReader id: 2927, 1.18069 seconds<BR>
Execute vtkPVGeometryFilter id: 2992, 0.041116 seconds<BR>
Execute vtkPVCacheKeeper id: 3203, 6.7e-05 seconds<BR>
Execute vtkMPIMoveData id: 3206, 0.000195 seconds<BR>
Execute vtkOrderedCompositeDistributor , 0.000138 seconds<BR>
Execute vtkPolyDataMapper id: 2998, 0.000101 seconds<BR>
Execute vtkPolyDataMapper id: 2853, 5.5e-05 seconds<BR>
Execute vtkPolyDataMapper id: 2998, 4.5e-05 seconds<BR>
&nbsp;<BR>
Server, Process 1<BR>
Execute vtkFileSeriesReader id: 2927, 0.000275 seconds<BR>
Execute vtkPVGeometryFilter id: 2992, 0.019066 seconds<BR>
Execute vtkPVCacheKeeper id: 3203, 6.4e-05 seconds<BR>
Execute vtkMPIMoveData id: 3206, 0.000123 seconds<BR>
Execute vtkOrderedCompositeDistributor , 8.9e-05 seconds<BR>
Execute vtkPolyDataMapper id: 2998, 7.3e-05 seconds<BR>
Execute vtkPolyDataMapper id: 2853, 5.5e-05 seconds<BR>
Execute vtkPolyDataMapper id: 2998, 4.8e-05 seconds<BR>
&nbsp;<BR>
Server, Process 2<BR>
Execute vtkFileSeriesReader id: 2927, 0.000303 seconds<BR>
Execute vtkPVGeometryFilter id: 2992, 0.02033 seconds<BR>
Execute vtkPVCacheKeeper id: 3203, 5.3e-05 seconds<BR>
Execute vtkMPIMoveData id: 3206, 0.000158 seconds<BR>
Execute vtkOrderedCompositeDistributor , 9.6e-05 seconds<BR>
Execute vtkPolyDataMapper id: 2998, 8.9e-05 seconds<BR>
Execute vtkPolyDataMapper id: 2853, 5.2e-05 seconds<BR>
Execute vtkPolyDataMapper id: 2998, 4.7e-05 seconds<BR>
&nbsp;<BR>
Server, Process 3<BR>
Execute vtkFileSeriesReader id: 2927, 0.000311 seconds<BR>
Execute vtkPVGeometryFilter id: 2992, 0.02033 seconds<BR>
Execute vtkPVCacheKeeper id: 3203, 6e-05 seconds<BR>
Execute vtkMPIMoveData id: 3206, 0.000117 seconds<BR>
Execute vtkOrderedCompositeDistributor , 9e-05 seconds<BR>
Execute vtkPolyDataMapper id: 2998, 8.3e-05 seconds<BR>
Execute vtkPolyDataMapper id: 2853, 5.2e-05 seconds<BR>
Execute vtkPolyDataMapper id: 2998, 4.7e-05 seconds<BR>
&nbsp;<BR>
--------------------------------------------------------------------------<=
BR>
<BR>
My question are:<BR>
&nbsp;<BR>
my local process has Execute vtkMPIMoveData, but my friend's doesn't, why?<=
BR>
my process 0 has Dataserver gathering to 0, Dataserver sending to client, b=
ut my friend's doesn't, why?<BR>
my process 1,2,3 has Dataserver gathering to 0, but my friend's doesn't, wh=
y?<BR>
&nbsp;<BR>
Appreciate your reply, thanks!<BR>
&nbsp;<BR>
regards,<BR>
chew ping<BR>
&nbsp;<BR>
<HR ALIGN=3DCENTER SIZE=3D"3" WIDTH=3D"100%">From: <a href=3D"dave.demarle@=
kitware.com">dave.demarle at kitware.com</a><BR>
Date: Wed, 30 Sep 2009 09:27:32 -0400<BR>
Subject: Re: [Paraview] How to interpret timer log<BR>
To: <a href=3D"lcp81um at msn.com">lcp81um at msn.com</a><BR>
CC: <a href=3D"kmorel at sandia.gov">kmorel at sandia.gov</a>; <a href=3D"paravie=
w at paraview.org">paraview at paraview.org</a>; <a href=3D"kitware at kitware.com">=
kitware at kitware.com</a><BR>
<BR>
I counted more than one question (six in fact) in that last email. :)<BR>
</SPAN></FONT></FONT><BLOCKQUOTE><FONT SIZE=3D"2"><SPAN STYLE=3D'font-size:=
10pt'><FONT FACE=3D"Tahoma, Verdana, Helvetica, Arial">does these mean that=
, at the client's end, it took 3.029 seconds to renders the geometry send b=
ack from process 0?<BR>
</FONT></SPAN></FONT></BLOCKQUOTE><FONT SIZE=3D"2"><SPAN STYLE=3D'font-size=
:10pt'><FONT FACE=3D"Verdana, Helvetica, Arial"><BR>
I believe the 3.029 seconds includes the transfer time, but I may be incorr=
ect on that. Someone please correct me if I am wrong.<BR>
&nbsp;<BR>
</FONT></SPAN></FONT><BLOCKQUOTE><FONT SIZE=3D"2"><SPAN STYLE=3D'font-size:=
10pt'><FONT FACE=3D"Tahoma, Verdana, Helvetica, Arial">what does still rend=
er means? <BR>
</FONT></SPAN></FONT></BLOCKQUOTE><FONT SIZE=3D"2"><SPAN STYLE=3D'font-size=
:10pt'><FONT FACE=3D"Verdana, Helvetica, Arial"><BR>
While you drag the mouse and move the camera paraview does interactive rend=
ers. Iteractive renders will (depending on data and the preference settings=
) use subsampled geometry and subsampled images. Once you release the mouse=
, ParaView does a still render at full resolution.<BR>
<BR>
&nbsp;<BR>
</FONT></SPAN></FONT><BLOCKQUOTE><FONT SIZE=3D"2"><SPAN STYLE=3D'font-size:=
10pt'><FONT FACE=3D"Tahoma, Verdana, Helvetica, Arial">how about the third =
line? after still render, why does the MPI need to move data? <BR>
</FONT></SPAN></FONT></BLOCKQUOTE><FONT SIZE=3D"2"><SPAN STYLE=3D'font-size=
:10pt'><FONT FACE=3D"Verdana, Helvetica, Arial"><BR>
See answer to question 1, the MPI time (and processing) is being counted as=
 part of the rendering. Since it is &quot;part of&quot; the rendering, it s=
hows up after in the log (even if it happened first).<BR>
&nbsp;<BR>
</FONT></SPAN></FONT><BLOCKQUOTE><FONT SIZE=3D"2"><SPAN STYLE=3D'font-size:=
10pt'><FONT FACE=3D"Tahoma, Verdana, Helvetica, Arial">which data? <BR>
</FONT></SPAN></FONT></BLOCKQUOTE><FONT SIZE=3D"2"><SPAN STYLE=3D'font-size=
:10pt'><FONT FACE=3D"Verdana, Helvetica, Arial"><BR>
Geometry (the surface of whatever your data is).<BR>
&nbsp;<BR>
</FONT></SPAN></FONT><BLOCKQUOTE><FONT SIZE=3D"2"><SPAN STYLE=3D'font-size:=
10pt'><FONT FACE=3D"Tahoma, Verdana, Helvetica, Arial">to where?<BR>
</FONT></SPAN></FONT></BLOCKQUOTE><FONT SIZE=3D"2"><SPAN STYLE=3D'font-size=
:10pt'><FONT FACE=3D"Verdana, Helvetica, Arial"><BR>


More information about the ParaView mailing list