ECE X61C Multicore Computing
ECE 361C Multicore Computing 3 Hours
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.