Course ObjectiveThis course provides a comprehensive presentation of the foundations and
programming principles for multicore computing devices.
Specific learning objectives are:
* To provide insight into fundamental notions of multicore computing and
their relation to practice: locks, read-modify-write operations, mutual
exclusion, consensus, construction of atomic multi-reader-multi-writer
registers, lost wakeups, ABA problem.
* To provide insight into algorithms and frameworks for multicore
computing and their application in multi-threaded programs: mutual
exclusion algorithms, spin locks, monitors, barriers,
AtomicStampedReference class in Java, thread pools in Java,
* Analyzing algoritmes for multicore computing with regard to
functionality and performance: linearizability, starvation- and wait-
freeness, Amdahl's law, compute efficiency gain of parallelism.
* Mastering elementary datastructures in the context of multicore
computing: lists, queues, stacks.
* Programming in multi-threaded Java, and performing experiments with
Course ContentThe course consists of the following topics: Shared memory, mutual
exclusion, synchronization operations, concurrent data structures,
scheduling, transactional memory, and a multithreaded programming
Teaching Methods4 hours per week HC, 4 hours per week WC.
Method of AssessmentThe written exam counts for 75% and the programming assignment for 25%
of the final mark.
Both for the written exam and the programming assignment at least a 5.0
must be obtained (and the overall average mark should be at least 5.5).
Only students that achieved at least a 3.0 for their initial programming
assignment are offered a resit opportunity for this assignment.
LiteratureMaurice Herlihy, Nir Shavit, The Art of Multiprocessor Programming,
Morgan Kaufmann, 2008.
Additional InformationThe homepage of the course is at http://www.cs.vu.nl/~tcs/cm/
Recommended background knowledgeDatastructures & Algorithms
Programming in Java
|Language of Tuition||English|
|Faculty||Faculty of Science|
|Course Coordinator||prof. dr. W.J. Fokkink|
|Examiner||prof. dr. W.J. Fokkink|
prof. dr. W.J. Fokkink
You need to register for this course yourself
Last-minute registration is available for this course.
|Teaching Methods||Seminar, Lecture|
This course is also available as: