CS4/531: Russ Miller's Outline
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
- Sorting Networks
- Combinational Circuits
- Comparator
- Wire
- Batcher's Bitonic MergeSort
- Homework on Sorting Networks
- 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
- 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
- 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
- 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
- Homework problems on D&C
- 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 n2)
- Convex Hull (Image)
- Convex Hull for planar point data (n items on MOT of
size n2)
- Bus-Based Models
- Meshes with Buses
- Sample problems
- Reconfigurable Meshes
- Sample problems
- Homework problems for bus-based models
- 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.