1 / 15

I/O-Algorithms

I/O-Algorithms. Lars Arge Spring 2012 April 17, 2012. I/O-Model. Parameters N = # elements in problem instance B = # elements that fits in disk block M = # elements that fits in main memory T = # output size in searching problem We often assume that M>B 2

hisano
Download Presentation

I/O-Algorithms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. I/O-Algorithms Lars Arge Spring 2012 April 17, 2012

  2. I/O-algorithms I/O-Model • Parameters N = # elements in problem instance B = # elements that fits in disk block M = # elements that fits in main memory T = # output size in searching problem • We often assume that M>B2 • I/O: Movement of block between memory and disk D Block I/O M P

  3. I/O-Algorithms Fundamental Bounds Internal External • Scanning: N • Sorting: N log N • Permuting • Searching: • Note: • Linear I/O: O(N/B) • Permuting not linear • Permuting and sorting bounds are equal in all practical cases • B factor VERY important: • Cannot sort optimally with search tree

  4. I/O-Algorithms Scalability Problems: Block Access Matters • Example: Traversing linked list (List ranking) • Array size N = 10 elements • Disk block size B = 2 elements • Main memory size M = 4 elements (2 blocks) • Large difference between N and N/B large since block size is large • Example: N = 256 x 106, B = 8000 , 1ms disk access time N I/Os take 256 x 103 sec = 4266 min = 71 hr N/B I/Os take 256/8 sec = 32 sec 1 5 2 6 3 8 9 4 10 1 2 10 9 5 6 3 4 7 7 8 Algorithm 1: N=10 I/Os Algorithm 2: N/B=5 I/Os

  5. 3 4 5 9 8 7 10 2 6 I/O-algorithms List Ranking • Problem: • Given N-vertex linked list stored in array • Compute rank (number in list) of each vertex • One of the simplest graph problem one can think of • Straightforward O(N) internal algorithm • Also uses O(N) I/Os in external memory • Much harder to get external algorithm 1 5 2 6 3 8 9 4 10 7

  6. I/O-algorithms List Ranking • We will solve more general problem: • Given N-vertex linked list with edge-weights stored in array • Compute sum of weights (rank) from start for each vertex • List ranking: All edge weights one • Note: Weight stored in array entry together with edge (next vertex) 1 1 1 1 1 1 1 1 1 5 2 6 3 8 9 4 10 7 1 1

  7. 2 2 2 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 10 I/O-algorithms List Ranking • Algorithm: • Find and mark independent set of vertices • “Bridge-out” independent set: Add new edges • Recursively rank resulting list • “Bridge-in” independent set: Compute rank of independent set • Step 1, 2 and 4 in I/Os • Independent set of size αN for 0 < α≤ 1 I/Os 1 1 1 1

  8. 3 4 8 9 7 10 2 6 8 3 4 5 9 7 10 2 6 8 3 4 5 9 7 10 2 6 I/O-algorithms List Ranking: Bridge-out/in • Obtain information (edge or rang) of successor • Make copy of original list • Sort original list by successor id • Scan original and copy together to obtain successor information • Sort modified original list by id I/Os 2 10 4 6 5 9 8 2 7 3 1 1

  9. 3 4 5 9 8 7 10 2 6 I/O-algorithms List Ranking: Independent Set • Easy to design randomized algorithm: • Scan list and flip a coin for each vertex • Independent set is vertices with head and successor with tails  Independent set of expected size N/4 • Deterministic algorithm: • 3-color vertices (no vertex same color as predecessor/successor) • Independent set is vertices with most popular color  Independent set of size at least N/3 • 3-coloring  I/O algorithm

  10. I/O-algorithms List Ranking: 3-coloring • Algorithm: • Consider forward and backward lists (heads/tails in two lists) • Color forward lists (except tail) alternately red and blue • Color backward lists (except tail) alternately green and blue  3-coloring 3 4 5 9 8 7 10 2 6

  11. 3 4 5 9 8 7 10 2 6 I/O-algorithms List Ranking: Forward List Coloring • Identify heads and tails • For each head, insert red element in priority-queue (priority=position) • Repeatedly: • Extract minimal element from queue • Access and color corresponding element in list • Insert opposite color element corresponding to successor in queue • Scan of list • O(N) priority-queue operations  I/Os `

  12. 3 4 5 9 8 7 10 2 6 I/O-algorithms Summary: List Ranking • Simplest graph problem: Traverse linked list • Very easy O(N) algorithm in internal memory • Much more difficult external memory • Finding independent set via 3-coloring • Bridging vertices in/out • Permuting bound best possible • Also true for other graph problems 1 5 2 6 3 8 9 4 10 7

  13. 3 4 5 9 8 7 10 2 6 I/O-algorithms Summary: List Ranking • External list ranking algorithm similar to PRAM algorithm • Sometimes external algorithms by “PRAM algorithm simulation” • Forward list coloring algorithm example of “time forward processing” • Use external priority-queue to send information “forward in time” to vertices to be processed later

  14. I/O-algorithms Algorithms on Trees TBD

  15. I/O-algorithms References • External-Memory Graph Algorithms Y-J. Chiang, M. T. Goodrich, E.F. Grove, R. Tamassia. D. E. Vengroff, and J. S. Vitter. Proc. SODA'95 • Section 3-6 • I/O-Efficient Graph Algorithms Norbert Zeh. Lecture notes • Section 2-4 • Cache-Oblivious Priority Queue and Graph Algorithm Applications L. Arge, M. Bender, E. Demaine, B. Holland-Minkley and I. Munro. SICOMP, 36(6), 2007 • Section 3.1-3-2

More Related