|




| |
Course Details at a Glance
|
|
Lectures: |
Mon.,
Fri., 2:30 - 3:20 p.m., Olin 220
Wed. 2:30 - 3:50 p.m., Olin 220 |
| Instructor: |
Thomas C. Bressoud, Olin 207, 587-5630,
bressoud@denison.edu |
| Handouts: |
Hardcopies: In-class or at my office |
| Exam Code |
G, Monday, Dec. 13, 9 - 11 a.m. |
|
Description
|
| The
goal of this course is to provide a deep understanding of the fundamental
principles and engineering tradeoffs involved in designing high
performance computing platforms, from parallel computers (aka
``multiprocessors'') to Beowulf clusters, as well as the programming
techniques to effectively utilize these machines. Parallel machines are
already ubiquitous from desktops to supercomputers, and the expectation is
that they will become even more commonplace in the future. However, very
few people exploit the potential processing power of these machines
because they do not understand how to write efficient parallel programs.
Because one cannot design a good parallel program without understanding
how parallel machines are built and vice-versa, this course will cover
both parallel hardware and software design, as well as the impact that
they have on each other.
Course topics include naming shared data,
synchronizing threads, and the latency and bandwidth associated with
communication. Case studies on shared-memory, message-passing,
data-parallel and dataflow machines will be used to illustrate these
techniques and tradeoffs. Programming assignments will be performed on one
or more commercial multiprocessors, and there will be a significant course
project.
This is a relatively unique course since
this material is rarely offered to undergraduates. Because parallel
processing has become such an important and mainstream technology, the
time has come to integrate this material into the undergraduate systems
curriculum.
|

Textbooks
|
|
The following textbooks are required for the course:
 | Barry Wilkinson, Michael Allen. Parallel
Programming: Techniques and Applications Using Networked Workstations
and Parallel Computers, 2ed, Pearson/Prentice Hall,
2005. ISBN 0-13-140563.
|
 | Jessen Havill,
An Introduction to Linux at
Denison, 2003. |
The following reference will also be drawn from during
the initial phase of the course, but is not a required text. For
those interested in building their personal library with a good
architectural text on the subject, it would be an excellent acquisition.
 | David E. Culler and Jaswinder Pal Singh, with Anoop
Gupta. Parallel Computer Architecture: A Hardware/Software Approach,
Morgan Kaufmann, 1998. ISBN: 1-55860-343-3. |
|

Course Web Page
|
A web page will be maintained for this
course. The web page will include reading, homework, and project
assignments, scheduling of events (including midterms) and other useful
information. Please check it regularly:
http://www.denison.edu/~bressoud/cs400-f04
|

Computer Accounts
|
| To complete some
of your programming assignments and course projects, you will be receiving
accounts on machines at the Ohio
Supercomputing Center (OSC). Details will be provided later.
Important: please note that
the class will be allocated a finite (and not particularly large) amount
of time on these machines, so please be careful not to waste time
unnecessarily.
In addition, the class will be cooperating to upgrade
and restructure the Beowulf Cluster locally within the department. Each
student will also get an account on this local high performance cluster. |

Prerequisite
|
|
CS-281 (Computer Organization) is a
prerequisite for this course. |

Final Grade Determination
|
| Programs/HW: |
30% |
| Final Project |
30% |
| Midterm Exam |
15% |
| Final Exam: |
20% |
| Class Participation: |
5% |
|

Course Work
|
-
Programs/Homework:
-
There will be regular programming and homework assignments, probably every week
or two for the first half to 2/3 of the semester. The
purpose of the homework is generally intended to reinforce the conceptual
material from the book and will cover a wide variety of topics. Many
questions will be of the variety that could also appear on exams. Homeworks are due in class
on the date specified. I will accept late homeworks, but with a 50%
penalty enforced from the moment the homework is overdue.
You may discuss how to solve homework problems with other students in the class,
but written work must be your own. You may not get help on homework
from students outside the class. Of course, you are always welcome to come
see me for help.
Homework solutions must be typed in a word processor of your
choice. I would recommend that you learn
and use LaTeX, a markup based typesetting program that is widely used in
the research community. Let me know if you need help getting
started.
The programs within this category will be a variety of difficulties, from
learning how to write basic MPI programs to learning important techniques of
performance analysis, to demonstrating design techniques in parallel
programming.
-
Exams:
-
There will be two exams, a midterm
and a final. The midterm may include both an in-class portion and a
closed-resource take-home portion.
All exams will be closed book, closed notes.
Tentative dates for the exams are given in the class schedule, but these may
change (later or earlier), depending on our rate of progress.
-
Project:
- An important component of this course is the project. I
prefer that you work in groups of two on the project, although groups of up to
three may be permitted depending on the scale of project (ask the instructor for
permission before forming a group of three). A typical project would involve
designing, implementing and evaluating a fairly ambitious parallel program
(perhaps on more than one architecture). The project must involve an
experimental component---i.e. it is not simply a paper and pencil exercise. We
encourage you to try to come up with your own topic for your project (subject to
approval by the instructor), although we can make some suggestions if necessary.
I am actively tapping the other professors in the department in the hopes that
we can find some projects that will work well for both them and for you.
You will have between seven and eight weeks to work on the project. You will
present your findings in a written report (the collected reports may be
published as a technical report at the end of the semester), and also during a
poster session during the last day of class. Start thinking about potential
project ideas soon!
-
-
Class Participation:
-
For this class to be successful,
students must be engaged in the material by first doing the readings ahead of
time, and second by participating in class. You will be expected to actively
participate by asking questions, joining in our discussions, etc. Note that
there is a significant portion of your grade attributed to class participation.
|

Student Responsibilities
|
-
Attendance:
-
Your attendance is expected at each class meeting. Per the class participation
portion of the grade, I will reduce your grade for absences. Up to 3
excused absences will be tolerated without affecting your grade.
-
Readings:
-
You are responsible for the content of reading assignments, lectures and
handouts, as well as announcements and schedule changes made in class,
whether or not you are present. If you must miss a class, you are
responsible to get what you missed. Exams will be given
in class on the day scheduled and may not be made up.
-
Out-of-class Time:
-
Material in any class is not learned or mastered simply by
attending class. The student needs to spend the time outside of class
doing the readings, discussing the issues with fellow students, and discussing
topics with the professor. In many respects, out of class time is, in
fact, more important than lecture time. A good rule of thumb is that you
should be spending 12-14 hours of quality time outside of class per week
on a 4 credit hour course.
|

Other Issues
|
-
Disability Accommodation:
-
Any student who thinks he or she may need an accommodation based on the
impact of a disability should contact me privately as soon as possible
to discuss your specific needs. I rely on the Office of Academic Support
in Doane 104 to verify the need for accommodation based on documentation
on file in their office.
-
Academic Integrity:
-
Do your own individual homeworks and projects.
Do NOT copy from another person. There should be no reason for two
nearly identical assignments. Usually a warning will be given first and
then an incident of academic fraud will be reported for subsequent incidents.
|

Course Outline -- for tentative outline, see the
Schedule page.
|
|