# 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:
### 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.