itaps-parallel Tag communication operations
Vitus Leung
vjleung at sandia.gov
Wed Feb 27 11:17:21 CST 2008
On Wed, 2008-02-27 at 08:28 -0700, Tim Tautges wrote:
>
> Carl Ollivier-Gooch wrote:
> > Tim Tautges wrote:
> >> Hi all,
> >> Regarding tag communication operations, the goal is to provide in
> >> the interface functions that most parallel applications are likely to
> >> need. One functionality that comes to mind right away is exchanging
> >> tag information on shared and/or ghosted entities. We could get fancy
> >> about it, getting more into what kinds of operations would be provided
> >> (min/max, average, etc.), but at this point I think it would be better
> >> to keep it simple. So, I'd propose two functions:
> >>
> >> sendTagsShared: communicate specified tag to all processors sharing
> >> entities owned by this processor
> >>
> >> sendTagsGhosted: same, but for ghosted entities
> >>
> >> The particular syntax for these functions can come later, I just want
> >> to get some comments on the general idea. If applications wanted some
> >> sort of higher-level behavior, like the operations mentioned above,
> >> additional tags could be used to implement those fairly easily.
> >
> > Tim,
> >
> > My interpretation of what you propose is that, for a given tag name or
> > handle, each process (as opposed to each part) will communicate the
> > values of that tag on all entities with duplicates elsewhere.
> >
> > Comments/questions:
> >
> > 1. Just to confirm, you mean this to be a push from the owned copy of
> > the entity (which, one could argue, is the only one with a right to
> > change tag data on the entity anyway...).
> >
>
> A push using two-sided communication (i.e. would like to avoid 1-sided
> communication for now).
>
> > 2. What about implementations that work part-by-part, even when there
> > are multiple parts in a process? Admittedly the communication overhead
> > is trivial for this case, but part to part updates of tag data within a
> > process are going to matter to some apps. (Ken, am I right there?)
> >
>
> I should have written the descriptions in terms of parts rather than
> processes (though I still assert that most applications' need for
> multiple part per processor/core has more to do with difficulty of
> current data storage mechanisms and partitioning tools than a need based
> on other things).
>
> > 3. This call implies either an ability to reverse-lookup entities by
> > tag handle or an iteration over all entities (of all types) or some
> > clever call syntax. Or at least, I can't imagine any alternatives that
> > don't....
> >
>
> I'm assuming it's easy to get which entities are shared with other
> parts, and the application should know when a given tag exists on shared
> entities (although maybe we need a type/topology argument to be more
> specific?)
I agree with the former. After looking over DraftInterface.h, it seems
like the reworked copy commands would be the only ones that can provide
this.
Vitus
More information about the itaps-parallel
mailing list