itaps-parallel Questions about iMeshP

Jason Kraftcheck kraftche at cae.wisc.edu
Tue Dec 15 09:57:41 CST 2009


The responses below are my interpretation of these things only.


Saurabh Tendulkar wrote:
> Hi,
> 
> We are trying to implement the iMeshP interface to our software. We have
> the following questions and are hoping someone could help us with these:
> 
> 1. What does the mesh instance represent in iMeshP? Is it essentially
> the on-process subset of entities of some global mesh? Where does the
> control of the global mesh lie in this case? It does not appear to be
> with the partition, as there can be multiple partitions of the same mesh.
> 

What does "control of the global mesh" entail?  What specific functionality
is missing from the API?  If it isn't an API issue, then put the "control of
the global mesh" wherever it best fits in your implementation.


> 2. It appears that the mesh contains the entities and it is the
> partition that controls how the entities lie in parts. This seems to
> mean that an entity can be in the mesh but not in a part (for example,
> when a part that contains entities is deleted). Is this fundamentally
> disallowed? Because various aspects of iMeshP are not defined if this is
> allowed. For example, if the entity was owned by the part that was
> deleted, who owns the entity now? And, how does one know whether an
> entity can be deleted from the mesh (next question)?
> 

I think we have to allow for this case, even though it may result in some
iMeshP calls failing for such entities.  If there are multiple active
partitions, can we practically require that all entities be in all
partitions?  Even those of different dimension?  If I have a partition that
distributes volume elements and a different one that distributes surface
elements, what part of the volume mesh partition is a surface element in?


> 3. Who controls the deletion of entities when they are no longer needed
> on-process - eg. if they are migrated away, especially while keeping in
> mind that there may be multiple partitions (the entity may be needed on
> one and not on another).
> 

I'm not sure about this.  Given that an entity may exist only in some subset
of the partitions, the two options appear to be: a) the application is
responsible for deletion or the entity is never deleted or b) the
implementation does some kind of reference counting such that it can delete
the entity when it is a member of no partition.

> 4. It is mentioned that a part can act as an entityset. Since entitysets
> can have parent-child and containment relationships with other
> entitysets, does this mean that parts need to have them too? If so, it
> is undefined what this means with respect to the partitioning. If not,
> what is the expected course of action when a part is used in an iMesh
> entityset function call which would result in a hierarchical relationship?
> 

The only API requirement is that the functions for querying the contents of
sets also work for parts.  Whether or not those functions that *modify* sets
(either contents or parent/child links) can be called on a part is
implementation-dependent.

- jason


More information about the itaps-parallel mailing list