PV192 Parallel Technical Systems

Faculty of Informatics
Spring 2015
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)
Guaranteed by
doc. RNDr. Aleš Horák, Ph.D.
Department of Machine Learning and Data Processing - Faculty of Informatics
Supplier department: Department of Machine Learning and Data Processing - Faculty of Informatics
Mon 16. 2. 8:00–14:50 A219, Tue 7. 4. 14:00–15:50 A319, Tue 14. 4. 14:00–15:50 A319, Tue 21. 4. 14:00–15:50 A319, Tue 28. 4. 14:00–15:50 A319, Tue 5. 5. 14:00–15:50 A319, Tue 12. 5. 14:00–15:50 A319
IB109 Design of Parallel Systems
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 / plans 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 once in two years.
The course is also listed under the following terms Spring 2008, Spring 2009, Spring 2010, Spring 2011, Spring 2012, Spring 2013, Spring 2014.
  • Enrolment Statistics (recent)
  • Permalink: https://is.muni.cz/course/fi/spring2015/PV192