itaps-parallel Ghost exchange prototype

Tim Tautges tautges at mcs.anl.gov
Tue May 27 12:34:53 CDT 2008


Hi all,
   I propose the following function for exchanging ghost entities in a 
parallel mesh.  This is a concurrent call on all processors, and assumes 
the mesh already knows what's shared with other processors:

iMeshP_exchange_ghost_cells(iMesh_Instance instance,
           /*in*/ prefix_PartitionHandle partition_handle,
           int ghost_dim, int bridge_dim,
           int num_layers,
           int *err);

instance: mesh instance
partition_handle: partition handle (implicitly defines communicator)
ghost_dim: dimension of the entities to be exchanged
bridge_dim: intermediate entities, or the entities through which the 2nd
             order adjacencies are found; if -1, all dimensions =
             0..ghost_dim-1 are used to find 2nd order-adjacent entities
num_layers: number of layers of ghost entities to exchange; if 0,
             non-vertex entities on the interface are exchanged
             (in my implementation, I reuse ghost exchange code for
             finding out what the remote handles are for non-vertex ents
             on shared interfaces)
err: error flag

This is a fairly high-level definition, e.g. it doesn't specify which 
processors to exchange ghosts with.  I did it that way in order to allow 
a high degree of asychronicity (which is used extensively in my ghost 
exchange code).

My implementation has two additional arguments to this function:

store_remote_handles: indicating whether the local instance should store 
remote handles; I'm considering taking this out, since it doesn't make 
much sense to not store them

wait_all: if false, returns before receiving all posted receives. 
Again, I'm considering taking this out, since I currently haven't 
implemented a mechanism to come back and check for pending receives. 
I'm still thinking about that though.

Also, I noticed in the current draft interface there isn't a function to 
get local ghost entities.  That statement assumes that in our definition 
a ghost entity isn't a part boundary entity.  Should there be such a 
function?

Other comments?

- tim

-- 
================================================================
"You will keep in perfect peace him whose mind is
   steadfast, because he trusts in you."               Isaiah 26:3

              Tim Tautges            Argonne National Laboratory
          (tautges at mcs.anl.gov)      (telecommuting from UW-Madison)
          phone: (608) 263-8485      1500 Engineering Dr.
            fax: (608) 263-4499      Madison, WI 53706




More information about the itaps-parallel mailing list