[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