<div class="gmail_quote">On Thu, Nov 24, 2011 at 18:30, Dmitry Karpeev <span dir="ltr"><<a href="mailto:karpeev@mcs.anl.gov">karpeev@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div>In any event, this business of storing explicit ranks/offsets for the ghost indices is sort of antithetical to the current</div>

<div>PetscLayout-based approach of indices having parallel semantics from the outset.  A lot of conceptual difficulties </div><div>in Sieve and MOAB (and the need for the extra objects such as Overlap and ParallelComm (sic!)) stem from a lack of </div>


<div>a global address space. </div></blockquote><div><br></div><div>Global addresses and (rank, offset) are equivalent modulo MPI_Scan() which costs essentially the same as MPI_Reduce(). Not free, but not huge when done in setup. I think global indices are usually easier for users to play with (if they need anything that has global semantics, local indices combined with a local-to-global map is even better when sufficient), but they eventually need to be converted to (rank, offset) for communication (MPI does not know about a "global index" and I don't think it should.)</div>
</div>