URL study guide

https://studiegids.vu.nl/en/courses/2024-2025/X_401031

Course Objective

This course provides a comprehensive presentation of the foundations and programming principles for multicore computing devices. Specific learning objectives are:
- Acquiring 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. (Knowledge and understanding)
- Acquiring 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, transactional memory. (Knowledge and understanding)
- Analyzing algorithms for multicore computing with regard to functionality and performance: linearizability, starvation
- and wait-freeness, Amdahl's law, compute efficiency gain of parallelism. (Applying knowledge and understanding)
- Mastering elementary data structures in the context of multicore computing: lists, queues, stacks. (Applying knowledge and understanding) (Making judgements)
- Programming in multi-threaded Java, and performing experiments with such programs. (Applying knowledge and understanding) (Making judgements) (Learning skills)

Course Content

The course consists of the following topics: Shared memory, mutual exclusion, synchronization operations, concurrent data structures, scheduling, transactional memory, and a multithreaded programming assignment.

Teaching Methods

Lectures: 4 hours per week. Exercise classes: 2 hours per week.

Method of Assessment

The 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 must 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, for which at most a 6.0 can be achieved.

Literature

Maurice Herlihy, Nir Shavit, Victor Luchangco, Michael Spear, The Art of Multiprocessor Programming (2nd edition), Morgan Kaufmann, 2020.

Target Audience

Bachelor Econometrics and Operations ResearchMinor Deep Programming

Recommended background knowledge

Data structures & Algorithms, Computer Programming, Basic knowledge of Java.
Academic year1/09/2431/08/25
Course level6.00 EC

Language of Tuition

  • English

Study type

  • Premaster
  • Bachelor