Announcements :

  • Please send me email if you’re taking or auditing (attending) the class.
  • Take a look at the Schedule page for first assignment.


048864: Advanced Topics in Computer Design
Computer Architecture: User System Interplay
Technion, Semester Aleph 2013
Tentative Course Descriptor and Syllabus

Vital Information

Please check the class web page at http://lph.ece.utexas.edu/class/Wi13UserSys for updates, reading material, assignments, and feedback.

Instructor

Mattan Erez
mattan.erez@utexas.edu
Phone: TBA
Office Hours: TBA or by appointment

Description

Today’s computer systems span a large range of size, cost, and capability. From $100M supercomputers that fill an entire building through high-performance servers to mobile devices and disposable electronics. Each application has different requirements in terms of power consumption, form factor, cost, performance, and programming needs. These different characteristics present both opportunities and challenges for computer architects. Each system includes not just the processor and memory system hardware, but also the user, programmer, and software system. The interactions between the different aspects of these complex “ecosystems” must be understood and opportunities for cooperation maximized. In this course we will study fundamental principles in computer architecture, focusing on the hardware and the compiler, and understand their interplay with each other and with the usage and programming models. We will develop an understanding of these principles, opportunities for utilizing them, and the costs of missing such opportunities. We will explore the development of several system families and follow common threads of identifying the intended users, system properties, and evaluation methodology through structured lectures, paper reading, discussions, and a collaborative project. The case studies will include PCs and workstations with general-purpose processors, large parallel systems, graphics processors, and more experimental architectures such as Stream Processing and transactional memory.


Goals

  • Convey the importance of the interaction and interfaces between the various components of a computing system, including the user, programmer, programming and software systems, hardware platform, processor and memory, and fabrication technology.
  • Lay foundations necessary for conducting research in computer architecture, such as critiquing architectures in the context of system requirements and evaluating novel architectural ideas.


Prerequisites

This is an advanced course in computer architecture. We will be developing most of the material during class or through provided reading. Please read the paragraphs below and come talk to me (or email/phone) if you have any concerns about regarding your preparation.

Students must know the principles of computer architecture. You should have done well in an advanced undergraduate computer architecture class. In addition, any other exposure to advanced computer systems classes will be very helpful. The more advanced you are, the more you’ll get out of the class (based on my previous experience teaching it).


Required Reading

Reading material will be selected from leading conferences, journals, and magazines including ASPLOS, ISCA, MICRO, SC, as well as active research projects. All required material will be made available on the course web page.


Class Format

The class will meet twice a week. As preparation, before each class, all students must read the assigned material (equivalent to one, rarely 2, research papers) and prepare a short writeup of discussion points (individually or in groups of up to 3 students). During class, the instructor, or teams of two students, will present the material and lead a discussion that places it in the broader context of the class. A single student will act as scribe for the entire class and take detailed notes. The notes will be formatted after class and distributed via this wiki so that everyone can contribute to them. Towards the end of each class, the instructor will recap the discussion and introduce the topics of the next few meetings. After each class, an anonymous survey will be made available on Blackboard. The results of the survey will help to guide course progress and allow self-assessment. The course will tentatively have two quizzes and a final collaborative project in lieu of a final examination. Please see below for detailed class policies.

The class will meet twice a week and will be in the form of a guided open discussion. As preparation for the discussions, before each class, all students must read the assigned material (equivalent to at most 2 research papers) and prepare a short writeup of discussion points (individually or in groups of up to 3 students). During class, the instructor, or teams of two students, will present the material and lead a discussion that places the material in the broader context of the class. For each class, a single student will act as scribe for the entire class and take detailed notes. The notes will be formatted after class and distributed via this wiki on the Schedule page. Towards the end of each class, the instructor will recap the discussion and introduce the topics of the next few meetings. After each class, an anonymous survey will be made available on Blackboard. The results of the survey will help to guide course progress and allow self-assessment. The course will tentatively have two quizzes and a final collaborative project in lieu of a final examination. Your final grade will also depend on my subjective evaluation of your performance based largely on your contribution to class discussions. Please see below for detailed class policies.


Class Policies

  • Class attendance and participation: Students are required to attend all classes, as well as prepare and actively participate in class discussions. If you know you will not be able to attend a class or missed a class for a good reason please contact me.
  • Grading and auditing: Auditing the class is generally fine, as long as you take it seriously and are well prepared for the discussion on those classes you choose to attend. If you are interested in auditing the class instead of registering, please see the professor.
  • Progress Updates: Each student is expected to give me an update on his or her progress during the first 3 weeks of the semester and once more during the last 2 weeks of the semester. These updates can be either in the form of a detailed report or, more preferably as a short individual meeting. Additionally, each group collaborating on a project must consult with the me at least once every two weeks (again, by providing detailed written progress reports or brief conversations in meetings).
  • Collaboration: Group work is strongly encouraged for both class preparation and the final project. The final project must be collaborative in nature and require teams of 3 students. Before forming a larger or smaller group for the final project, please contact me for permission. Each group should submit a single writeup. To more fairly evaluate the final project, each student is expected to hand in a sincere evaluation of each team member’s contribution. For the final project, discussions outside the group are also permitted, however, plagiarism will not be tolerated (see below for academic dishonest policy).
  • Class Preparation (15%): Before each class the students will prepare, in writing, points for discussion during class based on the reading material provided (material will be provided the week before the discussion or earlier). The writeups should roughly follow this standard format and be brief and concise (bullet points) as they are indented to stimulate class discussion and participation rather than test knowledge. Each student must submit the writeup before the start of class, either alone or as part of a group submission.


  • Scribing (required to pass, 5% of final grade): Taking notes during class is important, however, when everyone is engrossed in writing, little discussion and conversation can take place. Therefore, in each class, a single student will be a scribe who will take notes for everyone. The formatted scribe notes are due one week after class. After I review the notes, which may be returned to the scribe for revision of content, the notes will be posted to the wiki so that everyone can both see them and contribute. I will monitor the notes occasionally for correctness and to see how they evolve (and by whom). Each student will be a scribe for a single class. Please see the scribing instructions for formatting instructions and more information.
  • Quizzes (20%): The class will tentatively have two quizzes and each will account for 10% of the final grade.
  • Final project (writeup — 35% of final grade; class presentation — 10% of final grade): The final project must be a collaboration of 3 students and individual work will not be accepted. Please see above for group guidelines and contact me in case of difficulties in finding partners. The project will be used as a teaching tool to enhance your understanding of the material. The project will be open-ended I will help you focus your ideas and hone your intuition and skills. Think of the project as an attempt to write a research paper on a topic that is covered in, or related to, the class and may address hardware and/or software issues. It is not expected that you fully achieve this goal of publishable research, but you are required to be able to describe your idea in depth, place it in the context of the class and of prior related work, phrase hypotheses on how implementing your idea will improve and affect the user and system, and design an evaluation that will test the hypotheses. I will do my best to help you focus and refine your ideas and to guide you towards achieving significant research if you are interested and motivated to do so. The end result of the project should be a written report that roughly follows the style and length of a typical architecture conference paper as well as a presentation that will be given to the entire class. You are free to choose your own project topic, and we will also provide some ideas to get you started. The projects will be graded competitively against each other. What this means, is that if you set out to do a narrow-scoped project and accomplish it you may get a lower grade than a team that had attempted a more challenging task. I want to encourage you to think big and use us as a resource to guide you in accomplishing challenging tasks with reasonable effort.
  • Other (15% of final grade): I will evaluate each student based largely on class participation, and individual/group updates that may serve as an oral exam.
  • Feedback: Candid and frank (anonymous) feedback and criticism regarding the choice of topics, pace, workload, etc …, will be greatly appreciated by me and will positively impact the class.
  • Final examination: There will not be a final written examination in this class.
  • Policy summary:
Component% of final grade
Attendance and participationPart of “other” 15%
Progress UpdatesPart of “other” 15%
Scribing5%
Class Discussion Preparation15%
Final project35% (writeup) +
10% (class presentation)
Quizzes20% (10% each)
Feedback0%



Tentative syllabus

(topics that will most likely be covered at some point in the semester)

You can get some idea by looking at previous times this class was taught at UT Austin (Fall 2012?, Spring 2009?, Spring 2007). Note that papers and topics are chosen after consulting the class.

  • Users and Systems
    • Performance, power, usability, programmability, reesilience, designability, cost, …
  • General Purpose Processing (Superscalar)
    • backward compatibility, virtualization, performance, power, reliability.
  • Resilience
    • Servers, mainframes, supercomputers
  • Business aspects of architecture
  • Design for manufacturability
  • Parallel architectures
  • Shared memory systems
    • OpenMP, transactional memory
  • Distributed memory systems
    • MPI, hardware support, Google
  • Graphics processors
  • Stream Processors
  • Embedded applications and FPGAs