Practical Parallel Programming
|Ac.Year:||ukončen 2004/2005 (Not opened)|
|Hour/sem||Lectures||Sem. Exercises||Lab. exercises||Comp. exercises||Other|
|Guarantee:||Dvořák Václav, prof. Ing., DrSc., DCSY|
|Lecturer:||Dvořák Václav, prof. Ing., DrSc., DCSY|
|Faculty:||Faculty of Information Technology BUT|
|Department:||Department of Computer Systems FIT BUT|
| || ||To get familiar with programming of various parallel systems, especially symmetrical multiprocessors and clusters of workstations. Learn how to write portable programs using standardized interfaces and languages, specify parallelism and process communication. Be able to predict performance of parallel applications.|
| || ||Architectures and components of parallel systems. Programming models, concurrent processes, threads, communication. Design of parallel programs. Message passing: channel communication, routing algorithms, pipeline and farm model, prototyping parallel applications. Shared memory: exclussive access, support in programming languages, thread synchronization. Data parallelism: languages, vector and matrix operations, application examples. Case studies of parallel applications.|
|Learning outcomes and competences:|
| || ||Survey of parallelization techniques of fundamental scientific problems, knowledge of parallel programming in MPI and OpenMP.|
|Syllabus of lectures:|
- Parallel systems architectures, programming models, performance.
- Parallel processes, threads and communications, efficiency and overhead of parallel processing.
- Message passing programming, prototyping algorithms in TRANSIM.
- Programming in MPI, PVM, cluster computations.
- Designing parallel programs, pipeline computations, dynamic load balancing (farms).
- Shared variable programming, atomicity, exclusive access, synchronization constructs.
- Programming in OpenMP.
- Partitioning, work-pool and divide and conquer strategies.
- Data parallelism: languages (HPF), operations on vectors and matrices, application examples.
- Case studies of parallel applications - parallel sorting.
- Parallel FFT and image processing on different parallel platforms
- Parallel linear algebra, solution of large systems of linear equations.
- Searching and discrete optimization, parallel GA and ANN.
|Syllabus of laboratory exercises:|
- Parallel search of a global minimum.
- Parallel sorting, performance prediction (Transim).
- A solution of a large system of linear equations (MPI).
- Parallel FFT on a SMP (OpenMP, simulation).
- Wilkinson, B. - Allen, M.: Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers. Prentice Hall, 1999, ISBN 0-13-671710-1.
- Andrews, G.R.: Foundations of Multithreaded, Parallel, and Distributed Programming. Addison Wesley, 2000, ISBN 0-201-35752-6.
- Dvořák, V.: Architecture and programming of parallel systems. Lecture Notes FIT VUT v Brně, a manuscript under preparation.
- 300+ Powerpoint frames available to students.
| || ||Assessment of four small projects, a midterm examination.|