CS267 Handout 1

Class Introduction

Spring 1996

Overview

This class will equip students to use existing parallel computers, (networks of) high-performance workstations, and vector computers 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.

Coteaching with MIT

As an experiment, we will be sharing some lectures during the semester with an analogous course at MIT this semester: 18.337 Parallel Scientific Computing, by Prof. Alan Edelman. We will use 127 Dwinelle for these lectures, a well-equipped video classroom, with a high-speed real-time link to MIT. The first lecture is planned for Feb 8, when Prof. W. Kahan will give a guest lecture on floating point arithmetic (a topic for which he was awarded the 1989 ACM Turing Award, the highest award in Computer Science). Because of the time difference between MIT and Berkeley, this will be a 60 minute lecture, from 12:30pm until 1:30pm, followed by 30 "unconnected" minutes at Berkeley. We will schedule more or fewer of these shared lectures, depending on how well this technology works.

Class Materials

Class material will be made available in several formats:
  • Detailed lecture notes are available on the CS 267 class homepage. We will be updating and adding material to them throughout the semester. They will eventually be published as a regular book, but this will not be available this semester. There will be no other text book.
  • An enormous amount of other material is available via the World Wide Web (WWW); see the URLs (Universal Resource Locations) listed on the class homepage. We will attempt to make as much class material available this way as possible, including class handouts, research papers, documentation and manuals.
  • Documentation and manuals too large or too illegal to put on the WWW will be bound and made available both in the Soda Hall Reading Room (681 Soda Hall) and Bechtel Engineering Library. We will also put the textbook used in 1995 on reserve: ``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.
  • Other papers and manuals which cannot be put on the WWW for size, copyright, or format reasons may be copied and made available at Copy Central at 1862 Euclid near Hearst (849-9600). We will announce this if we do this.
  • Assignments

    Students will do several programming assignments, possibly 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 are strongly encouraged to change partners for each programming assignment, in order to get to know as many potential final project partners as possible.

    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.

    For a look at what previous projects have involved, see the lists on the class homepage. Projects have been in all engineering and scientific disciplines. One project from the last class, which has been developed considerably since then by Paul Gauthier and Prof. Eric Brewer, recently received money from venture capitalists in order to commercialize it. So many things are possible!

    Computing facilties

    Parallel and other high performance machines available to the class include a 32 processor Thinking Machines CM-5, an 8 processor IBM SP-1, a network of 16 or 32 high performance workstations in Soda Hall (NOW), a 4-processor SPARCstation-10 at ICSI, and some IBM RS6000/590 workstations. Class accounts will be made available early in the semester. You have to be registered to get accounts on these parallel machines. You are also welcome to use other parallel machines, if they are available to you. I assume people have access to workstations somewhere on campus. See me if this is not the case.

    Grading

    Grades will be based on homework (25%), midterm (25%), and final project (50%). If we do not have a midterm, it will be 30% homework and 70% project.

    If some students want to form project teams with students in the MIT class, Alan Edelman and I would welcome this.