Vijay K. Garg Fall 2016
EE 382C/EE 361C: Multicore Computing
TTh 2:00 - 3:30, ETC 2.136
Instructor: Prof. Vijay K. Garg ; Office: POB 5.436
Phone: (512) 471-9424 ; email: email@example.com; Office Hours: T Th 11:00-12:00 ; or by appointment
Class Meeting Time and Room Number: TTh 2:00 - 3:30, ETC 2.136
Unique Number for EE 361C : 16745
Unique Number for EE 382C : 16960
Prerequisites for EE 361C : EE 422C with a grade of at least C-
Prerequisites for EE 382C : Graduate standing or permission from the instructor.
Course Contents: There has been a radical shift in computers in recent years. Almost
all computers are now multicore. Since the speed of individual sequential processor is not increasing,
the only way to improve performance for applications is to harness the multiple cores.
In this course we will look at the challenges and techniques in programming
these systems. The course
will expose students to theoretical
as well as practical aspects of designing multicore software systems.
It assumes that the student has undergraduate level knowledge of
programming, data structures, operating systems, computer architecture, and algorithms.
There will be five assignments.
Following topics will be covered in the course:
Grading for EE 361C: 35 % Assignments, 20 % Exam 1 (in class), 20 % Term project, 25 % Exam 2 (in class)
- Languages: concurrent languages,
inter-process communication, openMP, Java Streams
- Consistency condition for concurrent objects:
Sequential consistency, Linearizability
Lock based synchronization, Lock-free synchronization,
Wait free synchronization, consensus number, software transactional memory
- Testing and Debugging Parallel Programs:
Race detection, Deterministic replay, Global Predicate Detection
- Concurrent Data Structures:
Concurrent stacks, queues, linked lists, hashing, skiplists
- Mechanical Analysis of systems: Temporal Logic, Modal checking, reachability analysis,
- Parallel Algorithms:
Graph Algorithms, Matrix Algorithms
Grading for EE 382C: 35 % Assignments, 20 % Exam 1 (in class), 18 % Term paper, 25 % Exam 2 (in class), 2 % Class contributions
There is no final exam in this course. Instead, students are required to do a term project.
Students in EE 382C have to submit a term paper based on their project and give a
Students in EE 361C
would be required to give a demo of their project to the instructor.
Course Material: Lecture notes by the instructor supplemented with
papers from various conferences and journals.
The Art of Multiprocessor Programming, by Herlihy and Shavit, Morgan-Kaufmann Elsevier 2012.
Slides for the book
Course Website: We will use Canvas System available at
Adds and drops for graduate students taking graduate courses are not approved
after the twelvth class day except for good cause. Applications for approval
to drop a course after the twelveth class day should be made in the Graduate
ECE Office in ENS 101.
The core values of the University of Texas at Austin are learning, discovery,
freedom, leadership, individual opportunity, and responsibility. Each member of
the University is expected to uphold these values through integrity, honesty,
trust, fairness, and respect toward peers and community.
Pending Absence: By UT Austin policy, you must notify me of your pending absence at least
fourteen days prior to the date of observance of a religious holy day. If you must
miss a class, an examination, a work assignment, or a project in order to observe
a religious holy day, you will be given an opportunity to complete the missed
work within a reasonable time after the absence.
Students with Disabilities: The University of
Texas at Austin provides upon request appropriate academic adjustments for
qualified students with disabilities. For more information, contact the Office
of the Dean of Students at 471-6259, 471-4241 TDD or the College of Engineering
Director of Students with Disbailities at 471-4382.