C S 377 - Principles and Applications of Parallel
Programming
Spring 2003 –
Instructor: J. C. Browne
1. Overview
Parallel
programming is broadening from its traditional applications in engineering and
scientific computation to data intensive and time-critical applications. The rise of the Internet and the Grid has
opened new opportunities for exploitation of parallelism.
This
class will introduce principles, methods and techniques for design,
implementation and use of parallel and distributed programming systems. The target audience are those interested in
developing parallel and distributed applications and those interested in
developing tools and methods for programming parallel and distributed
applications.
We
will use a broad range of parallel execution environments ranging from small
multiprocessors to clusters operated by TACC to the Internet itself.
2. Lectures
The
lecture topics to be covered will include:
Models
of Parallel Computation
Representative
Parallel/Distributed Algorithms
Overview
of Parallel Architectures
Design
of Parallel Programs
Measurement
and Evaluation of Parallel Programs
Selected
Parallel Programming Languages
Compilation
of Parallel Programming Languages
Debugging
of Parallel Programs.
3. Reference Materials and
Notes
The
text for the class is "Fundamentals of Parallel Processing" by Jordan
and Alaghband. This book is a survey of
topics. It will be supplemented by more
detailed reference materials including selected papers from the classical and
recent literature, copies of class notes and selected parallel programming
systems available from parallel programming research groups.
4. Work Requirements and
Grading
CS377
combines concepts and applications.
There will be outside assignments based on the lectures and a project
where class participants will develop a parallel program and measure and
analyze the execution properties of the parallel program.
a)
Programming Project – Each participant will create a substantive parallel
program in an area of interest, probably in the language system they
analyzed. Each participant can propose
a project or the instructor will assign projects for those who do not have a
project they wish to pursue. Projects may span from numerical computations on
multiprocessors to web-based collaboration systems. Program design and development will follow good practice. Programs will be analyzed for its properties
such as speed-up and scalability and the execution behavior of the programmed
measured and modeled.. Each participant
will give a presentation and prepare a report on the project and the resulting
program.
b) Examinations - There will be two
examinations, a mid-term and a final exam.
Examinations are open book and open notes and may scheduled for an
evening.
c)
Grades - Grades will be 40% on the projects and 40% on the examinations and 20%
on the outside assignments.
5. Lecture Schedule and
References
A
schedule of lecture topics and the reference material for each lecture will be
posted before the 3rd class meeting.
6. Academic Honesty
The
University has rules of conduct for students.
It is expected that you are or will make yourself familiar with these
rules of conduct and abide by them.