INF214 Concurrent Programming, Fall 2018
Course Essentials
Lectures | Tue 14:15–16:00, Allegaten 66, Auditorium B |
Thu 08:15–10:00, Allegaten 66, Auditorium B | |
Labs | Group 3: Tue 8:15–10:00 |
Group 1: Wed 14:15–16:00 (Check Lab locations here) | |
Group 2: Fri 8:15–10:00 | |
Instructor | Jaakko Järvi |
TAs | Jonathan Steven Prieto Cubides, Ole Magnus Lie |
Course pages | http://www.ii.uib.no/~jjarvi/INF214 (Also: UiB's official course page) |
Contact | |
Office hours | TBA |
Schedule and material
Some of the materials are behind a password. Ask the instructor for one.
Date | Topic | Material | Reading |
---|---|---|---|
Tue 21.8 | Class setup, introduction | notes1.pdf examples1 | 1–1.4, 1.9 |
Thu 23.8 | Introduction | alang-tutorial.html | 2–2.5, 2.7–2.7.4, 2.8 |
Tue 28.8 | Synchronization with locks | notes2.pdf examples2 | 3–3.5.1 |
Thu 30.8 | Barriers | ||
Tue 4.9 | Barriers, semaphores | notes3.pdf examples3 | 4–4.4 |
Thu 6.9 | Semaphores, deadlock, readers/writers | ||
Tue 11.9 | Readers/writers, Monitors | notes4.pdf examples4 | Ch. 5 |
Thu 13.9 | Monitors | ||
Tue 18.9 | Reasoning about programs | notes5.pdf | 2.6 |
Thu 20.9 | Reasoning about programs | ||
Tue 25.9 | Reasoning about concurrent programs | ||
Thu 27.9 | Reasoning about concurrent programs | ||
Tue 2.10 | Software Transactional Memory | notes6.pdf stm.pdf | |
Thu 4.10 | Concurrency in C++ | c++-concurrency.pdf | |
Tue 9.10 | Concurrency in C++ | ||
Thu 11.10 | Concurrency in C++ | notes7.pdf | |
Tue 16.10 | no class | ||
Thu 18.10 | Task Parallelism | task-system.pdf | |
Tue 23.10 | Task Parallelism | ||
Thu 25.10 | no class | ||
Tue 30.10 | Message passing concurrency | notes8.pdf | 7–7.3.1 |
Thu 1.11 | Message passing concurrency | examples8 | |
Tue 6.11 | CSP | 7.6 | |
Thu 8.11 | CSP, Coroutines | notes9.pdf | |
Tue 13.11 | Coroutines | coroutines.pdf | |
Thu 15.11 | Coroutines in JavaScript | ||
Tue 20.11 | Distributed Systems | distributed-systems.pdf notes10.pdf | |
Thu 22.11 | Review | list of review topics |
- All class notes in one file: all-notes.pdf (this is a BIG file)
- All slides in one file: all-slides.pdf
Example programs discussed in class are not included into the above two files.
Assignments
There will be three compulsory assignments. There will be weekly exercises.
Some answers to assignments
Lab 1, Week 35
- Make sure you can compile and run C++ programs comfortably. Your group leader will help in case of trouble.
- Read through the alang-tutorial.html (which also contains instructions on how to compile and run C++ programs).
- Study all examples in the tutorial; compile and run them, and see that the results are as expected. You will need the alang.hpp header file.
- Work on the excercises in lab1.html.
Lab 2, Week 36
- Finish Lab1 if you didn't already.
- Work through these exercises: lab2.html.
Lab 3, Weeks 37–38, first obligatory assignment
The assignment is here: lab3-oblig1.html. Submission deadline is .
Lab 4, Week 39
Work through these exercises: lab4.html.
Lab 5, Weeks 40–42, second obligatory assignment
The assignment is here: lab5-oblig2.html. Submission deadline .
Lab 6, Week 43–44
Work through these exercises: lab6.html.
Lab 7, Weeks 45–46
Work through these exercises: lab7.html.
Lab 8, Week 47, third obligatory assignment
The assignment is here: lab8-oblig3.html. Submission deadline .
Resources
Textbooks
G. R. Andrews: Foundations of Multithreaded, Parallel, and Distributed Programming, 2000. Addison-Wesley.
- Tentative plan: Chapters 1 – 10, focusing on Chapters 1 – 5, 7, 8.
Software
Recent C++ compiler
- Clang, GCC, VisualStudio should all be fine