# Sorting in the Bit Model, Example Problems

Tom Kelliher, CS 315

Feb. 1, 1999

# Administrivia

### Assignment

Read Section 1.1.3.

### From Last Time

Algorithm assessment, simulating larger machines, example problems

### Outline

1. Sorting in the bit model.

2. Example problems.

Lower bounds.

# Sorting in the Big Model

1. Why get more detailed? To see how much work (e.g., #number of transistors) is involved in, for instance, comparison.

2. A linear array bit-level model of a compare cell: Compare, notify.

Assume we have k-bit numbers. Run time?

3. Can we do better? Yes. We can do comparisons in parallel and merge the partial results: Compare, notify.

Run time?

Notes:

1. Why not use a height 1 tree?

2. Fan-in and fan-out in circuits.

## Sorting

1. Run-time for sorting on a linear array of linear array comparators. Binary tree comparators.

What do they look like?

2. Pipelining the linear comparators. Pipelining the compare: Five in, four out.

A lot of parallel work. Systolic computation.

3. Pipelining the sort. Just a linear array of the comparators: Running time?

# Example Problems

1.2
Consider two algorithms for solving a a problem of size M, one that runs in M steps on an M-processor machine and one that runs in steps on an -processor machine. Which algorithm is more efficient?

Assume that the cost of running a P-processor machine for T steps is , where and are constants and P = M or . For what values of and is the first algorithm cheaper to run? For what values of and is the second algorithm cheaper to run?

1.3
Consider two algorithms for solving a problem of size M, one that runs in M steps on an M-processor machine and one that runs in steps on an -processor machine. Which algorithm will run faster on an N-processor machine? (Hint: Your answer depends on the relative sizes of M and N, and you will need to use the fact that an N-processor machine can simulate a P-processor machine with slowdown .)

Thomas P. Kelliher
Mon Feb 1 10:06:51 EST 1999
Tom Kelliher