FI:PV192 Parallel Technical Systems - Course Information
PV192 Parallel Technical SystemsFaculty of Informatics
- Extent and Intensity
- 2/0/2. 4 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
- doc. RNDr. Petr Holub, Ph.D. (lecturer)
RNDr. Lukáš Hejtmánek, Ph.D. (lecturer)
prof. Ing. Václav Přenosil, CSc. (alternate examiner)
- prof. Ing. Václav Přenosil, CSc.
Department of Machine Learning and Data Processing - Faculty of Informatics
Supplier department: Department of Machine Learning and Data Processing - Faculty of Informatics
- Tue 14:00–15:50 G123
- Knowledge of C (level of PB071 course) and Java (level of PB162 course) programming is assumed. Furthermore, knowledge of UNIX operating systems at the advanced user level is expected.
- Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
- Fields of study the course is directly associated with
- there are 29 fields of study the course is directly associated with, display
- Course objectives
- At the end of the course students should be able to: understand principles of threaded programming including various synchronization mechanisms; create and debug parallel programs using shared memory; analyze parallel algorithms from the shared-memory implementation perspective.
- Multi-threaded environments, shared-memory architecture. Reasons for parallelization
- Processes and synchronization, race conditions
- Threads in C language, their creation and termination
- Threads in Java language, their creation and termination
- Debugging parallel applications
- Visibility and synchronization of operations. Signaling among objects
- Mutexes, semaphores, monitors. Advanced types of synchronization constructs, atomic types, non-blocking structures
- Thread pools and Futures
- Principles and applications of OpenMP
- Basic design patterns of multi-threaded applications. Data structures suitable for utilization in parallel algorithms
- Introduction to real-time applications
- Support for parallel programming in other programming languages.
- recommended literature
- GOETZ, Brian and Tim PEIERLS. Java concurrency in practice. Upper Saddle River, NJ: Addison-Wesley, 2006. xx, 403. ISBN 0321349601. info
- BEN-ARI, Mordechai. Principles of concurrent and distributed programming. 2. ed. Harlow: Addison-Wesley, 2006. xv, 361. ISBN 032131283X. info
- ANDREWS, Gregory R. Foundations of multithreaded, parallel, and distributed programming. Reading: Addison-Wesley, 2000. xx, 664 s. ISBN 0-201-35752-6. info
- Teaching methods
- Lectures, reading of recommended literature, solving and programming assignments.
- Assessment methods
- Scores for assignment solutions: 40%. Oral exam after all the lectures: 60%. In order to pass successfully, scores for working solution and oral exam must not be 0.
- Language of instruction
- Further comments (probably available only in Czech)
- Study Materials
The course is taught annually.