During these labs you will discover a few aspects of concurrent and parallel programming. Despite the name of the lecture (parallelism), we will actually spend most of the time on concurrency, and only a few exercises on parallelism. There is another lecture on parallel programming in M2, and the other M1 lecture called “concurrency” does not treat the basics of concurrent programming that we will study here.
The last lab will be graded.
nov 13th Lab 1
(C)
PThread library. Notion of thread, data race, mutex, deadlock,
deadlock-avoidance.
nov 20th Lab 2 (JAVA) / TP 2 Java threads. Atomic instructions, monitors, condition variable, semaphore. Example of loop parallelisation.
nov 28th 15:45-18:45 Lab 3 (PYTHON) GPU Programming. Image processing. Game of Life.
dec 12th Lab 4 (graded)