itaps-parallel Diagram of set-based parallel data

Tim Tautges tautges at mcs.anl.gov
Wed Dec 19 14:18:00 CST 2007


Why must we expose parts and partitions through the interface?  In a 
classification-based implementation they aren't represented explicitly 
either.  Working with mesh-based data is just as much working the 
metadata on the mesh as it is working with the mesh itself, and sets are 
fundamental to many kinds of metadata.

- tim

Onkar Sahni wrote:
> Why do we have to expose that to interface. Actually reading that "even if
> they weren't represented that way underneath" makes me wonder more why we
> need exposure (say, of "sets") at interface level.
> 
> It (interface) actually becomes a burden (and confusion) for users in
> using it (think in terms of convenience) and also learning about it. To be
> honest and neutral user, to some extent I already feel iMesh interface is
> burdensome.
> 
> Moreover, (I have said this before) in future if another implementation
> wants to be ITAPS compliant (through interface) then it basically has to
> follow this legacy.
> 
> - Onkar
> 
>> This is a description of how parts and partitions could be represented
>> using sets.  They could also be presented that way through the
>> interface, even if they weren't represented that way underneath (see my
>> next reply, to Mark's message).
>>
>> Inter-part boundaries weren't mentioned to keep the figure simple.  I
>> would put them in as child sets of the Part or other inter-part boundary
>> sets, containing a subset of the 2d or 1d entities.
>>
>> - tim
>>
>> Onkar Sahni wrote:
>>> Is this description of MOAB's implementation details for ITAPS parallel
>>> requirements and functionality? OR is this something all implementations
>>> under ITAPS will be required?
>>>
>>> Btw, just curios under "all sets" in cartoon there was no mention of
>>> inter-part boundaries?
>>>
>>> - Onkar
>>>
>>>> Hi all,
>>>>    As promised, attached is a cartoon describing set-based parallel
>>>> data.  Note I've stuck to the simplest example (as wisely advocated by
>>>> Mark S).  I show the representation of the same mesh in the serial and
>>>> 3-processor cases.  I don't show ghosted elements, for simplicity,
>>>> though those "fit" in the model.
>>>>
>>>> PARALLEL
>>>>
>>>> In the parallel representation, each processor has a set it understands
>>>> as "partition1" (labeled "Partn1").  In this example, on each
>>>> processor,
>>>> that set contains one set corresponding to the part assigned to that
>>>> processor.  The part set contains 3d entities assigned to that
>>>> processor.  In this example, all 3d entities are objects in the
>>>> decomposition, therefore each 3d entity is a member of exactly one
>>>> Part.
>>>>
>>>> There are other entity sets defined in this mesh, including a boundary
>>>> condition set (BC1), material sets (Matl1, Matl2), and
>>>> application-defined sets (App1-App3).  In this example, the BC1 set
>>>> contains faces in the mesh (2d elements), but not all of them.  Matl1
>>>> and Matl2 are meant to form a covering over 3d elements, defining the
>>>> materials for those elements.  Application-defined sets are for
>>>> arbitrary groupings.  Whether such "shared" sets would exist on
>>>> processors even if there were no set contents on those processors is
>>>> currently implementation-defined, though maybe there should be a common
>>>> convention for that.
>>>>
>>>> Some of the sets on each processor are implicitly linked with sets on
>>>> other processors.  For example, the Partn1 set on each processor is
>>>> linked to the corresponding sets on other procs.  For this set, that
>>>> means that if the mesh were ever to be assembled in a single file, the
>>>> contents of Partn1 on various processors would all go into a single
>>>> set,
>>>> which would be assigned the union of all tags on that set on all
>>>> processors.  Presumably those tags would all be the same.  Similarly,
>>>> BC1 and Matl1, Matl2 are sets that are implicitly linked and which
>>>> would
>>>> be combined.  App1-App3 are application-defined sets which would be
>>>> considered separate, even if the mesh was written to a single file.
>>>> Note that the decision or designation of which sets across the
>>>> processors are really the same sets is application- or
>>>> implementation-defined.  In MOAB, we do it based on tag and optionally
>>>> tag value.  So, for example, any set with a "MATERIAL_SET" tag whose
>>>> value is the same is understood to be the same set.  This is used in
>>>> the
>>>> HDF5-based file writer in MOAB, which writes a single file in parallel
>>>> from all processors.
>>>>
>>>> SERIAL
>>>>
>>>> In the serial case, all sets having implicitly-defined counterparts on
>>>> other processors have been combined.  Thus, part sets (Part1-Part3) are
>>>> contained in the Partn1 set, and there are single BC1, Matl1 and Matl2
>>>> sets.  App1-App3 are still separate, since they were not designated to
>>>> be the same sets.  The Part1-Part3 sets and Matl1-Matl2 sets are
>>>> different coverings of all 3d entities in this mesh for this example.
>>>> The BC1 set includes a subset of 2d entities in the mesh.
>>>>
>>>> DISCUSSION
>>>>
>>>> As I've mentioned before, I've implemented MOAB's parallel reader such
>>>> that any collection of sets which forms a covering over the things I
>>>> want to partition can be used to define the partition.  Thus, in this
>>>> example, one could use Matl1/Matl2 as the part sets.  In this case,
>>>> those sets would serve multiple purposes.  Similarly, I don't see any
>>>> reason we shouldn't allow a given part set to be a member of multiple
>>>> partitions.
>>>>
>>>> Part sets should also be allowed to include sets; in this case, maybe
>>>> the sets are the objects in the partition.  This would be a very nice
>>>> thing to use for e.g. hypergraph partitioning methods.
>>>> Counter-intuitively, I would lean toward using contains relations to go
>>>> down that hypergraph hierarchy.  If a given implementation did not
>>>> implement Parts as legitimate entity sets, then this property could be
>>>> used to reduce bookkeeping for adaptive applications, e.g. have the
>>>> part
>>>> contain sets which themselves contain 3d elements of a given material
>>>> or
>>>> geometric volume.  Of course, that assumes you're using sets for those
>>>> other things...
>>>>
>>>> This method for representing partitions also has the following
>>>> benefits:
>>>> - allows multiple partitions to exist in the same
>>>> file/instance/database
>>>> - would allow current set operations to be used to query contents of
>>>> parts and partitions
>>>> - parallel view is only different when asking about parallel data; in
>>>> other cases it looks the same as serial interface
>>>> - other parts of RPI partition model can be embedded similarly, by
>>>> using
>>>> sets related to part sets using parent/child relations
>>>>
>>>> I'll be elaborating on this at the SIAM mtg in March, as well as
>>>> pulling
>>>> in other examples where sets can be used to do various things.  I guess
>>>> that means I've already started my talk, which has to be some sort of
>>>> record for me!
>>>>
>>>> Comments welcome, fire when ready!
>>>>
>>>> - 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
>>>>
>>>>
>>>
>>>
>> --
>> ================================================================
>> "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
>>
>>
> 
> 
> 

-- 
================================================================
"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