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

Mark Shephard shephard at scorec.rpi.edu
Wed Dec 19 14:21:42 CST 2007


We agree to look at it differently. So long as we define interface 
functions we can all live with.

Tim Tautges wrote:
> 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
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
> 




More information about the itaps-parallel mailing list