Instructor: Professor Chen Ding

Teaching Assistant: Owen Wacha

Course Schedule:

Final Projects with Introduction by Woody Wu and Presentation Slides
Course Evaluation Result

Instructor: Professor Chen Ding

Teaching Assistant: Owen Wacha

Course Schedule:

Final Projects with Introduction by Woody Wu and Presentation Slides
Course Evaluation Result

In the Spring 2023 semester, a group of Parallel and Distributed Programming (CSC 248/448) students showcased their remarkable research and implementations in a series of presentations. Their projects span a wide range of fields, from optimization algorithms to parallel computing frameworks. Here is some brief Information about their presentations.











The presentation slides can be found at https://github.com/dcompiler/258s23
Leasing by Learning Access Modes and Architectures (LLAMA)
Jonathan Waxman
November 2022
Lease caching and similar technologies yield high performance in both theoretical and practical caching spaces. This thesis proposes a method of lease caching in fixed-size caches that is robust against thrashing, implemented and evaluated in Rust.
Prerequisites: CSC 172 or equivalent for CSC 253. CSC 172 and CSC 252 or equivalent for CSC 453 and TCS 453.
Modern software is complex and more than a single person can fully comprehend. This course teaches collaborative programming which is multi-person construction of software where each person’s contribution is non-trivial and clearly defined and documented. The material to study includes design principles, safe and modular programming in modern programming languages including Rust, software teams and development processes, design patterns, and productivity tools. The assignments include collaborative programming and software design and development in teams. Students in CSC 453 and TCS 453 have additional reading and requirements.
The full course information and material are released through learn.rochester.edu.
University of Rochester Computer Science
CSC 253/453 and TCS 453 Collaborative Programming and Software Design
Modern software is complex and more than a single person can fully comprehend. This course teaches collaborative programming which is multi-person construction of software where each person’s contribution is non-trivial and clearly defined and documented. The material to study includes design principles, safe and modular programming in modern programming languages, software teams and development processes, design patterns, and productivity tools. The assignments include collaborative programming and software design and development in teams. The primary programming language taught and used in the assignments is Rust. Students in CSC 453 have additional reading and requirements.
Prerequisites: CSC 172 or equivalent for CSC 253 and TCS 453. CSC 172 and CSC 252 or equivalent for CSC 453.
Fall 2020 Student Evaluation
Anonymous inputs were collected by the university before the final exam. 14 out of 33 students (44%) submitted the evaluation.
The overall Instructor Rating is 4.21 and Course Rating 4.00.
Among the individual questions, the highest are 4.79 (The instructor was willing to listen to student questions and/or opinions), 4.71 (The instructor demonstrated sincere respect for students), and two COVID related questions both are 4.54 (the instructor clearly articulated course expectations to students, and the instructor noticed when students did not understand course material and adjusted accordingly). The lowest are 3.71 (The exams/assignments were clearly worded) and 3.93 (The instructor used examples that helped with understanding the material).

PPoPP Workshop on Principles of Memory Hierarchy Optimization (PMHO)
Video recordings of this year’s talks:
KEYNOTE: Advances in Modeling and Optimization of Caches. Don Towsley.
Random Walks on Huge Graphs at Cache Efficiency. Ke Yang.
CARL: Compiler Assigned Reference Leasing. Chen Ding.
Caching With Delayed Hits. Nirav Atre.
Delayed Hits in Multi-Level Caches. Benjamin Carleton.
A Study on Modeling and Optimization of Memory Systems. Xian-He Sun.
LHD: Improving Cache Hit Rate by Maximizing Hit Density. Nathan Beckmann.
On the Impact of Network Delays on Time-to-live Caching. Karim Elsayed.
Beyond Time Complexity: Data Movement Complexity Analysis for Matrix Multiplication. Wesley Smith.
Saturday 4/2/2022 1pm to 5pm US EDT (GMT -4), 6pm to 10pm Germany, 10:30pm to 2:30am India, 1am to 5am China, 2am to 6am Korea
Zoom Link: https://acm-org.zoom.us/j/92042756839?pwd=TllNMlVaeXQybkpWczh3ZnMxVDdFZz09
Meeting ID/Passcode: 920 4275 6839 / PPoPP@2022
KEYNOTE
Recent Advances in the Modeling and Optimization of Caches
Donald F. Towsley, Distinguished Professor, University of Massachusetts Amherst
The keynote lecture covers the following results.
The material is based on the following publications: Deghgan et al. “A Utility Optimization Approach to Network Cache Design,” IEEE/ACM Transactions on Networking, 27(3), 1013-1027, June 2019; “Sharing Cache Resources among Content Providers: A Utility-Based Approach,” IEEE/ACM Transactions on Networking, 27(2), 477-490, April 2019; Jiang et al. “On the Convergence of the TTL Approximation for an LRU Cache under Independent Stationary Request Processes”, ACM TOMPECS, 3(4), 20:1-20:31, September 2018; Panigrahy et al. “A new upper bound on cache hit probability for non-anticipative caching polices,” IFIP WG 7.3 Performance 2020; and Yan et al. “Learning from Optimal Caching for Content Delivery,” Proc. CoNEXT 2021, December 2021.
Workshop Program
| PPoPP Workshop on Principles of Memory Hierarchy Optimization (PMHO) |
| Saturday 4/2/2022 1pm to 5pm US EDT (GMT -4), 6pm to 10pm Germany, 10:30pm to 2:30am India, 1am to 5am China, 2am to 6am Korea |
| Welcome and Introduction (1pm) |
| Keynote (1:10pm to 2:00pm) |
| Don Towsley: “Recent Advances in the Modeling and Optimization of Caches”. |
| Session 1 (2:00pm to 2:40pm) |
| Xian-He Sun: “A Study on Modeling and Optimization of Memory Systems”. JCST Jan. ’21. (2:00pm to 2:20pm) |
| Karim Elsayed: “On the Impact of Network Delays in Time-To-Live Caching”. Unpublished. (2:20pm to 2:40pm) |
| Break (2:40pm to 2:50pm) |
| Chen Ding: “CARL: Compiler Assigned Reference Leasing”. TACO March ’22. (2:50pm to 3:10pm). |
| Nirav Atre: “Caching with Delayed Hits”. SIGCOMM ’20. (3:10pm to 3:30pm) |
| Benjamin Carleton: “Evaluating the Impact of Delayed Hits in Multi-Level Caches”. SOSP ’21 SRC Undergraduate Winner. (3:30pm to 3:40pm). |
| Break (3:40pm to 3:50pm) |
| Nathan Beckmann: “LHD: Improving Cache Hit Rate by Maximizing Hit Density”. NSDI ’18. (3:50pm to 4:10pm) |
| Wesley Smith: “Beyond Time Complexity: Data Movement Complexity Analysis for Matrix Multiplication”. Under review. (4:10pm to 4:30pm) |
| Ke Yang (Video): “Random Walks on Huge Graphs at Cache Efficiency”. SOSP ’21. (4:30pm to 4:45pm) |
| Open discussion (4:45pm to 5:00pm) |
For people who cannot attend, we plan to make the talk videos available as we have done in the 2021 workshop.
Organizers
Faculty:
Student:
Call for Presentations
Data movement is now often the most significant constraint on speed, throughput, and power consumption for applications in a wide range of domains. Unfortunately, modern memory systems are almost always hierarchical, parallel, dynamically allocated and shared, making them hard to model and analyze. In addition, the complexity of these systems is rapidly increasing due to the advent of new technologies such as Intel Optane and high-bandwidth memory (HBM).
Conventional solutions to memory hierarchy optimization problems are often compartmentalized and heuristic-driven; in the modern era of complex memory systems these lack the rigor and robustness to be fully effective. Going forward, research on performance in the memory hierarchy must adapt, ideally creating theories of memory that aim at formal, rigorous performance and correctness models, as well as optimizations that are based on mathematics, ensure reproducible results, and have provable guarantees.
Format and Topics
PMHO is an annual specialized and topic-driven workshop to present ongoing, under review, or previously published work related to the following non-exhaustive topic list:
There will be no formal peer review process or publication, and presentations will be a mix of selections from submissions and invited presentations.
The 2022 workshop will take place online during the weekend of April 2 (Exact date TBD). It is hosted by the PPoPP 2022 conference.
Submission
Submit your presentation proposal to save-DyfTNd4RHy3y@3.basecamp.com. Submissions should consist of an one-page abstract of the topic you intend to present alongside any (optional) pertinent publications or preprints.
The submission deadline is Monday March 7, 2022 AOE.
Workshop Program
| PPoPP Workshop on Principles of Memory Hierarchy Optimization (PMHO) |
| Sunday 2/28/2021 9am to 1pm US EST (China 10pm to 2am, Europe 3pm to 7pm, US PST 6am to 10pm, US MST 7 am to 11 am) |
| Opening and Logistics (9am) |
| Session 1: Algorithm Locality (9:10am to 9:50am) |
| Data Movement Distance: An Asymptotic and Algorithmic Measure of Memory Cost, Chen Ding, with Donovan Snyder, University of Rochester, unpublished (video) |
| Processor-Aware Cache-Oblivious Algorithms, Yuan Tang and Weiguo Gao, Fudan University, arxiv 2020 |
| Keynote (10am to 10:30am) |
| KEYNOTE: Working Sets, Locality, and System Performance, Peter Denning, Naval Post Graduate School, ACM Computing Surveys 2021 (video) |
| Session 2: Optimality (10:30am to 11:30am) |
| Some mathematical facts about optimal cache replacement, Pierre Michaud, Inria, ACM TACO 2016 (video) |
| Practical Bounds on Optimal Caching with Variable Object Sizes, Nathan Beckmann, Cargenie Mellon University, ACM SIGMetrics 2018 (video) |
| Category Theory in the Memory Hierarchy, Wesley Smith, University of Rochester, Unpublished (video) |
| Session 3: Applied Theories (11:40am to 1pm) |
| Optimal Data Placement for Heterogeneous Cache, Memory, and Storage Systems, Lei Zhang and Ymir Vigfusson, with Reza Karimi and Irfan Ahmad, Emory University, ACM SIGMetrics 2020 (video) |
| PHOEBE: Reuse-Aware Online Caching with Reinforcement Learning for Emergin Storage Models, Pengcheng Li, with Nan Wu, Alibaba, arxiv 2020 (video) |
| Data-Model Convergence and Runtime Support for Data Analytics and Graph Algorithms, Antonino Tumeo, Pacific Northwest National Laboratory, ACM Computing Frontiers 2019 (video) |
| Performance Prediction Toolkit for GPUs Cache Memories, Yehia Arafa and Hameed Badawy, New Mexico State University, ACM International Conference on Supercomputing (ICS) 2020 (video) |
Call for Presentations
Data movement is now often the most significant constraint on speed, throughput, and power consumption for applications in a wide range of domains. Unfortunately, modern memory systems are almost always hierarchical, parallel, dynamically allocated and shared, making them hard to model and analyze. In addition, the complexity of these systems is rapidly increasing due to the advent of new technologies such as Intel Optane and high-bandwidth memory (HBM).
Conventional solutions to memory hierarchy optimization problems are often compartmentalized and heuristic-driven; in the modern era of complex memory systems these lack the rigor and robustness to be fully effective. Going forward, research on performance in the memory hierarchy must adapt, ideally creating theories of memory that aim at formal, rigorous performance and correctness models, as well as optimizations that are based on mathematics, ensure reproducible results, and have provable guarantees.
PMHO 2021 is a forum dedicated to the theoretical aspect of memory hierarchies as well as their programming models and optimization.
Format and Topics
PMHO 2021 will be a specialized and topic-driven workshop to present ongoing, under review, or previously published work related to the following non-exhaustive topic list:
There will be no formal peer review process or publication, and presentations will be a mix of selections from submissions and invited presentations.
The workshop will take place online Sunday February 28, 2021.
Submission
Submit your presentation proposal to save-g4jFdqmK9rqH@3.basecamp.com. Submissions should consist of an one-page abstract of the topic you intend to present alongside any (optional) pertinent publications or preprints.
The submission deadline is Friday January 22, 2021 AOE.
Organizers
Faculty:
Student:
Elias Neuman-Donihue, University of Rochester, May 2020
A small correction to Li et. al.’s paper: in section 3.2, the length of a time window is defined as “its end time minus its start time plus one.” However, in section 3.2.1, there is a reference to “windows of length k from 0 k
n,” the lower bound of which refers to windows with their end index before their start. This also leads to some mathematical inconsistencies in sections 3.2.1 and 3.2.2.
One such error is the calculation of reuse(1): by the stated definition, an interval of length k=1 has only one allocation, so the reuse should be one if the window also contains a matching free operation and 0 otherwise. Therefore, since there are a total of n windows of length 1, the average reuse of all such windows should be:
However, by the formulae stated in 3.2.2:
In order to standardize the equations with the provided definition of window length, a few changes must be made:
In Eq. 1 and Eq. 2, every instance of should instead read
Then in Eq. 2,
The recursive equations should then read