High Performance Computer Architecture (CS60003) Spring 2022-23

This course introduces the principles of High Performance Computer Architecture. It aims to teach you the foundational principles of Computer Architecture. The goal of this course is to give you a foundation for further study Computer Architecture and help you to better understand how can you design primitives to build high performing systems. See the course schedule for details.


Instructors


Teaching Assistants


Course Information

Prerequisites We will use basic concepts from Computer Architecture to begin our course.
Lectures Lecture timings are:

Monday 15:00 - 17:00 hrs
Tuesday 14:00 - 16:00 hrs

This semester all the classes will be conducted offline at Nalanda Classroom Complex, Room NR223. Please keep and eye on the Schedule page for the latest updates. 
Textbook We will be using:

1. Microprocessor Architecture, Jean Loup Baer.
2. Computer Organization and Design, 4th Ed, D. A. Patterson and J. L. Hennessy.
3. Computer Architecture, Berhooz Parhami.
4. John L. Hennessy and David A. Patterson, Computer Architecture: A Quantitative Approach, Morgan Kaufmann.
5. John Paul Shen and Mikko H. Lipasti, Modern Processor Design: Fundamentals of Superscalar Processors, Tata McGraw-Hill.
6. M. J. Flynn, Computer Architecture: Pipelined and Parallel Processor Design, Narosa Publishing House.
7. Kai Hwang, Advanced Computer Architecture: Parallelism, Scalability, Programmability, McGraw-Hill.
Detailed Syllabus 1. Introduction: review of basic computer architecture, quantitative techniques in computer design.
2. Measuring and reporting performance. CISC and RISC processors.
3. Pipelining: Basic concepts, instruction and arithmetic pipeline, data hazards, control hazards, and structural hazards, techniques for handling hazards.
4. Exception handling. Pipeline optimization techniques.
5. Compiler techniques for improving performance.
6. Hierarchical memory technology: Inclusion, Coherence and locality properties.
7. Cache memory organizations, Techniques for reducing cache misses, Virtual memory organization.
8. Mapping and management techniques, memory replacement policies.
9. Instruction-level parallelism: basic concepts, techniques for increasing ILP, superscalar, super-pipelined and VLIW processor architectures.
10. Array and vector processors.
11. Multiprocessor architecture: taxonomy of parallel architectures.
12. Centralized shared-memory architecture: synchronization, memory consistency, interconnection networks.
13. Distributed shared-memory architecture. Cluster computers.
14. Non von Neumann architectures: data flow computers, reduction computer architectures, systolic architectures.
Coursework The coursework for all students consists of semi-regular quizzes/vivas and take-home assignments, in addition to mid-sem and end-sem exams and one programming assignment.

Communication We will update the course schedule regularly throughout the course.

Assignment / Scribes / Quizzes

  • Assignments and take-home quizzes will be distributed via CSE Moodle. The detailed information for individual assignment/quiz will be made available in Moodle. Please join the course there. Use the access code mentioned in class.

Handouts / Study Materials

  • Note that you NEED TO join the Microsoft teams classroom titled "HPCA 2023" for this course. We will also share the recordings and other study materials over Teams. Drop the TAs an email ASAP if you cannot access the Microsoft teams classroom.
  • We will also include links to pre-recorded lectures in the "Required Readings and Videos" section of the course schedule. Please check it regularly.

General discussion

  • We'll use Microsoft Teams for general discussion and questions about course material.
  • You should already have the account username and password to log into Microsoft teams. If you cannot access theĀ  Microsoft teams classroom titled "HPCA 2023" please let the instructors know as soon as possible.
  • If you need to reach out to the instructors (e.g., pertaining to an illness or other events that might be impacting your performance in class), please send a private chat on Microsoft Teams visible only to the instructors. Please use the Microsoft teams chatroom (and channels) to discuss publicly with your peers in real-time.
  • Please try to keep all course-related communication to Microsoft Teams rather than email.
Late policy We will accept the take home assignments/scribes 24 hours late with a 15% penalty. Assignments more than a day late will not be accepted without a previously approved extension.

Of course, in exceptional circumstances related to personal emergencies, serious illness, wellness concerns, family emergencies, and similar, please make the course staff aware of your situation and we will do our best to find a mutually agreeable solution.

Grading

The overall course grading policy will be decided later. Following is a rough overview and is subjected to change as the course progresses.
Programming assignment 20%
Semester exams
70%
Quiz, Class Participation
10%


Honor code

You are permitted to talk to the course staff and to your fellow students about any of the problem sets. Any assistance, though, must be limited to discussion of the problem and sketching general approaches to a solution. Each student must write out his or her own solutions to the problem sets. Consulting another student's solution is prohibited, and submitted solutions may not be copied from any source. These and any other form of collaboration on assignments constitute cheating.

No collaboration is permitted on quizzes or assignments, unless specified otherwise. All work submitted for the project must properly cite ideas and work that are not those of the students in the group. Simply stated, feel free to discuss problems with each other, but do not cheat. It is not worth it, and you will get caught. In that case, we will be forced to award you no marks for that assignment/quiz/project, take away 50% of your total final marks and you will risk deregistration.

Wellness

If a personal emergency comes up that might impact your work in the class, please let the instructors know via a private chat message (to all the course instructors) so that the course staff can make appropriate arrangements.

Important Links

Teams HPCA 2023
The gem5 Tutorial