Scalable Parallel Algorithms and Data Structures

CMSC858N: Spring 2023

Time and Location: Tuesday/Thursday, 2–3:15pm, CSI 2107

Instructor: Laxman Dhulipala (IRB 5150)

Course Description

This is a research-oriented course on parallel algorithms. The main goal is to develop a rigorous understanding of parallel algorithm design and analysis. The later parts of the course will study a variety of applications which can benefit from fast, scalable, and theoretically-efficient parallel implementations.

This course qualifies as a theory concentration requirement.

Prerequisites: You should be comfortable with algorithm design and analysis (e.g., you should be comfortable with the material from CMSC451). Prior experience with C++ will be helpful, but you should be able to pick up everything you need to know during this course.

News

Schedule

Date Topic Readings Notes
Jan 26 (Th) Brief History of Parallel Computing and Parallel Models    
Algorithms on Sequences      
Jan 31 (Tu) Parallel Building Blocks, Basic Algorithms    
Feb 02 (Th) Merging and Sorting    
Feb 07 (Th) Integer Sorting: Counting and Radix Sort [HW1 out]    
Algorithms on Trees      
Feb 09 (Th) List Ranking and Tail Bounds    
Feb 14 (Tu) Tree Contraction    
Feb 16 (Th) Lowest Common Ancestors    
Feb 21 (Tu) Dynamic Forest Connectivity [HW1 due, HW2 out]    
Algorithms on Graphs      
Feb 23 (Th) BFS and Low-Diameter Decomposition    
Feb 28 (Tu) Boruvka, Random-Mate, and Work-Efficient Connectivity    
Mar 02 (Th) Luby’s Algorithm for MIS and Derandomization    
Mar 07 (Tu) Randomized Incremental MIS and Matching    
Mar 09 (Th) LE Lists and Strongly Connected Components [HW2 due]    
Mar 14 (Tu) Weighted Matching (Distributed Primal-Dual) [Midterm Out]    
Mar 16 (Th) Coreness and Densest Subgraphs [Midterm Due]    
Spring Break      
Scheduling and Models      
Mar 28 (Tu) Work-Stealing and Analysis [HW3 out]    
Mar 30 (Th) Parallel Cache-Oblivious Algorithms    
Apr 04 (Tu) Parallel In-Place Algorithms    
Apr 06 (Th) Massively Parallel Computation (MPC): Basics    
Advanced Topics and Applications      
Apr 11 (Tu) Suffix Arrays [Project Check-in 1]    
Apr 13 (Th) LCP, Range Trees, and Suffix Trees    
Apr 18 (Tu) Binary-Forking Algorithms    
Apr 20 (Th) Block-Delayed Sequences [HW3 due]    
Apr 25 (Tu) GPU Algorithms    
Apr 27 (Th) Concurrent Key-Value Stores [Project Check-in 2]    
May 02 (Tu) Vector-Search: HNSW and Vamana    
May 04 (Th) Parallelism in Deep Learning and Accelerators    
May 09 (Tu) Discussion: Scale-Out or Scale-Up? Open-Problem Session.    
May 11 (Th) Project Presentations    

Grading:

Academic Accomodations for Disabilities

Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support Services (DSS) within the first two weeks of the semester.

Acknowledgements

Some topics are drawn from recent courses by Umut Acar, Soheil Behnezhad, Guy Blelloch, Mohsen Ghaffari, Yan Gu, Julian Shun, and Yihan Sun. I am grateful to my colleagues for making their courses publicly available, and encourage new courses to make course material freely available (e.g., not on Piazza) as much as possible.

Web Accessibility