High Performance Computing

CS-400: Fall 2004

Home
Syllabus
Schedule
Project
Contact Information

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:

bulletBarry Wilkinson, Michael Allen.  Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers, 2ed, Pearson/Prentice Hall, 2005.  ISBN 0-13-140563.
 
bulletJessen 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.

bulletDavid 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.

Home | Syllabus | Schedule | Project | Contact Information

 All rights reserved, Thomas C. Bressoud and Denison University.
For problems or questions regarding this web contact bressoud@denison.edu.
Last updated: 08/23/04.