<div>Hi Berk,</div><div><br></div><div>I thought D3 wouldn&#39;t repartition the data but it was my mistake. I did some tests here and D3 worked properly, however, I was expecting that it would be possible to remove the internal surfaces, produced by D3, with &quot;clean to grid&quot; filter. I also tried to play with the &quot;Boundary Mode&quot; options with no success. The internal faces are still there.</div>

<div><br></div><div>Some further comments:</div><div><br></div><div>I used a Xdmf reader in a temporal collection (12 time steps) of spatial collections (4 partitions) in a small unstructured mesh. The reader loads everything as an unique multiblock. It&#39;ll surely blows out the memory for a larger number of time steps and/or spatial partitions (I&#39;m copying this message to xdmf list).</div>

<div><br></div><div>ParaView 3.10.0-RC1 does not seem robust (yet) :-( </div><div><br></div><div>it crashes all of a sudden and stop responding in random actions (I&#39;ll try to list some scenarios and let my dataset available to reproduce the errors).</div>

<div><br></div><div>The client machine is a Windows 7 x64 connected to an offscreen MPI session with a Altix-ICE server (Linux x86_64). </div><div><br></div><div>[]&#39;s</div><div><br></div><div>Renato.</div><br><div class="gmail_quote">

On Wed, Mar 2, 2011 at 12:58 PM, Berk Geveci <span dir="ltr">&lt;<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

I am not sure that I follow. The output of D3 should be a dataset<br>
re-partitioned to be load balanced whether the input is distributed or<br>
not. Are you saying that the output of D3 is different based on<br>
whether the input is distributed?<br>
<br>
As expected, D3 will probably produce a different partitioning than<br>
the input. But that shouldn&#39;t be a problem, right?<br>
<div><div></div><div class="h5"><br>
On Wed, Mar 2, 2011 at 7:54 AM, Renato Elias &lt;<a href="mailto:rnelias@gmail.com">rnelias@gmail.com</a>&gt; wrote:<br>
&gt; Hi Berk,<br>
&gt; I already did such test. It really works but the dataset must be serial and<br>
&gt; loaded in a parallel session. In this case, D3 will take care of the data<br>
&gt; distribution, load balance and ghost information. However, if the dataset<br>
&gt; read is already partitioned, D3 only creates a new partition and let the<br>
&gt; original distribution (in my case, performed by Metis) untouched. D3 is not<br>
&gt; able to (re)partition unstructured grids (at least in my tests... or I&#39;m<br>
&gt; doing something wrong).<br>
&gt; []&#39;s<br>
&gt; Renato.<br>
&gt;<br>
&gt; On Tue, Mar 1, 2011 at 1:09 PM, Berk Geveci &lt;<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Great. Ping me in a 2-3 months - we should have started making changes<br>
&gt;&gt; to the ghost level stuff by then. Until then, you should be able to<br>
&gt;&gt; use D3 to redistribute data and generate (cell) ghost levels as<br>
&gt;&gt; needed. So the following should work<br>
&gt;&gt;<br>
&gt;&gt; reader -&gt; D3 -&gt; extract surface<br>
&gt;&gt;<br>
&gt;&gt; -berk<br>
&gt;&gt;<br>
&gt;&gt; On Tue, Mar 1, 2011 at 10:57 AM, Renato Elias &lt;<a href="mailto:rnelias@gmail.com">rnelias@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; Berk: Do you have the ability to mark a node as &quot;owned&quot; by one<br>
&gt;&gt; &gt;&gt; partition<br>
&gt;&gt; &gt;&gt; and as &quot;ghost&quot; on<br>
&gt;&gt; &gt;&gt; other partitions?<br>
&gt;&gt; &gt; Yes! We classify processes as master and slaves according to their<br>
&gt;&gt; &gt; ranking<br>
&gt;&gt; &gt; numbers. After this we can assign the shared node to a master (which<br>
&gt;&gt; &gt; will<br>
&gt;&gt; &gt; take care of shared computations) and tell the slave process that this<br>
&gt;&gt; &gt; node<br>
&gt;&gt; &gt; is being shared with a master (and the slave process will consider it as<br>
&gt;&gt; &gt; a<br>
&gt;&gt; &gt; &quot;ghost&quot; for computations).<br>
&gt;&gt; &gt; The ideas we used in our parallel solver were taken from the following<br>
&gt;&gt; &gt; article:<br>
&gt;&gt; &gt; Karanam, A. K., Jansen, K. E. and Whitinig, C. H., &quot;Geometry Based<br>
&gt;&gt; &gt; Pre-processor for Parallel Fluid Dynamic Simulations Using a<br>
&gt;&gt; &gt; Hierarchical<br>
&gt;&gt; &gt; Basis&quot;, Engineering with Computers (24):17-26, 2008.<br>
&gt;&gt; &gt; This article was made available from the author<br>
&gt;&gt; &gt; in <a href="http://www.scorec.rpi.edu/REPORTS/2007-3.pdf" target="_blank">http://www.scorec.rpi.edu/REPORTS/2007-3.pdf</a> (Figures 7 to 9 explain<br>
&gt;&gt; &gt; the<br>
&gt;&gt; &gt; communication method between processes),<br>
&gt;&gt; &gt; Regards<br>
&gt;&gt; &gt; Renato.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Tue, Mar 1, 2011 at 12:24 PM, Berk Geveci &lt;<a href="mailto:berk.geveci@kitware.com">berk.geveci@kitware.com</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hi Renato,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt; I think I&#39;m missing something.... you said cells only?!<br>
&gt;&gt; &gt;&gt; &gt; If I understood this subject correctly, a cell should be considered<br>
&gt;&gt; &gt;&gt; &gt; ghost if<br>
&gt;&gt; &gt;&gt; &gt; it&#39;s held by more than one partition/process, isn&#39;t it?! In this<br>
&gt;&gt; &gt;&gt; &gt; case,<br>
&gt;&gt; &gt;&gt; &gt; there&#39;ll be an overlapped layer of elements. The problem is that my<br>
&gt;&gt; &gt;&gt; &gt; MPI<br>
&gt;&gt; &gt;&gt; &gt; solver does not make use of this overlapped layer of cells/elements.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Yep. You understood correctly. Ghost cells are very common for finite<br>
&gt;&gt; &gt;&gt; difference calculations but not as common for finite elements.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; &gt; It only<br>
&gt;&gt; &gt;&gt; &gt; has nodes/points that are shared by processes. This explains why I<br>
&gt;&gt; &gt;&gt; &gt; asked<br>
&gt;&gt; &gt;&gt; &gt; by<br>
&gt;&gt; &gt;&gt; &gt; a ghost node (shared node would be more appropriated to define such<br>
&gt;&gt; &gt;&gt; &gt; kind<br>
&gt;&gt; &gt;&gt; &gt; of<br>
&gt;&gt; &gt;&gt; &gt; node).<br>
&gt;&gt; &gt;&gt; &gt; Can I consider a cell as ghost if it touches the parallel interface<br>
&gt;&gt; &gt;&gt; &gt; (without<br>
&gt;&gt; &gt;&gt; &gt; overlapping)? Would it work?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Nope. Then you&#39;d start seeing gaps. The right thing to do is for<br>
&gt;&gt; &gt;&gt; ParaView to support ghost points (nodes) better. However, this is<br>
&gt;&gt; &gt;&gt; non-trivial in some cases. For removing internal interfaces, it is<br>
&gt;&gt; &gt;&gt; sufficient to mark points as ghosts. However, for accurately<br>
&gt;&gt; &gt;&gt; performing statistics, you need to make sure that you count all points<br>
&gt;&gt; &gt;&gt; only once, which requires assigning ghost nodes to processes. So a<br>
&gt;&gt; &gt;&gt; replicated node would be marked as ghost (a better word is shared) and<br>
&gt;&gt; &gt;&gt; also owned by a particular process. We are going to improve VTK&#39;s<br>
&gt;&gt; &gt;&gt; ghost level support. This is something we&#39;ll support. However, it will<br>
&gt;&gt; &gt;&gt; be up to the simulation to produce the write output. Do you have the<br>
&gt;&gt; &gt;&gt; ability to mark a node as &quot;owned&quot; by one partition and as &quot;ghost&quot; on<br>
&gt;&gt; &gt;&gt; other partitions?<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Best,<br>
&gt;&gt; &gt;&gt; -berk<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; --<br>
&gt;&gt; &gt; Renato N. Elias<br>
&gt;&gt; &gt; =============================================<br>
&gt;&gt; &gt; Professor at Technology and Multilanguage Department (DTL)<br>
&gt;&gt; &gt; Federal Rural University of Rio de Janeiro (UFRRJ)<br>
&gt;&gt; &gt; Nova Iguaçu, RJ - Brazil<br>
&gt;&gt; &gt; =============================================<br>
&gt;&gt; &gt; Researcher at High Performance Computing Center (NACAD)<br>
&gt;&gt; &gt; Federal University of Rio de Janeiro (UFRJ)<br>
&gt;&gt; &gt; Rio de Janeiro, Brazil<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; Renato N. Elias<br>
&gt; =============================================<br>
&gt; Professor at Technology and Multilanguage Department (DTL)<br>
&gt; Federal Rural University of Rio de Janeiro (UFRRJ)<br>
&gt; Nova Iguaçu, RJ - Brazil<br>
&gt; =============================================<br>
&gt; Researcher at High Performance Computing Center (NACAD)<br>
&gt; Federal University of Rio de Janeiro (UFRJ)<br>
&gt; Rio de Janeiro, Brazil<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Renato N. Elias<div>=============================================</div><div>Professor at Technology and Multilanguage Department (DTL)</div><div>Federal Rural University of Rio de Janeiro (UFRRJ)</div>

<div>Nova Iguaçu, RJ - Brazil</div><div><br>=============================================<br>Researcher at High Performance Computing Center (NACAD)<br>Federal University of Rio de Janeiro (UFRJ)<br>Rio de Janeiro, Brazil<br>

</div><br>