itaps-parallel Proposal for handling queries with parts, sets, and partitions

Tim Tautges tautges at mcs.anl.gov
Wed Dec 19 08:49:09 CST 2007


The data model as I refer to it isn't about internal representation, 
it's part of the interface spec (I assert that it precedes the 
interface, in fact).  I use the term "data structure" to refer to 
internal representation.

- tim

Mark Shephard wrote:
> Tim,
> 
> I have never talked "data model" I have always spoke of functionality 
> and API functions and have always contended that I have no concern about 
> ones internal data model. Much of the discussion that got all this stuff 
> confused to begin with with what (instanses vs whatever vs whatever) is 
> forcing too much details of implementation data models into the process 
> of defining the API and its functions. As far as I am concerned we are 
> not keeping an eye on providing actual functionalities that are of use.
> 
> Our only concern is the interface functions and we have always responded 
> to the discussion of that topic. Onkar, Ting and others here have 
> provided documents on possible functions and will continue to respond to 
> discussion of the API functions. We are not in a position to respond on 
> how others that use various internal representation approaches address 
> their implementation (much of the recent discussion). We can say what we 
> can implement and can iterate with people on changes to the functions 
> such that we get a set that works for all.
> 
> Mark
> 
> Tim Tautges wrote:
>> But the language and constructs used to answer the questions (and to 
>> ask the questions) is what we call the data model.  For example, the 
>> data model says we pass references to entities back and forth using 
>> handles.  As proposed by you, the data model for parts refers to them 
>> using integer ids.  I think those ids could just as easily be handles, 
>> and your implementation could implement those handles as integers.
>>
>> As for how those are actually represented underneath, I strongly agree 
>> we shouldn't force implementations to use one thing or another.  I'm 
>> just saying the handles used to refer to parts and partitions should 
>> also be usable in the other functions that deal with sets.  I wasn't 
>> very careful in making this distinction in my writeup I sent earlier.
>>
>> So, to go back to my original question, and back to what we had agreed 
>> going out of the last bootcamp: why can't we pass part/partition 
>> handles into existing functions in place of set handles, and have them 
>> interpreted specially if they happen to be part/partition handles? 
>> Mark, that wouldn't force you to actually represent parts/partitions 
>> as sets; you could interpret set handles in a specific range as 
>> part/partition ids.
>>
>> This would make the question of efficient booleans on the results 
>> completely separable from the parallel interface discussion, as well 
>> as allowing us to use our current function set dealing with entity 
>> sets to also apply to parts/partitions.
>>
>> - tim
>>
>> Mark Shephard wrote:
>>> Tim,
>>>
>>> No that is not true!!! The questions asked by an interface do not 
>>> require specific information be stored. It requires the ability to 
>>> answer the question!!!!! We very much use a partition model without 
>>> sets or explicit storage of reverse classification. Reasons for this 
>>> are explained in various papers. However, knowing that is less the 
>>> issue. The reason for interface API is to allow people to answer the 
>>> questions, not force them to use specific structures.
>>>
>>> Mark
>>>
>>> Tim Tautges wrote:
>>>> Then why do we need functions operating on parts or partitions at 
>>>> all? Those are reverse classification-type queries, right?
>>>>
>>>> - tim
>>>>
>>>> Mark Shephard wrote:
>>>>>
>>>>>
>>>>> Since the first thing that was agreed to is that there would be the 
>>>>> ability to deal parts that does not require an implementation to do 
>>>>> things via sets (reverse classification), I sure hope we are not 
>>>>> getting this issue confused again. As discussed in some technical 
>>>>> detail at the boot camp, there are two high level approaches one 
>>>>> based on classification (no use of sets) and reverse classification 
>>>>> (what sets do well). All the SCOREC tools that are being used for 
>>>>> parallel adaptive simulations, and (in the past) for parallel mesh 
>>>>> generation, are based on a classification approach.
>>>>>
>>>>> Onkar Sahni wrote:
>>>>>>> So again, I go back to asking: what are the core needs that 
>>>>>>> prevent us
>>>>>>> from using sets as both parts and partitions?  The entity set 
>>>>>>> mechanism
>>>>>>> was designed with this specific usage in mind.
>>>>>>
>>>>>> If "sets as both parts and partitions" mean using entity-sets then 
>>>>>> we have
>>>>>> already discussed this in great detail. I think the question in 
>>>>>> discussion
>>>>>> is irrespective of how one implements parts and partitions? If I
>>>>>> understood the question right then we need to answer queries which 
>>>>>> involve
>>>>>> a specific part and a specific entity-set (where entity-set may 
>>>>>> span more
>>>>>> than one part, may be local to a process). Now, if it is implied that
>>>>>> choosing entity-sets for both parts and partitions allows to use set
>>>>>> operations (booleans), outside the interface explicitly by 
>>>>>> applications,
>>>>>> to answer such queries well then applications might as well do it 
>>>>>> in other
>>>>>> equivalent ways (for example, loop over entities in set and ask 
>>>>>> residence
>>>>>> parts to get entities in the entity-sey belonging to a specific 
>>>>>> part).
>>>>>>
>>>>>> - Onkar
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>>
>>
> 
> 

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