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)
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.
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.
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.
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.
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