Saurabh Tendulkar wrote:
Jason Kraftcheck wrote:
Saurabh Tendulkar wrote:
We have the following further questions about iMeshP.
1. iMeshP_destroyPartitionAll states that the partition is not invalidated upon return. If this means that the partition is not freed, when and how will it be freed? If not, what does the statement mean?
There was some debate at one time as to whether or not this type of function should be passed a partition handle by copy (as it is now) or instead be passed a reference to a partition handle so that the implementation can nullify the variable storing the handle. I assume that this comment refers to the passed variable containing the handle value, rather than the partition itself.
If I understand this correctly then, the statement should be disregarded because it doesn't make sense in the context of the handle being passed by value?
That is my interpretation.
2. Several migration functions take in the destination part ids of entities as they should. However, there is no function to get remote part ids from a partition. How is the user supposed to know which part id to migrate to, or are we missing something?
iMeshP_getPartNBors(Arr) iMeshP_getEntOwnerPart(Arr) iMeshP_getCopyParts
These are just returning the part wrt an entity (ownership/copy) or neighboring a part. Isn't there anything that returns them in a global sense (eg. return all part ids on process with given rank)?
There doesn't appear to be. It seems that there should be a iMeshP_getGlobalParts, as we have: iMeshP_getNumGlobalParts, iMeshP_getNumLocalParts, and iMeshP_getLocalParts. On the other hand, that's typically all-to-all communication and perhaps the intent was to discourage it. It also may not scale well to very large machines for other reasons (big array to hold all part ids.) Perhaps you could just assume that parts have consecutive IDs (which I think is the case for all implementations), and therefore assume that the global part list is 1 to n, where n is the result of iMeshP_getNumGlobalParts. - jason