Spring 2026
With the explosion of the Internet over the past 30 years, and with the proliferation of data centers for cloud computing and AI, distributed computing is central to most of computer science. It also remains the dominant computing paradigm in high-end scientific computation. With the end of Denard scaling and the rise of multicore some 20 years ago, shared memory parallelism has become similarly ubiquitous in the desktop/laptop/cell phone market. Almost every nontrivial program today is multithreaded. And with the rise of programmable accelerators—first GPUs and now various sorts of TPUs—both data centers and smaller machines do massively-parallel shared-instruction stream computing.
CSC 2/458 is a loosely structured course devoted to all aspects of parallel and distributed systems. Given the instructor’s interests, it will focus mostly on shared-memory parallel computing, with a modest amount of distributed computing and not much coverage of GPUs and TPUs. For the latter, consider Prof. Pai’s CSC 290/420: Machine Learning Systems for Efficient AI. Topics likely to be covered include
In keeping with the multicore revolution and the instructor’s current interests, the course this semester will be weighted somewhat toward shared memory parallelism.
Prerequisites: CSC 2/454 and 2/456 or equivalent.
Warning: This will be a time-intensive and discussion-heavy class. We will be drawing on a wide range of written material, including multiple journal and conference papers. Reading is mandatory and must be completed in advance. Barring illness and similar issues, class attendance is also mandatory. If you can’t commit to being present and prepared for each class session, please don’t take the course.
Additional topics will depend to some degree on the interests of participants. Possibilities include
Back to the course home page
Last Change:
15 January 2026