
On Sep 16, 2006, at 6:09 AM, Markus Blatt wrote:
Consider a distributed array or vector. Each entry of the global vector has a consecutive, zero starting local index l and a coresponding global index g together with tag specifying whether the process is owner of the value (meaning that he can compute a new value from consistent data without communication) or not.
Process 0: local global tag 0 0 owner 1 3 owner 2 4 notowner
Process 1: local global tag 0 1 owner 1 2 owner 3 3 notowner
This would represent a global array of 5 entries.
Very interesting. We're actually working on this very problem on a different project (our parallel graph library). If we come up with a good, general abstraction, we could try to get it into Boost.MPI. At the moment, however, i think Matthias has the right approach, using a special data-type wrapper that provides an alternative way to serialize the local/global array when building the skeleton. Doug