Concurrency: Multi-core Programming and Data Processing

This course covers the foundations of concurrent systems and multiprocessor synchronization. Students who take this course will learn the basics of multicore programming, the new paradigm of computer science. The main topics covered in the course include foundations of concurrency: concurrent objects and consistency, foundations of shared memory, the relative power of synchronization operations, universality of consensus; and practical algorithms: mutual exclusion, spin locks and contention, lock-free and wait-free algorithms, concurrent data structures (linked lists, skip lists, queues, stacks, hash tables), scheduling and work distribution, barriers, transactional memory. The course will be complemented by practical, hands-on exercises on multi-core computers.

Details

Code 22027
62027
Type Course
ECTS 5
Site Neuchâtel
Track(s) T2 – Advanced Software Engineering
T6 – Data Science
Semester S2020

Teaching

Learning Outcomes

On successful completion of this class, you will be able to:

  • Understand how today’s multicore hardware supports concurrent programming
  • Reason about concurrent specifications and consistency models such as linearizability and sequential consistency
  • Know a collection of concurrent obstruction-free, lock-free, and wait-free data structures
  • Design scalable concurrent algorithms without locks (e.g., using atomic operations like compare-and-swap)
Lecturer(s) Pascal Felber
Language english
Course Page

The course page in ILIAS can be found at .

Schedules and Rooms

Period Weekly
Schedule Thursday, 14:15 - 18:00
Location UniNE, Unimail
Room B013

Additional information

Comment

First Lecture
The first lecture will be announced later.