Lecturer(s)
|
-
Mirshahi Sina, MSc.
-
Janků Peter, Ing. Ph.D.
-
Bližňák Michal, Ing. Ph.D.
|
Course content
|
Introduction to parallel processing and programming. - Taks' processing on system's background. Implementation using Qt. - Processes and subproceses. Implementation using Qt. - Threads and their synchronization using Qt (threads' creation and management). - Threads and their synchronization using Qt (synchronization and communications mechanisms). - Introduction to parallelism and tasks' parallelization, time complexity analysis. - Parallel architectures, Flynn's taxonomy, PRAM. - Interconnection networks. - Interconnection networks' embedding and simulations. - Routing in interconnection networks.. - Development of EREW PRAM algorithms using OpenMP (basic principles, parallel sections, distribution of work). - Development of EREW PRAM algorithms using OpenMP (data visibility scope, threads' synchronization). - Parallel algorithms ? parallel prefix sum, its modifications and applications. - Parallel algorithms ? sorting algorithms, linear algebra.
|
Learning activities and teaching methods
|
Lecturing, Demonstration, Exercises on PC
|
prerequisite |
---|
Knowledge |
---|
Programming Object-Oriented Programming Cross-platform Programming |
Programming Object-Oriented Programming Cross-platform Programming |
learning outcomes |
---|
The student has knowledge about development and analysis of parallel applications and algorithms and about parallel systems in general. The student is able to create multi-threaded and parallelized applications. |
The student has knowledge about development and analysis of parallel applications and algorithms and about parallel systems in general. The student is able to create multi-threaded and parallelized applications. |
Explain the principle of background job processing. |
Explain the principle of background job processing. |
Describe the processes and sub-processes. |
Describe the processes and sub-processes. |
Describe threads and their synchronization in Qt. |
Describe threads and their synchronization in Qt. |
Explain the principle of parallelism and parallelization of algorithms. |
Explain the principle of parallelism and parallelization of algorithms. |
Describe the basics of nesting and interconnect network simulations. |
Describe the basics of nesting and interconnect network simulations. |
Skills |
---|
Apply background job processing. |
Apply background job processing. |
Create a multi-threaded application. |
Create a multi-threaded application. |
Create a parallelized application. |
Create a parallelized application. |
Apply parallel algorithm for parallel prefix sum. |
Apply parallel algorithm for parallel prefix sum. |
Apply sorting parallel algorithms. |
Apply sorting parallel algorithms. |
teaching methods |
---|
Knowledge |
---|
Lecturing |
Demonstration |
Lecturing |
Demonstration |
Exercises on PC |
Exercises on PC |
assessment methods |
---|
Grade (Using a grade system) |
Grade (Using a grade system) |
Recommended literature
|
-
domovská stránka "OpenMP".
-
referenční příručka OpenMP ve Visual C++ na MSDN.
-
zdroje wxWidgets na internetu.
-
Aoyama, Y, Nakano, J. Practical MPI Programming, International Technical Support Organization. 1999.
-
J. Smart, K. Hock , S. Csomor. Cross-Platform GUI Programming with wxWidgets. Prentice Hall, 2006.
-
M. Bližňák. Systémové programování. skripta UTB Zlín.
-
N. Rappin, R. Dunn. wxPython in Action. Manning, 2006.
-
Pacheco, P. S. A Users' Guide to MPI. 1998.
-
R. Chandra, L. Dagum, D. Kohr, D. Maydan. Parallel Programming in OpenMP. Morgan Kaufmann, 2000.
-
Tvrdík, Pavel. Paralelní systémy a algoritmy. Praha : ČVUT, 2000. ISBN 80-01-02267-6.
|