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.
 

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)
     
Type: 
Course
Semester: 
S2018
ECTS: 
5
Lecturer: 
Site: 
N
Code: 
22027
62027
Language: 
english
Period: 
weekly
Schedule: 
Thursday: 14:15 - 18:00
Location: 
UniNE, Unimail
Room: 
B013
Evaluation type: 
written exam
Comment: 

First Lecture
The first lecture will take place on Thursday, 22.02.2018 at 14:15 in UniNE, Unimail, room B013.

ILIAS
The course page in ILIAS can be found at https://ilias.unibe.ch/goto.php?target=crs_1166777&client_id=ilias3_unibe.