CS 633: Parallel Computing

Course Contents:

Introduction: Paradigms of parallel computing: Synchronous - vector/array, SIMD, Systolic; Asynchronous - MIMD, reduction paradigm.

Hardware taxonomy: Flynn's classifications, Handler's classifications.

Software taxonomy: Kung's taxonomy, SPMD.

Abstract parallel computational models: Combinational circuits, Sorting network, PRAM models, Interconnection RAMs. Parallelism approaches - data parallelism, control parallelism

Performance Metrices: Laws governing performance measurements. Metrices - speedups, efficiency, utilization, communication overheads, single/multiple program performances, bench marks.

Parallel Processors: Taxonomy and topology - shared memory mutliprocessors, distributed memory networks. Processor organization - Static and dynamic interconnections. Embeddings and simulations.

Parallel Programming: Shared memory programming, distributed memory programming, object oriented programming, data parallel programming, functional and dataflow programming.

Scheduling and Parallelization: Scheduling parallel programs. Loop scheduling. Parallelization of sequential programs. Parallel programming support environments.

Books and References:

M. J. Quinn.Parallel Computing: Theory and Practice, McGraw Hill, New York, 1994.

T. G. Lewis and H. El-Rewini.Introduction to Parallel Computing, Prentice Hall, New Jersey, 1992.

T. G. Lewis.Parallel Programming: A Machine-Independent Approach, IEEE Computer Society Press, Los Alamitos, 1994.

Research articles.