Multicore Computing
Explore theoretical and practical aspects of designing multicore software systems; programming constructs for concurrent computation; openMP; sequential consistency; linearizability; lock-based synchronization; lock-free synchronization; wait-free synchronization; consensus number; software transactional memory; testing and debugging parallel programs; race detection; concurrent data structures such as stacks, queues, linked lists, hash tables, and skiplists; formal models; temporal logic; reachability analysis; and parallel graph algorithms. Electrical and Computer Engineering 361C and Electrical Engineering 361C may not both be counted. Three lecture hours a week for one semester.
Prerequisites & course information
Explore theoretical and practical aspects of designing multicore software systems; programming constructs for concurrent computation; openMP; sequential consistency; linearizability; lock-based synchronization; lock-free synchronization; wait-free synchronization; consensus number; software transactional memory; testing and debugging parallel programs; race detection; concurrent data structures such as stacks, queues, linked lists, hash tables, and skiplists; formal models; temporal logic; reachability analysis; and parallel graph algorithms. Electrical and Computer Engineering 361C and Electrical Engineering 361C may not both be counted. Three lecture hours a week for one semester.
Sources
- Course catalogue ↗2026-2027