E E 361C E E 361C. Multicore Computing. 3 Hours.
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. Three lecture hours a week for one semester. Electrical Engineering 361C and 379K (Topic: Multicore Computing) may not both be counted. Prerequisite: Electrical Engineering 422C and 360C with a grade of at least C-.
Students seeking the Bachelor of Science in Electrical Engineering pursue one of two curricula—electrical engineering or computer engineering. Both curricula contain the fundamentals of electrical engineering and computer engineering; they differ in technical core requirements in order to suit different career objectives.