Introduction to Parallel Computation

RISC logo

Schedule and Contents

Introduction
Parallel machine models, parallel programming models, a parallel algorithm.
Vector Programming I
Pipelining, vector architectures, vector instructions, chaining, vector libraries, vector statements, vectorizing compilers.
Vector Programming II
(Exercise, Fortran Program)

Convex 3440 architecture and programming, vectorization, strip mining, loop distribution, loop interchange, temporal and spatial parallelism.

Designing Parallel Programs
Methodological design, partitioning, communication, agglomeration, mapping, modularity, examples.
SIMD Programming I
(Maspar Program)

Data parallelism, SIMD architectures, Maspar MP-1 architecture and programming.

SIMD Programming II
(Exercise, C Program)

Mesh algorithms, cube algorithms, mapping strategies.

Performance of Parallel Programs
Speedup, efficiency, Amdahl's law, scaled speedup, Gustavson's law, load balancing.
Shared Memory Programming I
Shared memory architectures, automatic scheduling, cache policies, synchronization mechanisms, Unix programming.
Shared Memory Programming II
(Exercise, C Program)

Sequent Symmetry architecture and programming, micro-tasking library, data decomposition policies, algorithm examples.

Message Passing Programming I
Distributed memory systems, workstation clusters, static interconnection topologies, switched networks, whormhole routing.
Message Passing Programming II
(Exercise)

nCube/2 architecture and programming, row/column oriented algorithms, block-oriented algorithm, mapping, Gray codes.

Scheduling and Performance Analysis
Static scheduling, Graham's scheduling algorithm, deadlocks, performance tools.

Maintained by: Wolfgang Schreiner
Last Modification: September 4, 1996

[Previous] [Up] [Next] [RISC] [University] [Search]