Concurrency & Multithreading

2018-2019
Dit vak wordt in het Engels aangeboden. Omschrijvingen kunnen daardoor mogelijk alleen in het Engels worden weergegeven.

Doel vak

This 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,
transactional memory.
* 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
such programs.

Inhoud vak

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

Onderwijsvorm

4 hours per week HC, 4 hours per week WC.

Toetsvorm

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 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.

Literatuur

Maurice Herlihy, Nir Shavit, The Art of Multiprocessor Programming,
Morgan Kaufmann, 2008.

Doelgroep

3CS

Overige informatie

The homepage of the course is at http://www.cs.vu.nl/~tcs/cm/

Aanbevolen voorkennis

Datastructures & Algorithms

Programming in Java

Algemene informatie

Vakcode X_401031
Studiepunten 6 EC
Periode P1
Vakniveau 400
Onderwijstaal Engels
Faculteit Faculteit der Bètawetenschappen
Vakcoördinator prof. dr. W.J. Fokkink
Examinator prof. dr. W.J. Fokkink
Docenten prof. dr. W.J. Fokkink

Praktische informatie

Voor dit vak moet je zelf intekenen.

Voor dit vak kun je last-minute intekenen.

Werkvormen Werkcollege, Hoorcollege
Doelgroepen

Dit vak is ook toegankelijk als: