Table of Contents
Programming shared memory multicore machines (24h, 3ECTS)Person in charge: Luc Maranget (INRIA) Follow the course in this virtual room. Teachers
Warm-upAnswers at the bottom of this page.
Quiz 1. Consider the system below, where two threads and run in parallel on an x86 or Power multicore/multiprocessor, and share two memory locations
Can you guess all the possible values stored in
Quiz 2. Consider the following Java program (again the two threads share memory locations
Can this concurrent Java program print Course objectivesIn the recent years multicore and multiprocessors systems have become ubiquitous. However, despite 40 years of research on concurrency and programming languages, programming and reasoning about concurrent systems remains very challenging. Both hardware and high-level programming languages incorporate many performance optimisations: these are typically unobservable by single-threaded programs, but, as illustrated by the examples above, some have observable consequences for the behaviour of concurrent code. The aim of this module is to introduce some of the theory and the practice of concurrent programming, from hardware memory models and the design of high-level programming languages to the correctness of concurrent algorithms. In particular, we will:
Some familiarity with discrete mathematics (sets, partial orders, etc.) and with sequential programming will be assumed, and experience with operational semantics and with some concurrent programming would be helpful. However the course will be self-contained. LecturesOn Wednesday, 16h15–19h15, room 1014 Answers
|