**Introduction to Algorithms**

**(Sequential and Parallel Algorithms)**

**Spring 1998**

**OUTLINE (Tentative)**

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

- Homework on notation

- O, Omega, and Theta
- 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 © 1997-1998 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.