Theory of Parallel Systems (6.895 / SMA 5509)
MIT OpenCourseWare graduate course on the theoretical foundations of general-purpose parallel computing, covering both languages and architecture with emphasis on the algorithmic underpinnings of parallel systems. Topics include multithreading, synchronization, race detection, load balancing, memory consistency models, routing networks, message-routing algorithms, and VLSI layout theory, with heavy use of randomized algorithms and probabilistic analysis including high-probability arguments. Originally taught at MIT and cross-listed as SMA 5509 through the Singapore-MIT Alliance programme. The course site provides lecture notes and materials for self-study, free to access with no certificate offered. Suited to students with a strong background in algorithms and probability who want to understand the theory behind concurrent and distributed computation rather than practical programming techniques.