EE 361C: Multicore Computing

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 Engineering 361C and 379K (Topic: Multicore Computing) may not both be counted.

Course Level: 

Undergraduate

Prerequisites: 

Upper-division standing in the electrical engineering major, and Electrical Engineering 422C with a grade of at least C-.