|
|
Concurrent and Distributed Programming and Systems 2025/2026
Monday 16:30 M.X
The evaluation of work during the semester (homeworks) forms 50% of the
final grade, of which at least 40% are required.
- Motivation. Separation of algorithmic and concurrent aspects in C.
Memory and time complexity of programs with I/O operations and dynamic
memory allocation. Polling and its consequences.
Historical
recommendation (when to use threads and when not, 1995)
- Threads. Thread state diagram. Shared variables, atomicity of memory
accesses, critical regions. Decker's and Peterson's algorithms, assumptions
on memory accesses.
Lecture notes
Open Group pthread
reference
A pthread tutorial
Another pthread tutorial
- Time measurements. Sources of time in PCs, real-time clock (RTC),
programmable interrupt timer (PIT). Access to time sources and alarms in
POSIX processes. Precision of time measurements.
Lecture notes
A tutorial on PC timers
Linux
man clock_gettime(CLOCK_MONOTONIC_RAW, ...)
- Threads in Java. Creation of a thread. Synchronised methods,
synchronised blocks. Built-in reentrant mutexes, built-in condition
variables. Methods join(), wait(), notify(). Problem with a direct use of
synchronised methods.
SCJP
Sun Certified Programmer for Java (Chapter 9)
H.
Schildt: Java, The Complete Reference (Chapter 11)
S.
Oaks, H. Wong: Java Threads
- Thread-safety in libraries.
Case
study: thread-safe shared stack
- OpenMP and OpenACC. Fork-join parallelism.
Specification of OpenMP
GOMP (GNU OpenMP)
Introduction
to OpenMP (University of Oregon)
OpenACC API
Homeworks
For writing programs in C, use this template.
Use a Linux system and the gcc compiler. Make sure that 0 errors and 0
warnings are produced during the compilation and linking (use make).
Updated by
Tomas Plachetka,
Dec/3/2025
|