C S 392C - Methods and Techniques for Parallel Programming

Fall 2001 Instructor: J. C. Browne

 

Overview

This class will introduce methods and techniques for design, implementation and use of parallel 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.

  1. Lectures

The lecture topics to be covered will include:

  1. Reference Materials and Notes
  2. Reference materials for the course will be selected papers from the classical and recent literature, copies of class notes and selected parallel programming systems available from parallel programming research groups.

    The instructor is currently evaluating possible textbooks.

  3. Work Requirements and Grading

CS392C is essentially a project course but will have one exam over fundamental concepts.

3.1 Projects - The projects will have two parts: evaluation of a parallel programming system and development, measurement and evaluation of a substantial parallel program.

a) Parallel Programming Systems - Each participant will select or be assigned a parallel programming system from the research literature to analyze for its properties. The analysis will be expected to define:

The participants will give presentations in class on these topics during the semester and complete the class with a written report summarizing the content of the presentations. Programming systems used in past offerings of CS392C include Java, CODE, Linda and MPI.

b) 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. The program will be analyzed for its properties such as speed-up and scalability. Each participant will give a presentation and prepare a report on the project and the resulting program.

3.2 Exam - There will be one exam which will come after the instructor has completed the lectures on fundaments of parallel programming. The exam will be open book and open notes and will be scheduled for an evening.

  1. Work Products and Grades

The work products for the class are:

    1. A presentation on a programming system.
    2. A project report including the design documents, the source code, test and evaluation cases, an analysis of the program and an analysis of the programming system in the context of the project.
    3. A presentation on the project.

Grades will be 70% on the projects and 30% on the exam. Th class participants will be asked their opinions on the presentations.