There was a paper at Super Computing last year (or maybe the year before) about improved partitioning for stream tracing that would probably help alot. Think of making a filter like D3 which moves data around to repartition, such that the partitions take into account the principle flow directions. That way particles stay resident much more often. The upfront cost might be high to do the repartition, but afterwards stream tracing would be faster.<br>

<br clear="all">David E DeMarle<br>Kitware, Inc.<br>R&amp;D Engineer<br>28 Corporate Drive<br>Clifton Park, NY 12065-8662<br>Phone: 518-371-3971 x109<br>
<br><br><div class="gmail_quote">On Tue, Aug 25, 2009 at 4:42 AM, John Biddiscombe <span dir="ltr">&lt;<a href="mailto:biddisco@cscs.ch">biddisco@cscs.ch</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Burlen<br>
<br>
I have had performance issues with the Distributed Stream tracer, but in fact I found that in general, the problem of it not being very well optimized for parallel operation was not the main trouble. If you are using Unstructured Grids, and they are large (in my case 20million cells in a block), then the main time was taken by the building of cell links which are used to FindCEll inwhich an integration point lies. I modified the stream tracer interpolation to use a BSP tree (or CellLocator) and found a huge improvement in execution time. (minutes instead of hours).<br>


<br>
Secondly. the parallelization of the stream tracer is an inherent problem. One cannot integrate the streamline in block 2, until it has reached a boundary in block 1 - one must wait until the streamling traverses one block before passing it to the next. In actuality, the implementation could be improved with more intelligent seeding and rending/receiving of streamline seeds etc between iterations.<br>


<br>
The Particle tracer code could be modifed to produce streamlines in a serial or distributed manner and ought to give a &#39;reasonably&#39; optimal solution to the problem - but in fact the chaps at kitware are at the moment (they tell me) in the process of revamping the streamline code to make use of CellLocators - and for this reason I recently committed my BSP tree code.<br>


<br>
Here&#39;s how to check your bottleneck.<br>
Find a large StructuredGrid dataset which is loaded in parallel. Generate streamlines. Time it. Convert the grdi to UnstructuredGrid and do the same. If test 1 takes 1 minute and test 2 1 hour, then it isn&#39;t the parallization that&#39;s the real issue, but the grid being used.<br>


<br>
JB<div><div></div><div class="h5"><br>
<br>
<br>
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
We&#39;ve been using the distributed stream tracer to generate 100s-1000s of stream lines per time step. It&#39;s very slow, and it doesn&#39;t scale at all.  The class comments say as much. I&#39;m sure there is a reason why this implementation was chosen. Is there something that generally prevents real parallel implementation? Is there a better implementation available out there?<br>


<br>
There is this post a while back<br>
<a href="http://www.paraview.org/pipermail/paraview/2009-July/012959.html" target="_blank">http://www.paraview.org/pipermail/paraview/2009-July/012959.html</a><br>
<br>
What&#39;s the status?<br>
<br>
Thanks<br>
Burlen<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ParaView Wiki at: <a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
</blockquote>
<br>
<br></div></div><font color="#888888">
-- <br>
John Biddiscombe,                            email:biddisco @ <a href="http://cscs.ch" target="_blank">cscs.ch</a><br>
<a href="http://www.cscs.ch/" target="_blank">http://www.cscs.ch/</a><br>
CSCS, Swiss National Supercomputing Centre  | Tel:  +41 (91) 610.82.07<br>
Via Cantonale, 6928 Manno, Switzerland      | Fax:  +41 (91) 610.82.82</font><div><div></div><div class="h5"><br>
<br>
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the ParaView Wiki at: <a href="http://paraview.org/Wiki/ParaView" target="_blank">http://paraview.org/Wiki/ParaView</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.paraview.org/mailman/listinfo/paraview" target="_blank">http://www.paraview.org/mailman/listinfo/paraview</a><br>
</div></div></blockquote></div><br>