FPF:UINA503 Non-Sequential Computing - Course Information
UINA503 Non-Sequential Computing
Faculty of Philosophy and Science in OpavaWinter 2025
- Extent and Intensity
- 3/0/0. 5 credit(s). Type of Completion: zk (examination).
- Teacher(s)
- doc. RNDr. Luděk Cienciala, Ph.D. (lecturer)
doc. Ing. Petr Sosík, Dr. (lecturer)
doc. Ing. Petr Sosík, Dr. (seminar tutor) - Guaranteed by
- doc. RNDr. Luděk Cienciala, Ph.D.
Institute of Computer Science – Faculty of Philosophy and Science in Opava - 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
- Computer Science (programme FPF, CompSci-np)
- Course objectives
- The course introduces elementary concepts of parallel programming, the parallel computing model PRAM and a basic set of techniques of parallel algorithm development. Another part of the course is devoted to multi-thread programming, including practical projects.
- Learning outcomes
After completing the course, the student will be able to:
-
explain fundamental concepts of parallel programming,
-
describe the PRAM parallel computing model and its characteristics,
-
characterize basic techniques for parallel algorithm design,
-
apply parallel algorithm development techniques to solve computational problems,
-
explain principles of multi-thread programming,
-
implement multi-threaded applications using appropriate programming tools and libraries,
-
design and develop practical parallel and multi-threaded projects,
-
analyze and evaluate the performance and efficiency of parallel and multi-threaded programs,
-
solve technical problems related to parallel and multi-thread programming.
-
- Syllabus
- 1. Overview of elementary concepts of the complexity theory, the O notation. 2. Paradigm of parallel computing. The model PRAM and its variants (EREW, CRCW, CREW). Performance of parallel algorithms. 3. Brent Lemma, the WT Scheduling Principle. The Parallel Computation Thesis. 4. Paralelization techniques: balanced trees. 5. Paralelization techniques: divide and conquer. 6. Paralelization techniques: partitioning. 7. Paralelization techniques: pipelining. 8. Paralelization techniques: accelerated cascading. 9. Introduction to multi-thread programming. 10. Individual project.
- Literature
- required literature
- CORMEN, T. H., LEISERSON, C. E., RIVEST, R. L., STEIN, C. Introduction to Algorithms. Cambridge: The MIT Press, 2009. ISBN 978-0262033848. info
- JAJA, J. An Introduction to Parallel Algorithms. Addison-Wesley, Reading, Mass., 1992. info
- recommended literature
- Threading in .NET, online: https://docs.microsoft.com/en-us/dotnet/standard/threading/
- Teaching methods
- Interactive lecture Lecture with a video analysis
- Assessment methods
- Microprojects + final programming poject
- Language of instruction
- English
- Enrolment Statistics (recent)
- Permalink: https://is.slu.cz/course/fpf/winter2025/UINA503