CS 490/690: Parallel and Distributed Computing

Course Overview

This quarter, this quarter will focus primarily on compilers and run-time systems for parallel computing. Specifc topics include:

You can find the class web page at: http://www.cs.uga.edu/~dkl/690/Spring98/syllabus.html

Lectures: TTh, 12:10-1:30pm

We have 2 class periods reserved for this class. Generally speaking, we will meet for around an hour and a half. However, I will not be able to hold class the first week of the quarter, so we will have a few two-hour classes to make up the missed time.

Final Exam: TBA

Instructor: David Lowenthal

Office: GSRC 219D, 542-9269

Purpose of Course

The purpose of this course is threefold: (1) to introduce students to current research in the field of compilers and run-time systems for parallel computing, (2) to teach students to read, write, and think critically, and (3) for each student to carry out an independent research project related to the material covered in the course.

Reading List

Papers will generally be drawn from this list.

CS 490/690 newsgroup: uga.cs.x90

I am a faculty member in the Computer Science Department at the University of Georgia. My main area of research is operating system support for parallel computing.

Office Hours: TTh 9:30-11:00, and by appointment

Office hours are for you. Please do not hesitate to come to my office. Consultation outside of office hours will be handled strictly by appointment. Please note that I will not be able to accept all requests for appointments, especially around program due dates.

Prerequisites: CS x72 (Computer Architecture), CS x73 (Operating Systems), and CS x57 (Compilers)

If you have not had all these classes, please see me.

First Week of Class

Class will not be held the week of March 30. I would suggest reviewing basic material in computer architecture, operating systems, and compilers. Specifically, I would concentrate on the following topics: caching, synchronization mechanisms (e.g., semaphores, locks, etc.), virtual memory, distributed systems, and compiler optimizations. Good texts are: Computer Architecture: A Quantitative Approach, by Hennessy and Patterson, Modern Operating Systems, by Tannenbaum, and "The Dragon Book" (Compilers: Principles, Techniques, and Tools, by Aho, Ullman, and Sethi). If that bores you, read a paper on the reading list.

Required Reading for April 8: Please find and read the first paper on the reading list (The Task of the Referee, by Alan Jay Smith). Write a summary of this paper, not to exceed one page. Please note that the summary does not need to be exactly one page. Shorter is fine--you will learn this throughout the semester. However, I will ignore any written material that exceeds one page. I am going to leave it up to you to find the paper.

When I return (the week of April 6), we will move quickly.

Reading Materials

There is no text for this class; reading will be drawn from the literature. All students will be expected to read all papers. Each student will be responsible for presenting at least one paper to the class (undergraduates may be excepted from this; it has not been decided yet). There will be frequent quizzes covering the papers, so you must read them.

Course Attendence

Attendance at lectures is required. Please clear any absence with the instructor first. Class participation comprises part of the course grade, and attendance is part of that.

Programming Assignments

Course Project

The most significant part of this course will be the project. You will have approximately five weeks to complete it. Projects will be related to the course theme and must be a significant undertaking. No project may be done without prior consent of the instructor.

Grading

Grades will be assigned on the usual A-F basis. Grading will be absolute; there will be no "curve". Achieving a 90% will guarantee an "A", 80% a "B", and so on. However, when the final grades are given, it could be the case, for example, that an 85% gets an "A". Do not confuse this with a curve, however. If everyone does A work (as I hope), everyone will get an A. If everyone does C work, everyone will get a C. So that you know your grade at all times, four fictitious students will be given grades for each assignment and exam. These students will be named "Min A", "Min B", etc., indicating the minimum score for each grade. Graduate students will be graded on a different scale than undergraduate students.

The course grade will be determined as follows:

Please note that these are tentative. Relative weights of assignments can change upon the whim of the instructor. Also, I reserve the right to give an exam.

Furthermore, this class is designed around student participitation. If you have more than 2 unexcused absences, you will be immediately dropped from the course.

Workload

Students can sign up for one of three versions of this course: CS 490, CS 690 (3), and CS 690 (5). If you are taking this course for 5 units, you will do more work. What exactly this comprises is as yet undetermined. Undergraduates will have less work than either the three or five unit graduate version.

Please note: this course will require a lot of work. If you are not willing to work hard, this might not be the right course for you. Please see the instructor for any questions regarding this.

Class Schedule

Late Assignments

All assignments are due at the start of class. Late work will not be tolerated and receive zero credit unless previously cleared by the instructor.

If you are sick and have appropriate documentation, always let me know as soon as you get sick. It will be to your disadvantage to tell me after the fact that you were sick; you may not be excused from the regular due date.

Note that scheduled downtimes are not an excuse for late work.

Cheating

Cheating will not be tolerated in this class. You are allowed, and in fact encouraged, to discuss the papers with other students. However, these must be general discussions. All writeups must be done individually. If you have any doubts about what you are doing, ask me. If you are caught cheating you will be penalized appropriately according to University guidelines. You will certainly fail the assignment and possibly the course. So, simply put, don't do it.

Withdrawals and Incompletes

You may drop the class during the first three days without an annotation ending up on your transcript. Thereafter until the drop day, you may drop the class with an annotation. An incomplete will only be considered in a case where there is a documented medical evidence and you are making satisfactory progress in the course. If you have a medical emergency and are not making satisfactory progress after the drop date, you may be offered a late withdrawal; this is up to the instructor.

Warnings

First, you are responsible for reading and understanding this entire syllabus. I will hold you to the rules set forth within this document. Second, any computer science programming course involves a significant amount of work. This class will have more work than most computer science courses. If you do not feel you have the time to spend, you may want to think about taking a different course. Ask previous students about the workload in this class. I expect you to treat this class professionally.

Dissemination of Information

I will be using the Web as much as possible for this course. Handouts will be rare. All lecture notes will be on the Web. In addition, you may use the CS 490/690 newsgroup, uga.cs.x90. In addition, I will create a mail alias for the course, which will allow me to "post" information in a place where everyone will surely see it.

Class announcements, such as due date and assignment changes, will be made by email notification and/or on the Web. You are therefore responsible for checking these two places. If you make an error because you did not check the Web and your email, I will hold you fully responsible.

up Back to UGA CS home page