I/O-Algorithms

1 / 15

# I/O-Algorithms - PowerPoint PPT Presentation

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&gt;B 2

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

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

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

Lars Arge

Spring 2012

April 17, 2012

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

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
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

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

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

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

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

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
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

3

4

5

9

8

7

10

2

6

I/O-algorithms

List Ranking: Forward List Coloring
• 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

`

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

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
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