| Title: | Practical Parallel Programming |
|---|
| Code: | PPP |
|---|
| Ac.Year: | ukončen 2002/2003 |
|---|
| Term: | Summer |
|---|
| Study plans: | |
|---|
| Language: | Czech |
|---|
| Public info: | http://www.fit.vutbr.cz/study/courses/PPP/public/ |
|---|
| Credits: | 6 |
|---|
| Completion: | examination (written) |
|---|
Type of instruction: | | Hour/sem | Lectures | Sem. Exercises | Lab. exercises | Comp. exercises | Other |
|---|
| Hours: | 39 | 0 | 0 | 26 | 0 |
|---|
| | Examination | Tests | Exercises | Laboratories | Other |
|---|
| Points: | 60 | 12 | 0 | 0 | 28 |
|---|
|
|---|
| Guarantee: | Dvořák Václav, prof. Ing., DrSc., DCSY |
|---|
| Lecturer: | Dvořák Václav, prof. Ing., DrSc., DCSY |
| Faculty: | Faculty of Information Technology BUT |
|---|
| Prerequisites: | |
|---|
| Follow-ups: | |
|---|
| | | Learning objectives: |
|---|
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. | | Description: |
|---|
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).
| | Fundamental literature: |
|---|
- 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.
| | Study literature: |
|---|
- 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.
| | Progress assessment: |
|---|
Assessment of four small projects, a midterm examination. | | |
|