itaps-parallel One particularly difficult thing in one of the use cases...

Tim Tautges tautges at mcs.anl.gov
Tue Jun 1 20:52:33 CDT 2010


Hi all,
   Here, I attempt to describe one of the particularly difficult parts of one of the use cases.  I think this at least 
exposes a potential problem in the currently specified iMeshP; I think it also demonstrates the problem with entities 
always having to be in parts, but that's more of a subjective statement.

The use case is radiation transport.  In a nutshell, consider processes arranged in a 2d array, with each column 
representing an angle, and each row a subdomain in the spatial partition.  The spatial partition of the mesh will be 
distributed across all processes in a column; a given spatial subdomain is copied onto each process in a row.

Initializing the mesh onto this processor arrangement is done in 3 steps:
1. load the mesh onto the 1st column, in a domain-decomposed fashion typical of other DD-based codes
2. share the mesh from the 1st column across a row of processes
3. establish sharing relations in the other columns

It's in step 3 that I see the problem.  Here, the mesh for a spatial subdomain is already represented in the iMesh 
Instance on each process, but the Partition representing the column hasn't been created yet.  After you create that 
Partition, and a Part in that Partition, you need to assign the mesh from the Part in the row-based Partition into that 
Part in the column-based Partition.  How do you do that?  The function iMeshP_exchEntArrToPartsAll is a collective call, 
and implies that you're moving entities from one Part to another.  But, the entities we're talking about here aren't 
part of any Part in that column Partition.  I'd prefer to use iMesh_addEntToSet, but I'm guessing that would break other 
implementations.

This example also demonstrates the need either for another function, to negotiate shared entities between Parts, or to 
expand the definition of iMeshP_createGhostEntsAll to include the functionality (the latter would be most natural for 
MOAB, since the same function is used in MOAB's parallel stuff to do either; I distinguish by allowing the # layers 
specified to be zero, in which case you're requesting the resolution of shared entities at an interface).

- 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