This course seeks (1) to introduce graduate students in the applied sciences to the field of high-performance computing, and (2) to familiarize graduate students with tools and techniques that will help them design and develop efficient programs in their own area of research. Topics will include:
You can find the class web page at: http://www.cs.uga.edu/~dkl/6900/Spring00/syllabus.html
Generally speaking, we will hold class only on Tuesdays and Thursdays; however, I reserve the right to hold class on Wednesdays as necessary.
Office: GSRC 219D, 542-9269
I am a faculty member in the Computer Science Department at the University of Georgia. My main area of research is compiler- and run-time system support for parallel computing.
There is no required text , although I will place books on reserve. These are:
Office hours are for you. Please do not hesitate to come to my office. There are not many students enrolled in this class, so appointments might be the best way to handle office hours. Due to my busy schedule, I cannot accept drop-ins outside of office hours. Please send email to set up an appointment. With our class size, it should be no problem at all to satisfy all appointment requests. I am more likely to accept appointments on Tuesdays and Thursdays --- Mondays and Fridays are my research days.
If you are not cleared for the course, please see me immediately.
Class will be structured as an open discussion. There will be lectures as well as class discussions in which everyone is expected to participate. In fact, participation is part of the grade.
There is no text for this class; reading may be given. All students will be expected to read any assigned material. Each enrolled (for a grade) student will be responsible for presenting at least one topic to the class (in his/her area of expertise).
There will be no exams as long as everyone is performing well on their assigned homework.
Because of the small class size, 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.
I am planning three programming assignments. These will consist of experimentation with sequential programs/compiler optimizations, and implementation/experimentatioin of a shared-memory parallel algorithm and a distributed-memory parallel algorithm. For each, you will submit a report. The report is expected to be of high quality and prepared by a text formatter.
A writing guide is available to assist you.
For ease of experimentation, it is useful to simulate dynamically sized arrays in C. A brief dynamically sized array guide may be useful to you.
There will be a course project where you will design, implement, and experiment with a parallel program that is related to your research. As with the programming assignments, you will write an accompanying report. No project may be done without prior consent of the instructor.
The ideal situation would be that each course project ends up as a conference or journal paper.
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.
The course grade will be determined as follows:
Please note that these are tentative. Relative weights of assignments are subject to change. An exam, if given, will be worth at least 15% and will force a rebalancing of weights.
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.
Cheating will not be tolerated in this class, and with a class as small as ours, it will be impossible to get away with cheating. Please do all work on your own; the course is intended to help you with your research, and you'll learn more this way.
Please note that unfamiliarity with the rules and regulations of the academic honesty environment at the University of Georgia will not be grounds for leniency. In other words, if you come from a background where collaborative work is the norm, you must realize immediately that it is not allowed in this class, unless cleared by me first.
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.
You are responsible for reading and understanding this entire syllabus. I will hold you to the rules set forth within this document.
I will be using the Web as much as possible for this course. Handouts will be rare. 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.You are therefore responsible for checking your email.