I o algorithms
This presentation is the property of its rightful owner.
Sponsored Links
1 / 15

I/O-Algorithms PowerPoint PPT Presentation


  • 49 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


I o algorithms

I/O-Algorithms

Lars Arge

Spring 2012

April 17, 2012


I o model

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


Fundamental bounds

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


Scalability problems block access matters

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


List ranking

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


List ranking1

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


List ranking2

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


List ranking bridge out in

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


List ranking independent set

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


List ranking 3 coloring

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


List ranking forward list coloring

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

`


Summary list ranking

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


Summary list ranking1

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


Algorithms on trees

I/O-algorithms

Algorithms on Trees

TBD


References

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


  • Login