Odysseus Logo

Virginia Tech

ECE-5510: Multiprocessor Programming

Description: Principle and practice of multiprocessor programming. Illustration of multiprocessor programming principles through the classical mutual exclusion problem, correctness properties of concurrency (e.g., linearizability), shared memory properties (e.g. register constructions), and synchronization primitives for implementing concurrent data structures (e.g., consensus protocols). Illustration of multiprocessor programming practice through programming patterns such as spin locks, monitor locks, the work-stealing paradigm and barriers. Discussion of concurrent data structures (e.g., concurrent linked lists, queues, stacks, hash maps, skiplists) through synchronization patterns ranging from coarse-grained locking to fine-grained locking to lock-free structures, atomic synchronization primitives, elimination, and transactional memory. Pre-requisite: Graduate Standing required

Pathways: N/A

Course Hours: 3 credits

Prerequisites: ECE-4534 or ECE-4550

Required By: N/A

Corequisites: N/A

Crosslist: CS-5510

Repeatability: N/A

Sections Taught: 15

Average GPA: 3.67 (A-)

Strict A Rate (No A-) : 46.64%

Average Withdrawal Rate: 0.00%

Chao Wang201284.2%15.8%0.0%0.0%0.0%0.0%3.781
Dongyoon Lee201779.4%20.6%0.0%0.0%0.0%0.0%3.763
Binoy Ravindran202268.5%31.5%0.0%0.0%0.0%0.0%3.619
Dimitrios S Nikolopoulos202383.5%14.5%0.0%0.0%2.1%0.0%3.712

Grade Distribution Over Time