EE382N-20 — Computer Architecture: Parallelism and Locality
Spring 2021
Tentative Course Descriptor and Syllabus

Vital Information

Class will meet on Tuesdays and Thursdays 12:30 - 2:00pm on Zoom (for the time being).
The Zoom link should be: https://utexas.zoom.us/j/95970339690, but check Canvas if you have issues. Not that you must be logged in through utexas.zoom.us. If you are not, you will miss class. If you need help or an exception, contact me ahead of time. Class recordings will be available on the Canvas page for the class.

Please check this page and Piazza for updates, reading material, announcements, and assignments.

How to communicate with the instructors:
For general questions and clarifications please use Piazza whenever possible. There are a few exceptions to this:

  • If you have a question about a specific solution that may “infect” other groups and block their creativity, then post privately on Piazza, otherwise please post publicly (anonymously if you wish).
  • If you have a personal questions then direct it to a specific instructor.


Instructor

Professor:
Mattan Erez
https://utexas.zoom.us/my/mattan.erez(maybe at some point back to EER 5.872)
mattan.erez@utexas.edu
471–7846
Office Hours: TBA, and by appointment

Teaching Assistants:
We have two 1/2 TAs so be aware of their time limitations
Jeageun Jung
jeageunjung@utexas.edu
Office Hours: TBD and by appointment

Description

Two major challenges facing computer architects today are dealing with tight power budgets and achieving high performance as off-chip bandwidth diminishes in comparison with available on-chip compute resources. In this course we will explore how the fundamental properties of locality and parallelism can be utilized in both hardware and software to overcome these challenges of power and bandwidth constraints. We will develop hardware cost models and hardware and software techniques through a combination of structured lectures, paper reading, discussions, homework assignments, programming labs, and a collaborative project. Examples of architectures and methods that will be covered include traditional general-purpose processors, massively parallel processors, parallel memory systems, parallel programming and execution models, shared memory systems, distributed shared memory systems, domain decomposition techniques, and cache-aware and cache-oblivious algorithms (tentative syllabus below).


Goals

  • Understand how the fundamental concepts of locality and parallelism affect both performance and power dissipation in modern computer systems.
  • Learn how to use tools, techniques, and models that account for locality and parallelism at the same time and learn some basic programming and optimization techniques for such systems.


Prerequisites

This is an advanced course in computer architecture. We will be developing most of the material during class or through provided reading. However, a solid base in computer architecture is a must, and familiarity with parallelism and concurrency will be very valuable.

Students must know the principles of computer architecture. You should have done well in EE460N or an equivalent class. What I have been finding talking to students is that many have not taken a 460N equivalent class; it’s really much more similar to a graduate class in computer architecture than an undergraduate class.

Students are strongly encouraged to have some understanding of parallel architectures or concurrency and synchronization i.e., EE382N-10, CS372, EE445M or EE360P or equivalent. Other knowledge that is helpful includes algorithms (e.g., EE360C) and compilers (CS375).

The labs will involve pretty advanced programming. Please consider your programming experience.

More about prereqs and expectations here.


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.


Recommended Reading

There is no required textbook for this class, however, you may find the following useful:

  • Timothy G. Mattson, Beverly A. Sanders, Berna L. Massingill, “Patterns for parallel programming”, 2005, Addison-Wesley Boston.
  • David B. Kirk and Wen-Mei Hwu, “Programming Massively Parallel Processors: A Hands-on Approach”, Morgan Kaufmann.
  • Additional recommended websites and other open material soon.


Class Format

The class will meet twice a week. The class meetings will be a combination of lectures and class discussions. About 15% (most likely) of the class meetings will be an open discussion based on pre-assigned reading material. As class preparation for the discussions, before each class, all students must read the assigned material (equivalent to at most 1 - 2 research papers) and prepare a short writeup of discussion points (in groups of 3 students). During class, I will present the material and lead a discussion that places the material in the broader context of the class. In addition to the occasional short write-up required to vitalize class discussion, the class will include 3 programming labs as well as a final collaborative project in lieu of a final examination (final examination time slot may be used for mandatory project presentations). 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 graduate class and discussion is critical. Class recordings will be available, but I expect you to primarily attend and participate in the class.
  • Zoom “Front row” participation: While I strongly encourage everyone to turn their cameras on during the Zoom lectures, I will randomly select a few students for each lecture who will be expected to definitely have their cameras on. Seeing at least a few live faces really helps the lecture and I’m sure that most of you focus better when your camera is on as well.
  • Grading and auditing: This class should be taken for a grade and not the credit/no-credit option. If this is a serious issue for you, please see the me, though you will be able to change to Credit/No-Credit this semester it seems. 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 let me know.
  • Progress Updates: Each student is expected to give me an update on his or her progress during the first 2 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 report or as a short individual meeting. Additionally, each group collaborating on a project must consult with the me at least once per week once project start (again, by providing written progress reports or conversations in meetings).
  • Collaboration: The homework and programming assignments, as well as the final project must be collaborative in nature and require teams of 3 students. 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 (via a survey). 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!
  • Assignments and Labs (50%): To improve understanding and intuition, the class will include up to five collaborative assignments and programming labs. The, most likely three, labs will deal with programming massively-parallel processors (e.g., GPUs) and more traditional parallel systems as well. The assignments and labs will not be graded competitively against one another — I expect you to do well and learn from them. While these assignments will be structured, there will be some aspects that are vague and open ended. You should be prepared to embrace this. For example, your goal might be “to optimize” but there will not be a specific set target. Expect the labs to take significant time and effort.
  • Final project (writeup — 25% of final grade; class presentation — 5% 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. 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 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, an accompanying detailed presentation, and a shorter 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. A major goal of the project is to teach me something new :-) In past semesters I was sometimes lenient with grading projects. That will not be the case this semester. Time for me to grow up and be tougher.
  • ‘’‘Exams: There will not be any exams in this class.
  • Other (20% of final grade): I will evaluate each student based largely on class participation, contribution to the class in other ways, and individual/group updates.
  • 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, however, the final exam time slot may be used for project presentations.
  • Policy summary:
Component% of final grade
Attendance and participationPart of “other” 20%
Progress UpdatesPart of “other” 20%
Assignments and Labs50%
Final project25% (writeup) +
5% (class presentation)
Feedback0%


Academic Dishonesty Policy

Plagiarism or any form of academic dishonesty (cheating includes, but is not limited to, copying another person’s work, copying material directly from a book, article, or web site without including appropriate references, falsifying data, doing someone’s work) 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/acint_student.php and http://deanofstudents.utexas.edu/sjs/spot_honorcode.php).


College of Engineering Drop/Add Policy

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


Food Pantry and Career Clothes Closet

UT Outpost (UA9 Building, 2609 University Avenue) is equipped with a food pantry, and a career clothing closet, to ensure every Longhorn has access to professional clothes for job and internship interviews. Emergencies and financial hardships can interfere with student success beyond the classroom, and this program will serve as an additional resource for students. This resource is from Student Emergency Services in the Office of the Dean of Students.


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://diversity.utexas.edu/disability/) or the College of Engineering Director of Students with Disabilities at 471–4382.


Mental Health Counseling

College can be stressful and sometimes we need a little help. Luckily, we have a wealth of resources and dedicated people ready to assist you, and treatment does work. The Counseling and Mental Health Center (CMHC) provides counseling, psychiatric, consultation, and prevention services that facilitate student academic and life goals and enhance their personal growth and well-being. CMHC counselors are available Monday-Friday 8am-5pm by phone (512–471–3515) and Zoom videoconference. They are no longer available for in-person meetings due to social spacing and other precautions to reduce exposure to the coronavirus.
Alternatively, you can talk to Ms. Jeni Wade, LCSW right here in the College of Engineering. Ms. Wade is our Care Counselor and she can be reached at 512–471–8396.
If you are experiencing a mental health crisis (e.g. depression or anxiety), please call the Mental Health Center Crisis line at 512–471-CALL(2255). Call even if you aren’t sure you’re in a full-blown crisis, but sincerely need help. Staff are there to help you.


Religious Holy Days

A student who misses classes or other required activities, including examinations, for the observance of a religious holy day should inform the instructor as far in advance of the absence as possible so that arrangements can be made to complete an assignment within a reasonable period after the absence. A reasonable accommodation does not include substantial modification to academic standards, or adjustments of requirements essential to any program of instruction. Students and instructors who have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the Office for Inclusion and Equity. The University does not maintain a list of religious holy days.


Absence for Military Service

In accordance with section 51.9111 of the Texas Education Code, a student is excused from attending classes or engaging in other required activities, including exams, if he or she is called to active military service of a reasonably brief duration. The maximum time for which the student may be excused has been defined by the Texas Higher Education Coordinating Board as ``no more than 25 percent of the total number of class meetings or the contact hour equivalent (not including the final examination period) for the specific course or courses in which the student is currently enrolled at the beginning of the period of active military service.’‘ The student will be allowed a reasonable time after the absence to complete assignments and take exams.


Health Self-Checks and Face Coverings

We will all need to make adjustments to benefit from in-person class interactions in a safe and healthy manner. Our protections against spreading COVID-19 include cloth face coverings, social distancing and staying at home if showing any symptoms. For the benefit of everyone:

  • Everyone must wear a cloth face covering properly during in-person class activities and in all campus buildings at all times.
  • Each student must complete the symptom screening app that day before attending in-person class activities. If the app recommends that the student isolate, then the student must not attend an in-person class activity until cleared by a medical professional.

If a student is not wearing a cloth face-covering properly in the classroom (or any UT building), that student must leave the classroom (and building). If the student refuses to wear a cloth face covering in a class activity, the class will be dismissed for the remainder of the period, and the student will be subject to disciplinary action as set forth in the university’s Institutional Rules/General Conduct 11–404(a)(3). Students who have a condition that precludes the wearing of a cloth face covering must follow the procedures for obtaining an accommodation working with Services for Students with Disabilities.


COVID-19 Guidance

To help keep everyone at UT and in our community safe, it is critical that all students report COVID-19 symptoms and testing, regardless of test results, to University Health Services, and faculty and staff report to the HealthPoint Occupational Health Program (OHP) as soon as possible. Please see this link to understand what needs to be reported. In addition, to help understand what to do if a fellow student in the class (or the instructor or TA) tests positive for COVID, see University Health Services.


Safety Information

If you have concerns about the safety or behavior of students, TAs, Professors, or others, call the Behavorial Concerns Advice Line at 512–232–5050. Your call can be anonymous. If something doesn’t feel right, it probably isn’t. Trust your instincts and share your concerns.

Occupants of buildings are required to evacuate buildings when a fire alarm is activated. Alarm activation or announcement requires exiting and assembling outside.

  • Familiarize yourself with all exit doors of each classroom and building you may occupy. The nearest exit door may not be the one you used when entering the building.
  • Students requiring assistance in evacuation shall inform their instructor in writing during the first week of class.
  • In the event of an evacuation, follow the instruction of faculty or class instructors. Do not re-enter a building unless given instructions by the following: Austin Fire Department, UT Austin Police * Department, or Fire Prevention Services.
  • Information regarding emergency evacuation routes and emergency procedures can be found at http://www.utexas.edu/emergency.

For more information, please see http://www.utexas.edu/safety.


Sanger Learning Center

More than one-third of undergraduates use the Sanger Learning Center each year to improve their academic performance. All students are welcome to join their classes and workshops and make appointments for their private learning specialists, peer academic coaches, and tutors. Please visit http://www.utexas.edu/ugs/slc or call 512–471–3614 (JES A332).


Title IX Reporting

Title IX is a federal law that protects against sex and gender-based discrimination, sexual harassment, sexual assault, sexual misconduct, dating/domestic violence and stalking at federally funded educational institutions. UT Austin is committed to fostering a learning and working environment free from discrimination in all its forms where all students, faculty, and staff can learn, work, and thrive. When sexual misconduct occurs in our community, the university can:

  1. Intervene to prevent harmful behavior from continuing or escalating.
  2. Provide support and remedies to students and employees who have experienced harm or have become involved in a Title IX investigation.
  3. Investigate and discipline violations of the university’s relevant policies.

Faculty members and certain staff members are considered `Responsible Employees or `Mandatory Reporters, which means that they are required to report violations of Title IX to the Title IX Coordinator at UT Austin. I am a Responsible Employee and must report any Title IX related incidents that are disclosed in writing, discussion, or one-on-one. Before talking with me, or with any faculty or staff member about a Title IX related incident, be sure to ask whether they are a responsible employee. If you want to speak with someone for support or remedies without making an official report to the university, email advocate@austin.utexas.edu. For more info about reporting options and resources, visit https://titleix.utexas.edu/campus-resources or contact the Title IX Office at titleix@austin.utexas.edu.


Campus Carry

`The University of Texas at Austin is committed to providing a safe environment for students, employees, university affiliates, and visitors, and to respecting the right of individuals who are licensed to carry a handgun as permitted by Texas state law.’‘ For more information, please see http://campuscarry.utexas.edu/students.


Land Acknowledgment

I would like to acknowledge that we are meeting on the Indigenous lands of Turtle Island, the ancestral name for what now is called North America. Moreover, I would like to acknowledge the Alabama-Coushatta, Caddo, Carrizo/Comecrudo, Coahuiltecan, Comanche, Kickapoo, Lipan Apache, Tonkawa and Ysleta Del Sur Pueblo, and all the American Indian and Indigenous Peoples and communities who have been or have become a part of these lands and territories in Texas. (Pronounciation guide)


References

This course syllabus follows guidance provided by Prof. Brian Evans and uses wording suggested by Prof. Mary Steinhardt and the Faculty Innovation Center (https://facultyinnovate.utexas.edu/effective-syllabus) at UT Austin. The above Land Acknowledgment was drafted by a faculty Committee on Land Acknowledgment and passed by the UT Austin Faculty Council on September 21, 2020.


Tentative syllabus

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

  • Parallel programming models (threads, arrays, streams, functional)
  • Parallel execution models (SPMD, MIMD, SIMD, streams, dataflow, VLIW)
  • Namespaces and locality
  • Hardware locality mechanisms (caches, scratchpad memories, registers)
  • Area and power models for communication and computation
  • Locality aware programming models
  • Locality and parallelism in real systems (SMP, DSM, stream processors)
  • Tools for increasing locality (domain decomposition, blocking, reordering)
  • Massively parallel processors and accelerators
  • Frameworks for programming massively parallel and heterogeneous platforms