[petsc-dev] LLCondensed work
    Matthew Knepley 
    knepley at gmail.com
       
    Tue Dec 20 13:03:43 CST 2011
    
    
  
On Mon, Dec 19, 2011 at 10:54 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
>
> On Dec 19, 2011, at 9:30 PM, Matthew Knepley wrote:
>
> > I looked at the new checkins for fast MatMatSym. It looks to me like you
> want a data
> > structure that has
> >
> >   a) O(N) space, where N is the number of entries
> >
> >   b) fast insert
> >
> >   c) fast traversal
> >
> > It seems like the best data structure of this is
> >
> >    http://en.wikipedia.org/wiki/Y-fast_trie
>
>    Wikipedia sucks for all sort/search algorithms; there is no
> discussion/mention of what happens with duplicate keys at all.  We have
> many many duplicates that must be eliminated.
>
>   Note that the result is always generated as the merging of "a bunch of
> sorted lists", thus an algorithm that takes advantage of the sorted nature
> seems advantages. I tried a heap based scheme but that ended up being
> useless because of the duplicate issue.
Okay, so you want fast Merge-wo-Duplicates and Traverse. To summarize
Option 1: What is currently there
  Merge-wo-Duplicates:
    A Fortran-style linked list is used to hold the indices, a PetscBT
(bitmap) is used to check for membership.
    The indices are pushed in one-by-one, checking the BT each time
 Option 2: Brain dead
    Put values directly after current values and sort in place
  Option 3: Traditional
    Put values directly after and merge in place (std::inplace_merge)
Both 2 and 3 are not taking account of duplicates. I see at least three
ways to do this:
  1) Use a PetscBT and ignore duplicates in the input array
  2) Use a PetscBT and squish duplicates out of the output array (prob too
much data movement)
  3) Ignore duplicates on traversal. This would be fast, its just a
question of the memory overhead
     Matt
>
>   Barry
>
> >
> > It has O(N) space, and O(log log M) where M is the maximum key size. It
> basically
> > uses prefix compression on the bitwise representation of the keys, so
> that runs of
> > consecutive integers are handled well.
> >
> > So far, I cannot find any free implementations.
> >
> >    Matt
> >
> > --
> > What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> > -- Norbert Wiener
>
>
-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which their
experiments lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20111220/55545567/attachment.html>
    
    
More information about the petsc-dev
mailing list