Concurrency & Multithreading

Vrije Universiteit Amsterdam

Course Description

  • Course Name

    Concurrency & Multithreading

  • Host University

    Vrije Universiteit Amsterdam

  • Location

    Amsterdam, The Netherlands

  • Area of Study

    Computer Programming

  • Language Level

    Taught In English

  • Course Level Recommendations

    Upper

    ISA offers course level recommendations in an effort to facilitate the determination of course levels by credential evaluators.We advice each institution to have their own credentials evaluator make the final decision regrading course levels.

    Hours & Credits

  • ECTS Credits

    6
  • Recommended U.S. Semester Credits
    3
  • Recommended U.S. Quarter Units
    4
  • Overview

    Period 2

    Level: 400

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

    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
    Lecture, Seminar.

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

    RECOMMENDED BACKGROUND KNOWLEDGE
    Datastructures & Algorithms, Programming in Java, Computer programming

Course Disclaimer

Courses and course hours of instruction are subject to change.

Some courses may require additional fees.

X

This site uses cookies to store information on your computer. Some are essential to make our site work; others help us improve the user experience. By using the site, you consent to the placement of these cookies.

Read our Privacy Policy to learn more.

Confirm