• You can see the schedule as it develops at Schedule.

EE382N-22
Computer Architecture: User System Interplay
Fall 2018
Tentative Course Descriptor and Syllabus

Vital Information

piazza.com/utexas/fall2018/ee382n22/home | Piazza]]. Please do enroll in Piazza yourselves — it’s your responsibility ( piazza.com/utexas/fall2018/ee382n22).

  • We will be using Gradescope to collect assignments and return grades. I will add you to Gradescope before the first assignment is due based on the official class roster.
  • At some point in the semester I will form teams. This won’t happen immediately, but will happen early. I very strongly encourage you to read the following paper: https://journals.aom.org/doi/abs/10.5465/AMJ.2011.64870100 .


Instructors

Mattan Erez
mattan.erez@utexas.edu
Phone: 512–471–7846
Office Hours: After class TTh or by appointment

I’ve asked two students to officially help with TA duties, but please note that the time they can devote to the course is quite limited (not much budget for TAs):

Benjamin Cho
bjcho@utexas.edu
Office Hours:
Esha Choukse
esha.choukse@utexas.edu
Office Hours:


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, evaluating novel architectural ideas, and effectively gathering and assimilating information.


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, OSDI, etc., 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 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 (eventually in assigned groups, and initially 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. 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. This is a discussion-based class, after all.
  • 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. If you do register, take the class for a grade.
  • Progress Updates: Each student is expected to give me an update on her or his 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 required for both class preparation and the final project. The final project must be collaborative in nature and require teams of 3 students. Groups will be formed based on a survey to help form high-quality innovative groups to the best of my abilities. Turns out that, overall, groups that are purposefully formed to optimize the class overall are far more effective than student-formed teams. Each group should submit a single writeup. For a more fair evaluation, 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). An important note: putting your name on an assignment you did not substantially contribute to is cheating!
  • 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.


  • 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 or a TA if there are any group difficulties. The project will be used as a teaching tool to enhance your understanding of the material. The project will be open-ended and 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. I expect great project to lead to conference-quality publishable research and regular projects to lead to workshop type papers. It is not expected that you fully achieve this goal of publishable research within the semester, 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. Again, I expect the top projects to lead to publications.

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 (20% 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” 20%
Progress UpdatesPart of “other” 20%
Class Discussion Preparation15%
Final project35% (writeup) +
10% (class presentation)
Quizzes20% (10% each)
Feedback0%


!!Academic Dishonesty Policy

Plagiarism or any form of academic dishonesty (cheating includes, but is not limited to, copying another student’s work, bringing disallowed items into a test, copying material directly from a book, article or web site without including appropriate references, falsifying data, and doing someone else’s work for them) is a violation of University rules and may result in failing the class or may incur even steeper penalties. For University policies and our honor code see: http://deanofstudents.utexas.edu/sjs/spot_honorcode.php. We take the Honor’s Code seriously and expect you to as well. We think it’s your responsibility to ensure that you and your fellow students strictly adhere to this code and will do what we can to help (including checking for cheating when appropriate).


College of Engineering Drop/Add Policy

The Dean must approve adding or dropping courses after the fourth class day of the semester.


Students with Disabilities

The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 471–6259, 471–4641 TTY (http://ddce.utexas.edu/disability/).


Religious Holidays

Please contact the instructor with any issues related to religious holidays. We will be quite accommodating.


Emergency Information

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


Important Dates (tentative)

9/25Last day for initial progress report
10/4First project update
10/23Tentative Quiz 1
11/1Second project update
11/16Third project update
11/28Fourth project update
11/29Tentative Quiz 2
12/4Tentative project presentations
12/10Final project write-up