**Introduction to Algorithms**

**(Sequential and Parallel Algorithms)**

**Spring 1997**

*Remark*: I am trying an experiment this semester.

- I am going to try and keep my course notes (i.e., the notes I use to teach from during class) on line, using Word 6.0c on a PC, augmented with Microsoft Internet Assistant (IA).
- I will then use IA to convert the files from Word format to html, and post the resulting file on the Web (you are reading it now).
- I will continually do a subjective cost/benefit analysis and
we will see how far things get.
- Be aware that IA converts to HTML 2.0, which includes almost no interesting features.
- In particular, HTML currently does not support any nontrivial math/symbols (e.g., no superscripts or subscripts, no Greek characters, no special symbols, etc.).

- I am skeptical about how far I will get in an algorithms-based course without support for mathematical expressions, in terms of the notes I am preparing being of use to the students. (Note: keeping my notes on-line only increases my course preparation time.)
- So, we will start with the course outline - notice the second line already has 2 symbols (Theta and Omega) missing, as do numerous other lines - and then I will move on to the first couple of days of lecture notes.

**OUTLINE**

- Asymptotic Analysis: Review
- O, , and
*very*briefly - Handouts on notation
- Back of M&S text
- SIG handout - put on web (?)
- CLR book or other data structures/algorithms books (reference)

- Homework on notation

- O, , and
- Sorting Networks
- Combinational Circuits
- Comparator
- Wire

- Batcher's Bitonic MergeSort
- Homework on Sorting Networks

- Combinational Circuits
- Introduction to Parallel Algorithms and Architectures
- RAM
*(A, 36-39)*- Memory with
*m*locations - Processor (1)
- Memory Access Unit
- Each step of an algorithm:
- Read phase
- Compute phase
- Write phase

- Discuss time per step

- Memory with
- PRAM
*(A, 39-50)**n*identical processors- A common memory with
*m*locations - Memory Access Unit
- Memory Access:
- Exclusive Read
- Concurrent Read
- Exclusive Write
- Concurrent Write
- Priority CW
- Common CW
- Arbitrary CW
- Random CW
- Combining CW

- Discuss time per step
- Simple examples on PRAM
- Minimum
- Broadcast
- Prefix
- Finding roots in a forest
- Running sum
- Running minimum

- Search

- Distributed Memory vs. Shared Memory
- Distributed Address Space vs. Global Address Space
- Interconnection Networks
- Measures
- Maximum degree of a processor
- Communication Diameter
- Bisection Width
- Time to perform basic operations

- Models (discuss: measure, searching, semigroup)
- PRAM (as means of comparison)
- Linear Array and Ring
- Mesh
- Mesh-of-Trees
- Pyramid
- Hypercube

- Measures
- SIMD vs. MIMD
- Granularity
- General Performance Measures
- Running time:
- Cost:
- Work
- Speedup:
- Efficiency:
- Discuss relationship between measures and discuss goals of algorithm development
- Amdahl's Law: , where is the fraction of operations that must be performed sequentially.

- Homework on models of computation

- RAM
- Matrix Multiplication
- PRAM
- Mesh

- Parallel Prefix
*(A, chapt 4)*- Review
- Problems that can be solved with prefix
- Maximum Sum Subsequence
- Array Packing
- Interval Broadcasting
- Computing Cliques of Circular Arcs
- Simple Point Domination

- Homework on Prefix Problems and their Applications

- Pointer Jumping
- Parallel Prefix
- List Ranking
- Euler Tour (?)
- Depth-First Traversal and Applications
- Breadth-First Traversal and Applications

- Connected Components (?)

- Divide-and-Conquer
- Define and give generic solution strategy
- Fundamental Problems :
- Mergesort
- Sequential Explanation and Analysis
- Mergesort on Linear Array
- Reminder of Bitonic Sort (i.e., parallel merge)
- Bitonic Sort on Hypercube
- Bitonic Sort on Mesh

- Quicksort
- Generic explanation and solution
- Array Implementation
- Worst-Case Analysis
- Expected-Case Analysis

- Medium-/Coarse-Grained Parallel Implementation

- Advanced Problems (sequential and parallel implementations):
- Image Processing
- Component Labeling
- Internal Distances
- Convex Hull

- Computational Geometry
- Convex Hull
- All-Nearest Neighbors
- Line Segment Intersection

- Image Processing
- Homework problems on D&C

- Mergesort
- The Greedy Method
*(B&P, chapt 12)*- Define and give generic solution strategy
- Examples (discuss sequential and parallel implementations):
- Optimal Sequential Storage Order
- Knapsack Problem
- Minimum Spanning Tree
- Kruskal's Algorithm
- Prim's Algorithm

- Shortest Path Algorithms

- Homework problems on Greedy Algorithms

- Mesh-of-Trees
- Enumeration Sort (
*n*items on MOT of size*n*2) - Convex Hull (Image)
- Convex Hull for planar point data (
*n*items on MOT of size*n*2)

- Enumeration Sort (
- Bus-Based Models
- Meshes with Buses
- Sample problems

- Reconfigurable Meshes
- Sample problems

- Homework problems for bus-based models

- Meshes with Buses
- Dynamic Programming (??)
- Sequential
- Mesh

*Russ Miller (miller@cs.buffalo.edu)*

Copyright © 1996-1997 by Russ Miller.

All rights reserved. No part of this document may be used in any form by any electronic or mechanical means without permission in writing by the author.