Download presentation

Presentation is loading. Please wait.

Published byQuinn Hawkes Modified over 2 years ago

1
Casper Kejlberg-Rasmussen 1/16 Cache-Oblivious Implicit Predecessor Dictionaries with the Working-Set Property Casper Kejlberg-Rasmussen Joint work with Gerth Stølting Brodal

2
Casper Kejlberg-Rasmussen 2/16 Outline Problem Definitions Previous Results An Implicit Moveable Dictionary An Implicit Dictionary with the Working-Set Property

3
Casper Kejlberg-Rasmussen 3/16 Problem Definitions Implicit model: All operations from the RAM It is not allowed to create words, only to move them All n words have to be in continuous positions Often it is assumed that all elements are distinct Fundamental trick: encode a bit in a pair of elements... n1 yx b b= 0, if x=min(x,y) 1, if x=max(x,y)

4
Casper Kejlberg-Rasmussen 4/16 Problem Definitions Element e has a working-set number of l e iff: l e elements different from e have been searched for since we last searched for e An Implicit Dictionary with the Working-Set Property: Insert(e): insert element e into the dictionary and set l e =0 Delete(e): delete element e from the dictionary Search(e): determine if e is in the dictionary and set l e =0 Predecessor(e): find the address of the predecessor of e Successor(e): find the address of the successor of e 12345 l e : 01234 46 5

5
Casper Kejlberg-Rasmussen 5/16 Outline Problem Definitions Previous Results An Implicit Moveable Dictionary An Implicit Dictionary with the Working-Set Property

6
Casper Kejlberg-Rasmussen 6/16 Previous Results Ref. WS prop. Insert/ Delete(e) Search(e) Predecessor/ Successor(e) Additional words M1986-O(log 2 n) -None FGMP 2002 -O(log 2 n/loglog n) -None FG2006-O(log n) amor.O(log n) None FG2003-O(log n) None I2001+O(log n)O(log l e )O(log l e * )O(n) BHM 2009 +O(log n)O(log l e ) exp.O(log n)O(loglog n) BHM 2009 +O(log n)O(log l e ) exp.O(log l e * ) exp.O(√n) BKT 2010 +O(log n)O(log l e )O(log n)None BK2011+O(log n)O(log min(l p(e), l e, l s(e) ))O(log l e * )None e * is the predecessor/successor of e

7
Casper Kejlberg-Rasmussen 7/16 Outline Problem Definitions Previous Results An Implicit Moveable Dictionary An Implicit Dictionary with the Working-Set Property

8
Casper Kejlberg-Rasmussen 8/16 A implicit moveable dictionary laid out in memory addresses [i;j] Interface: Insert-left/right(e): insert element e into the dictionary which grows to the left/right Delete-left/right(e): delete element e from the dictionary which shrinks from the left/right Search(e): finds the address of e if e is in the dictionary Predecessor(e): finds the address of the predecessor of e Successor(e): finds the address of the successor of e An Implicit Moveable Dictionary ij i-1

9
Casper Kejlberg-Rasmussen 9/16 An Implicit Moveable Dictionary Uses O(1) FG dictionaries as black boxes Recall the FG interface: Insert-right(e): insert element e into the dictionary which grows to the right Delete-right(e): delete element e from the dictionary which shrinks from the right Search(e): finds the address of e if e is in the dictionary Predecessor(e): finds the address of the predecessor of e Successor(e): finds the address of the successor of e LCR

10
Casper Kejlberg-Rasmussen 10/16 An Implicit Moveable Dictionary L and R will shrink and grow over time L/R might get too small L/R might get too large compared to C We introduce the notion of jobs Grow-left/right – Counters when L/R gets too small Shrink-left/right – Counters when L/R gets too large Jobs run O(1) steps every operation: searches, updates LCR

11
Casper Kejlberg-Rasmussen 11/16 An Implicit Moveable Dictionary LCRLCRL’LCR LCR CRLCRL Grow-left LCRL’ CRLCRL Shrink-left CRL’LCR LCRL ij ii’k’k Address-mapping

12
Casper Kejlberg-Rasmussen 12/16 Outline Problem Definitions Previous Results An Implicit Moveable Dictionary An Implicit Dictionary with the Working-Set Property

13
Casper Kejlberg-Rasmussen 13/16 An Implicit Dictionary with the Working-Set Property Exponential layout B i consists of O(1) moveable dictionaries All elements e in B i have l e ≥2 2 i-1+k or l e ≥2 2 i+k Searched and inserted elements are moved into B 0 (overflows) These are the ideas we used in the ISAAC 2010 paper Only gives O(log n) bounds for predecessor and successor searches: invariants do not relate e and its prede/succ-essor B0B0 B1B1 B2B2 B m-1 BmBm BiBi... |B i |=Θ(2 2 i+k ) m=O(loglog n)

14
Casper Kejlberg-Rasmussen 14/16 An Implicit Dictionary with the Working-Set Property Divide the key-space into mutually disjoint intervals aligned with the points/elements Invariant: any point/element, intersecting an interval at level i, lies in block B i Predecessor/Successor(e) searches can terminate when an interval at level i is intersected B0B0... B1B1 B2B2 B m-1 BmBm Intervals to solve the predecessor and successor problems e

15
Casper Kejlberg-Rasmussen 15/16 An Implicit Dictionary with the Working-Set Property B0B0... B1B1 B2B2 B m-1 BmBm B i-1 B i+1 DiDi AiAi RiRi WiWi HiHi CiCi GiGi Arriving Resting Waiting Helping Climbing Guarding l e ≥2 2 i-1+k l e ≥2 2 i+k l e ≥2 2 max(i,j)-1+k Representing the intervals implicitly

16
Casper Kejlberg-Rasmussen 16/16 Thank you References 1)Cache-Oblivious Implicit Predecessor Dictionaries with the Working-Set Property Gerth Stølting Brodal, Casper Kejlberg-Rasmussen Submitted to STACS 2012 Available at cs.au.dk/~ckr/papers/STACS2012_Submission.pdf 2)A Cache-Oblivious Implicit Dictionary with the Working Set Property Gerth Stlting Brodal, Casper Kejlberg-Rasmussen, Jakob Truelsen ISAAC 2010

Similar presentations

OK

X1x1 x2x2 top-k y 3-sided x1x1 x2x2 External Memory Three-Sided Range Reporting and Top-k Queries with Sublogarithmic Updates Gerth Stølting Brodal Aarhus.

X1x1 x2x2 top-k y 3-sided x1x1 x2x2 External Memory Three-Sided Range Reporting and Top-k Queries with Sublogarithmic Updates Gerth Stølting Brodal Aarhus.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google