CS267 Handout 1: Class Introduction

Spring 1995

This class will equip students to use existing parallel computers, vector computers, and networks of high-performance workstations to solve large computational problems in engineering and science. We will discuss parallel computer architectures and software systems so as to understand their capabilities, limitations, and costs. We will also discuss a variety of parallel algorithms and applications, studying the tradeoffs among different solutions. Sample problems and applications we consider will include particle simulations, linear algebra, and large systems of differential equations arising in heat flow and global climate modeling; other topics will depend on student interest. We expect and welcome students from diverse backgrounds and departments, and will spend time on needed background from computer architecture, software, and numerical analysis. Most of the class will be spent on particular parallel algorithms and implementations for scientific problems.

Class material will be made available in several formats:

  • A text book will be in local bookstores: ``Introduction to Parallel Computing: Design and Analysis of Algorithms'', by V. Kumar, A. Grama, A. Gupta, and G. Karypis, published by Benjamin-Cummings. This book covers many of the theoretical topics in the class, but not the software issues, which change much faster than traditional books can be published.
  • An enormous amount of material is available via the World Wide Web (WWW); see the URLs (Universal Resource Locations) listed here. We will attempt to make as much class material available this way as possible, including class handouts, research papers, documentation and manuals.
  • Some papers and manuals which cannot be put on the WWW for size, copyright, or format reasons will be copied and made available at Copy Central at 1862 Euclide near Hearst (849-9600).
  • Documentation and manuals too large or illegal to put on the WWW will be bound and made available both in the Soda Hall Reading Room (681 Soda Hall) and/or Bechtel Engineering Library.
  • Students will do several programming assignments, a midterm (to help those students planning to take the CS Parallelism Prelim), and a final project (a substantial parallel programming project). Programming assignments and the final project will be done by ``mixed'' teams of 2 or 3 students, where a mixed team has at least one CS student and one non-CS student. This field is interdisciplinary, with diverse knowledge of computer science and the relevant application needed to solve a problem. This is too much for most individuals to know, so work is typically done by interdisciplinary teams, and it is therefore important to learn to work with people in other disciplines. In this spirit, students must change partners for each programming assignment, in order to get to know as many potential final project partners as possible.

    Machines available to the class include the Thinking Machines CM-5, IBM SP-1, and a network of high performance workstations. Class accounts will be made available early in the semester.

    The most important part of the class is the final project. Students are invited to bring their own applications to parallelize, but I will supply a list with many suggestions. At the end of the semester we will have a ``poster session'' where all projects will be presented.

    Grades will be based on homework (25%), midterm (25%), and final project (50%).