i o algorithms
Download
Skip this Video
Download Presentation
I/O-Algorithms

Loading in 2 Seconds...

play fullscreen
1 / 15

I/O-Algorithms - PowerPoint PPT Presentation


  • 73 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' I/O-Algorithms' - hisano


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-algorithmsI/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-AlgorithmsFundamental 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-AlgorithmsScalability 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-algorithmsList 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-algorithmsList 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
references
I/O-algorithmsReferences
  • 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
ad