Welcome to CS1760
This course examines the theory and practice of multiprocessor synchronization. Subjects covered include multiprocessor architecture, mutual exclusion, wait-free and lock-free synchronization, spin locks, monitors, load balancing, concurrent data structures, and transactional synchronization.
From now on, announcements will be communicated through our course email list and our Ed Discussion page. If you're not on the listserv you can join it through sympa. If you were registered, your cs email should automatically be subscribed.
Why Multiprocessor Programming?
The computer industry is undergoing a paradigm shift. Chip manufacturers are shifting development resources away from single-processor chips to a new generation of multi-processor chips known as multicores.
This fundamental change in our core computing architecture will require a fundamental change in how we program. The art of multiprocessor programming, currently mastered by few, is more complex than programming uniprocessor machines, and requires an understanding of new computational principles, algorithms, and programming tools.
Concurrent computation on uniprocessor and multiprocessor architectures have many aspects in common. The key issue that distinguishes multiprocessor programming from concurrent uniprocessor programming is the need to understand how concurrent computations on separate processors coordinate with one another, a broad and intricate problem area we call multiprocessor synchronization.
Our textbook is The Art of Multiprocesor Programming, second edition,, by Maurice Herlihy, Nir Shavit, Victor Luchangco, Michael Spear. Students will be able to provide comments and feedback on it using MIT's NB. The textbook is also available to students through the Brown University Library website.
If you'd like to give us feedback on how we're doing, here's a link to the form.