Course Unit Code | 9600-1028/01 |
---|
Number of ECTS Credits Allocated | 6 ECTS credits |
---|
Type of Course Unit * | Compulsory |
---|
Level of Course Unit * | Second Cycle |
---|
Year of Study * | First Year |
---|
Semester when the Course Unit is delivered | Summer Semester |
---|
Mode of Delivery | Face-to-face |
---|
Language of Instruction | Czech |
---|
Prerequisites and Co-Requisites | Course succeeds to compulsory courses of previous semester |
---|
Name of Lecturer(s) | Personal ID | Name |
---|
| MEC059 | Ing. Ondřej Meca, Ph.D. |
| JAN0369 | Mgr. Branislav Jansík, Ph.D. |
| RIH0042 | doc. Ing. Lubomír Říha, Ph.D. |
Summary |
---|
|
Learning Outcomes of the Course Unit |
---|
The course will provide the basics of creating parallel applications, including parallel processing and optimization techniques, depending on the target parallel architecture.
Student will be able to:
- actively use the new concepts of parallel programming
- analyze the algorithm, propose a suitable decomposition for its parallelization
- analyze the efficiency of the parallelization design
- implement and optimize algorithm using processor kernel-level parallelization, using multi-core (multicore (CPU) and manycore (MIC) computing capabilities) through OpenMP directives and using multiple computational computing power through MPI inter-process communications. |
Course Contents |
---|
1. Introduction to HPC, Parallel Programming and Architectures of Current Microprocessors
2. Decomposition algorithms for parallelization, oriented acyclic graphs
3. Optimization techniques for instruction-level parallelization, explicit directives, and instruction-level parallelization
4. Programming parallel threads using OpenMP directives
5. Basic inter-process communication with MPI library, hybrid programming
6. Methods of analytical modeling of the effectiveness of parallel algorithms |
Recommended or Required Reading |
---|
Required Reading: |
---|
1. Michael McCool (Author), James Reinders (Author), Arch Robison (Author), Structured Parallel Programming: Patterns for Efficient Computation Paperback – June 25, 2012
2. http://mpi-forum.org, MPI: A Message-Passing Interface Standard
3. http://openmp.org, OpenMP Application Program Interface |
1. Michael McCool (Author), James Reinders (Author), Arch Robison (Author), Structured Parallel Programming: Patterns for Efficient Computation Paperback – June 25, 2012
2. http://mpi-forum.org, MPI: A Message-Passing Interface Standard
3. http://openmp.org, OpenMP Application Program Interface
|
Recommended Reading: |
---|
1. http://software.intel.com, Optimization and Performance Tuning for Intel® Xeon Phi™ Coprocessors - Part 1: Optimization Essentials
2. Intel® 64 and IA-32 Architectures Optimization Reference Manual
3. High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches Paperback – November 17, 2014 by James Reinders (Author), James Jeffers (Author)
|
1. http://software.intel.com, Optimization and Performance Tuning for Intel® Xeon Phi™ Coprocessors - Part 1: Optimization Essentials
2. Intel® 64 and IA-32 Architectures Optimization Reference Manual
3. High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches Paperback – November 17, 2014 by James Reinders (Author), James Jeffers (Author)
|
Planned learning activities and teaching methods |
---|
Lectures, Seminars, Tutorials |
Assesment methods and criteria |
---|
Task Title | Task Type | Maximum Number of Points (Act. for Subtasks) | Minimum Number of Points for Task Passing |
---|
Examination | Examination | 100 | 51 |