Course Syllabus
Welcome! My name is Vijay Nagarajan, and I am excited to teach this advanced research-focussed course on Modern Distributed Memory Systems.
Recent technological advances have meant that computing today is predominantly concurrent and heterogeneous. Today's mobile phones, desktops and servers consist of multiple different processors including CPUs, GPUs and other accelerators. Therefore, applications written for these systems are typically concurrent with communication and coordination bottlenecking the performance and energy efficiency of the system. One effective way to reduce data movement is to replicate objects in multiple locations, abstractly speaking, in hardware or software. When there are multiple replicas of a data item the question of consistency comes into play, since a precise notion of a consistency model is essential to to be able to reason about what value an object read will return. How does one precisely specify a consistency model? How does one design protocols that ensure that the replicas are kept consistent as per the requirements of the consistency model efficiently and correctly? How to take advantage of modern technological innovations such as RDMA, CXL and Non-volatile memory technologies?
This research-oriented course will strive to answer these questions by studying memory consistency from multiple perspectives: computer-architecture predominantly but also formal methods and verification, programming languages, and distributed systems. In that sense, this is a unique course as it spans the system stack, and is a useful opportunity for you to assimilate all of the concepts you may have learned in each of these individual courses.
You will read lots of papers (~15), taking turns to present them during the class. We'll be reading both classic and cutting-edge research papers. You will also review every paper before the class, and turn in a brief review before the class.
A significant chunk of the course will focus on a research project. Research projects can be done in groups of up to three. The goal is to develop a publishable workshop-style research paper by the end of the course. You will present a proposal after you have decided your project, and there will be a final presentation at the end of the course.
Lectures
TuTh/03:40PM-05:00PM WBB 207
Piazza
- Please sign up as a student at this link: https://piazza.com/utah/spring2024/cs7810
- Please post any question about the course at Piazza. You are actively encouraged to answer questions too. Actively engaging over Piazza will contribute to earning Participation credits.
Material
- No required textbooks.
- Links to papers will be available in the schedule.
Instructor and Office Hours
- Instructor: Vijay Nagarajan, email: vijay@cs.utah.edu, Office hours Friday 3 pm (Please email me to confirm).
Assessment:
- Paper reviews. We will be reading close to 15 papers and you will need to review them before that lecture. Your best 10 paper reviews will count, each contributing 2 points for a total of 20 points. Here are some review guidelines.
- Paper presentation. You will need to present one paper each, answer questions, and lead the discussion on the paper. 10 points.
- Project presentation. Proposal presentation and final presentation. 5 points each for a total of 10.
- Project Final Report. 50 points.
- Participation. There will be 10 points for participation during the lectures and/or on Piazza.
- Grading: 100--94: A, 93.9--90: A-, 89.9--87: B+, 86.9--84: B, 83.9 --80: B-, 79.9 --77: C+, 76.9--74: C, 73.9--70: C-, 69.9--67: D+, 66.9--64: D, 63.9--60: D-, 59.9--0: E
Prerequisites:
- Required: You must have taken and passed 6810
- Recommended: Must have done well in 6810 or equivalent. In addition, must have taken at least two of the following graduate level courses: programming languages, compilers, distributed systems, or databases. This is a research-intensive course so take this course only if you are interested in (trying out) research.
Policies:
- We have zero tolerance for cheating. Please read the SoC policy on Academic Misconduct.
- Each paper review will be due before the class in which the paper is discussed. Late reviews are not accepted.
- Use of tools such as ChatGPT or Bard is not permitted in producing reviews, presentations, or reports. (You may use the tools to understand the topics at hand and for general research, but be careful as the tools are known to make things up.)
- When producing paper presentations you may use the slides from the original authors but only with proper attribution -- i.e., make that clear in the presentation.
Date | Topic | Slides | Before class | Event |
---|---|---|---|---|
Jan 9 |
Introduction | Read up on the course policies, read the abstract of the papers, and projects ideas. | ||
Jan 11 | Consistency/Coherence |
Primer ch 2,3,5, 6,8 RISC-V spec Appendix A. |
Read up on project ideas. Decide team and send me email. One joint email per team with all members copied. | |
Jan 15 | Consistency/Coherence | Read up on papers list to select a paper. Here are guidelines on reviewing a paper. | ||
Jan 18 | GPU Coherence and Consistency; Heterogeneous Consistency | Primer ch 10 | Please fill in google sheet with your selected paper. | |
Jan 23 | Coherence Protocol Specifications, CXL | CXL Spec ch 1,2,3 | Start thinking about projects. | |
Jan 25 | Specifying and Validating Consistency Models and Coherence Protocols | Primer ch 11 | Each team meet with me during office hours to decide project. | |
Jan 30 | Replicated Key-value-stores | Background from thesis; Skim the following: Linearizability, FLP result, Paxos, ABD protocol, CAP theorem, Perspective on CAP after 12 years, | Start working on project. | |
Feb 1 | A Taxonomy of Coherence/Replication Protocols | Read paper; No review necessary; if you review paper and send via email, will offer feedback. | Last date to email me about the project - one email per team. | |
Feb 6 | Soham Bagchi | paper | Read paper, turn in review | |
Feb 8 | An Qi Zhang | paper | Read paper, turn in review. | |
Feb 13 | Yuvaraj Chesetti | paper | Read paper, turn in review. | |
Feb 15 | Vinita Pawar | paper | Read paper, turn in review. | |
Feb 20 | Md Ashfaqur Rahaman | paper | Read paper, turn in review. | |
Feb 22 | Project proposal presentations | |||
Feb 27 | Project proposal presentations | |||
Feb 29 | Guest lecture: Dr. Tyler Torenson, UC Santa Cruz | |||
Mar 5 | SPRING BREAK | |||
Mar 7 | SPRING BREAK | |||
Mar 12 | Sangshin Park | paper | Read paper, turn in review. | |
Mar 14 | Disha Kunjadia | paper | Read paper, turn in review. | |
Mar 19 | Jarett Minton | paper | Read paper, turn in review. | |
Mar 21 | James McMohan | paper | Read paper, turn in review. | |
Mar 26 | Ashish Tiwari | paper | Read paper, turn in review. | |
Mar 28 | Sameeran Joshi | paper | Read paper, turn in review. | |
Apr 2 | Hunter McCoy | paper | Read paper, turn in review. | |
Apr 4 | Amir Mohammad | paper | Read paper, turn in review. | |
Apr 9 | Muteeb Akram Nawaz | paper | Read paper, turn in review. | |
Apr 11 | Shreyas Singh | paper | Read paper, turn in review. | |
Apr 16 | No class | |||
Apr 18 | Final project presentation | |||
Apr 23 | Final project presentation | |||
Apr 25 | No class | |||
Apr 30 | No class | Final paper due 5 PM; no extensions. |