CS 4290/CS 6290/ECE 4100/ECE 6100

High-Performance Computer Architecture (Spring 2015)


Instructor: Hadi Esmaeilzadeh

Email: hadi [AT] cc [DOT] gatech [DOT] edu
Office: KACB 2336; Office hours: TTH 6:00 PM - 7:00 PM

TA: Joo Hwan Lee (joohwan.lee [AT] gatech [DOT] edu), 

Bradley Thwaites (bthwaites [AT] gatech [DOT] edu),
Divya Mahajan (divya_mahajan [AT] gatech [DOT] edu)

Location: Klaus College of Computing (KLAUS) 1443; Time: TTH 4:35 PM - 5:55 PM

Course Description

This is a graduate-level course on how the computer works. In this course, we will review fundamental structures in modern microprocessor and computer system architecture design. We will cover computer organization, instruction set design, memory system design, pipelining, cache coherence protocols, memory schedulers, power/energy, prefetching and other techniques to explore instruction level parallelism and thread level parallelism. We will also cover system level topics such as storage subsystems. We will also have case studies as to how modern microprocessors are designed.

Course Material

The required textbook for this course is the Fifth Edition of Computer Architecture: A Quantitative Approach by John Hennessy and David Patterson. Other recommended reads are Microprocessor architecture Jean-Loup Baer, Cambridge.

All other relevant material will be made available on the course webpage or on T-Square. Paper Reading constitutes an important part of the course. Please see resources for the papers relevant to the course.

The exams and assignments will be based on the lectures.

Attendance

Attendance is mandatory unless you get explicit permission from the instructor to be absent. Students who face emergency situations outside their control that prevent them from attendance should contact the instructor before the class. If that is impossible, the student should inform the instructor afterwards as soon as possible. The student must provide documentation or other proof of the emergency situation.

Attending lectures and taking good notes will be very important, especially because (1) there is no textbook and (2) important announcements (e.g.,  project requirements or changes in due dates) will be made during lectures. Furthermore, students will get class participation points if (1) they ask many good questions during the class (2) they answer actively in on-line group discussions (3) other creative ways.

In summary, we might not be taking attendance in every lecture, but it will be very very very hard to earn a passing grade without attending lectures.

Evaluation

Students will be evaluated based on the following rubric.

UNDERGRADUATE/GRADUATE STUDENTS:

Class Participation 1% Participation in the class
4 Assignments 35% 1st (5%), 2nd (10%), 3rd (10%), 4th (10%)
2 Homework
9% 1st (4.5%), 2nd(4.5%)
Midterm I 20%
Comprehensive exam covers the first half of semester's material
Midterm II 20%
Comprehensive exam covers the second half of semester's material
Final Exam 20%
Comprehensive exam that will covers the entire semester's material

For the term project students will be expected to analyze solutions proposed in recent papers. For the research project they will be expected to work on a research problem and present new solutions. For both the term project and research project, students are encouraged to use MacSim simulator, however they should feel free to use the evaluation infrastructure that is best suited for their study.

We will use two policies to assign final (letter) grades. Each student's grade will be computed using both policies, and the final grade will be the better of the two grades. The first policy is not curved, with 90% or more of the maximum possible score yielding an A, 80%-90% yielding a B, 70%-90% yielding a C, 60%-70% yielding a D, and <60% yielding an F. The second policy is the traditional curve-based policy, using the average (AVG) and standard deviation (STD) of scores in the class. Earning more than AVG+STD (one standard deviation above the average) will yield an A, earning AVG to AVG+STD will yield a B, earning AVG-STD to AVG will yield a C, earning AVG-2*STD to AVG-STD  will yield a D, and earning less than AVG-2*STD (two standard deviations or more below the class average) will result in an F grade. Since the second policy is based on the average performance of the class, you can only aim for a certain grade if you use the above rubric and get the best grade based on the first policy.

There will not be any make-up assignments. Therefore, if you need a particular grade, plan wisely and perform accordingly on homework, projects, and exams. Because of the large number of assignments in this class, re-grading can only be requested during 14 days that follow the release of scores from any assignment/exam. The exception to this is the final project assignment and the final exam. For the final exam, no re-grades will be possible until final grades are officially released (in OSCAR). You can still see your final exam and request a regrade during the first two weeks of classes in the Spring semester. When requesting a re-grade, keep in mind that the entire submitted assignment or exam will be regraded, so a regrade may result in a loss of points.

The grade in this class will be based on your performance. Once an assignment or exam is over and graded, only a mistake in grading can result in change of the grade. I will never change a grade because the student needs a better grade to stay in the program, to keep a fellowship, to get a job, or any other reason. If you believe you need a certain grade in this class, plan to earn the grade through excellent work in homework, projects, and exams.

Assignment Submission Rules

You must follow the submission guidelines specified in the assignment description. We will use T-square. Wrong file names, broken file formats, missing files will lose 20% of grade. For reports, you must turn in a hard copy of your report during the class time.

No Late Assignments

No late assignments will be accepted and no credit will be given for any late submission. All homework sets an project assignments are due on the day specified by the problem set, announced in T-Square, or in class (later announcements take precedence over prior ones). An assignment is only considered submitted when it is submitted through T-square, and the files that will be graded will be those submitted in T-Square. We will not accept a late submission if the file is elsewhere, even if the file modification time and date are before the deadline (those can be forged). Thus, please make sure that the files you submitted in T-Square are indeed the ones you want graded.

Students who face emergency situations outside their control that prevent them from completing an assignment in time should contact the professor before the assignment is due or, if that is impossible, as soon as possible. After receiving an extension, the student must submit the assignment before the extended deadline and will be required to provide documentation or other proof of the emergency situation.

Note that needs and emergencies within the student's control do not qualify for an extensions. In particular, the student is responsible for keeping adequate backups of their work and submitting the assignments ahead of time if needed. Examples of what does not qualify for an extension include, but are not limited to: the student needs a particular grade to graduate, the student wants to go on a cruise with their extended family, the student goes spelunking when the assignment is due and the cave does not have WiFi, the student tries to submit the assignment from a coffee shop and WiFi is down, the student misreads the due date, student's rhinoceros pet eats her laptop, student's laptop falls out of her backpack during a bungee-jump, etc.

No Collaboration on Exams or Quizzes

Absolutely no collaboration is allowed during exams or quizzes. Copying or receiving any information from another person or from another person's exam, with or without their consent, is unethical and unacceptable. However, you can always ask TAs or the professor for clarification of an exam question during the exam. Cheating during an exam or a quiz is a direct violation of the Georgia Tech Academic Honor Code and will be reported to and handled by the office of student affairs.

Group Study

We encourage you to study in groups. However, homeworks, examinations and the work on all programming assignments must be your own individual work. The paper survey and a term project can be a group project. Collaboration with other students or other persons is prohibited. Submitting any work other than your own is a violating of the Academic Honor Code. If you are not sure what you can discuss or not, please contact the instructor.

Submitting any work other than your own (including content from the Internet) without proper attribution (specifying the source) will also be reported as Plagiarism, which is also in violation of the Georgia Tech Academic Honor Code. Note that this is different from discussing lecture material (such as re-explaining an idea covered in class in a different manner or with a new example, or discussing what is being asked in the project assignment). Helping someone understand what is being asked in a problem is fine. However, giving them hints or helping them actually do what is being asked is not acceptable.

Ambiguities

If you are not sure about anything, ask the professor and/or consult the Georgia Tech Academic Honor Code. A violation of the rules will still be considered and treated as a violation of the rules, regardless of whether or not the student understood the rules or interpreted them correctly. If you are not sure that you understand how the rules apply to a particular situation, you must ask.

Academic Honesty

Students are expected to abide by the Georgia Tech Academic Honor Code. Honest and ethical behavior is expected at all times. All incidents of suspected dishonesty will be reported to and handled by the office of student affairs. You will have to do all assignments individually unless explicitly told otherwise. You may discuss it with classmates but you may not copy any solution (or any part of a solution).