Parallel Computing Seminar

COMP 290-33 (3.0 cr.)
Spring Semester 1996

Meeting Times:
M,W 12.30 - 1.45 in SN325

Instructor:
Jan Prins (SN355, phone: 962-1913, email: prins@cs.unc.edu)
Office hours: M,T 2.00 - 3.00 or by appointment.

Secretary:
Madelyn Mann (SN318, phone: 962-1922, email: mann)

Course Overview

High-performance computation using parallel processors has been widely anticipated, but is proving considerably more difficult to achieve than originally imagined. The objective of this seminar course is to understand the difficulties in parallel processing and to ameliorate them through the use of better analytical models, algorithms, programming notations, compilers, and parallel computers.

We will consider algorithms for a number of regular and irregular problems and study techniques for their efficient implementation on a variety of different parallel architectures.

The course will be organized around a set of papers from the research literature. Participants are expected to take an active part in the presentation and discussion of the results.

Prerequisites

Familiarity with the basic concepts of parallel computing as covered in COMP 203 (Parallel and Distributed Computing) or equivalent is expected. Experience with algorithm design and analysis techniques as well as programming language concepts will be helpful.

Course Requirements

The requirements for this class are to present paper(s) on one of the topics, and to complete a term project. The term project includes a written report and possibly an implementation study. The topic of the term project can be negotiated with me.

Readings

A reading list for the course will be placed on-line. To receive hard copy of the papers, it is necessary to register with Madelyn Mann in SN018 and pay a subscription charge of approx. $0.05 per page at the end of the semester. One set of papers will be placed on reserve in the second floor reading room.

Topics to be covered

Analytical Models for Parallel Computation

Work/Time model
Bulk Synchronous Processing (BSP) model
LogP model
Uniform and Hierarchical memory models

Algorithms

Case studies
Sorting, FFT, fast N-body methods, sparse linear system solvers,
adaptive multigrid solvers, connected components algorithms

Design Techniques
Randomization, fast primitives, tensor-product methods

Programming Notations & Compilation

Generalized data-parallelism (Flattening and vectorization)
Concurrent Objects (Active messages)
Coordination Languages (Implicit scheduling)
Runtime support for irregular computations

Parallel Computer Architectures

Performance characteristics
memory hierarchy, interconnect, synchronization

Additional Topic (time permitting)

I/O: performance characterization and issues