Hi Berk,<div><br></div><div>I already did such test. It really works but the dataset must be serial and loaded in a parallel session. In this case, D3 will take care of the data distribution, load balance and ghost information. However, if the dataset read is already partitioned, D3 only creates a new partition and let the original distribution (in my case, performed by Metis) untouched. D3 is not able to (re)partition unstructured grids (at least in my tests... or I&#39;m doing something wrong).</div>

<div><br></div><div>[]&#39;s</div><div><br></div><div>Renato.</div><div><br></div><div><br></div><div><div class="gmail_quote">On Tue, Mar 1, 2011 at 1:09 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;">Great. Ping me in a 2-3 months - we should have started making changes<br>
to the ghost level stuff by then. Until then, you should be able to<br>
use D3 to redistribute data and generate (cell) ghost levels as<br>
needed. So the following should work<br>
<br>
reader -&gt; D3 -&gt; extract surface<br>
<font color="#888888"><br>
-berk<br>
</font><div><div></div><div class="h5"><br>
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; Berk: Do you have the ability to mark a node as &quot;owned&quot; by one partition<br>
&gt;&gt; and as &quot;ghost&quot; on<br>
&gt;&gt; other partitions?<br>
&gt; Yes! We classify processes as master and slaves according to their ranking<br>
&gt; numbers. After this we can assign the shared node to a master (which will<br>
&gt; take care of shared computations) and tell the slave process that this node<br>
&gt; is being shared with a master (and the slave process will consider it as a<br>
&gt; &quot;ghost&quot; for computations).<br>
&gt; The ideas we used in our parallel solver were taken from the following<br>
&gt; article:<br>
&gt; Karanam, A. K., Jansen, K. E. and Whitinig, C. H., &quot;Geometry Based<br>
&gt; Pre-processor for Parallel Fluid Dynamic Simulations Using a Hierarchical<br>
&gt; Basis&quot;, Engineering with Computers (24):17-26, 2008.<br>
&gt; This article was made available from the author<br>
&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 the<br>
&gt; communication method between processes),<br>
&gt; Regards<br>
&gt; Renato.<br>
&gt;<br>
&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; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi Renato,<br>
&gt;&gt;<br>
&gt;&gt; &gt; I think I&#39;m missing something.... you said cells only?!<br>
&gt;&gt; &gt; If I understood this subject correctly, a cell should be considered<br>
&gt;&gt; &gt; ghost if<br>
&gt;&gt; &gt; it&#39;s held by more than one partition/process, isn&#39;t it?! In this case,<br>
&gt;&gt; &gt; there&#39;ll be an overlapped layer of elements. The problem is that my MPI<br>
&gt;&gt; &gt; solver does not make use of this overlapped layer of cells/elements.<br>
&gt;&gt;<br>
&gt;&gt; Yep. You understood correctly. Ghost cells are very common for finite<br>
&gt;&gt; difference calculations but not as common for finite elements.<br>
&gt;&gt;<br>
&gt;&gt; &gt; It only<br>
&gt;&gt; &gt; has nodes/points that are shared by processes. This explains why I asked<br>
&gt;&gt; &gt; by<br>
&gt;&gt; &gt; a ghost node (shared node would be more appropriated to define such kind<br>
&gt;&gt; &gt; of<br>
&gt;&gt; &gt; node).<br>
&gt;&gt; &gt; Can I consider a cell as ghost if it touches the parallel interface<br>
&gt;&gt; &gt; (without<br>
&gt;&gt; &gt; overlapping)? Would it work?<br>
&gt;&gt;<br>
&gt;&gt; Nope. Then you&#39;d start seeing gaps. The right thing to do is for<br>
&gt;&gt; ParaView to support ghost points (nodes) better. However, this is<br>
&gt;&gt; non-trivial in some cases. For removing internal interfaces, it is<br>
&gt;&gt; sufficient to mark points as ghosts. However, for accurately<br>
&gt;&gt; performing statistics, you need to make sure that you count all points<br>
&gt;&gt; only once, which requires assigning ghost nodes to processes. So a<br>
&gt;&gt; replicated node would be marked as ghost (a better word is shared) and<br>
&gt;&gt; also owned by a particular process. We are going to improve VTK&#39;s<br>
&gt;&gt; ghost level support. This is something we&#39;ll support. However, it will<br>
&gt;&gt; be up to the simulation to produce the write output. Do you have the<br>
&gt;&gt; ability to mark a node as &quot;owned&quot; by one partition and as &quot;ghost&quot; on<br>
&gt;&gt; other partitions?<br>
&gt;&gt;<br>
&gt;&gt; Best,<br>
&gt;&gt; -berk<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>
</div>