Skip to main content
Skip header

Programming of HPC Systems

Type of study Follow-up Master
Language of instruction Czech
Code 9600-1032/01
Abbreviation PHPC
Course title Programming of HPC Systems
Credits 4
Coordinating department IT4Innovations
Course coordinator Ing. Ondřej Meca, Ph.D.

Subject syllabus

Lectures
1. Introduction to programming applications for distributed memory systems with message passing
2. Efficient data exchange between a pair of processes
3. Efficient communication among all processes
4. Creation of sub-groups and sub-communicators
5. Exchanging non-contiguous data
6. Parallel reading and writing files
7. Basic principles of one-sided communication
8. Hybrid parallelization and efficient mapping of processes on HPC clusters
9. Best practices for efficient parallelization and programming scalable applications
10. Profiling and debugging of distributed applications
11. Other programming models for distributed memory systems

Tutorials
• Connection to supercomputer and a basic run of parallel applications
• Practical demonstration of methods from lectures
• Debugging, profiling, and optimization of parallel applications
Projekt
Individual works on parallelization and optimization of a simple algorithm for a supercomputer operated by IT4Innovations National Supercomputing Center.

Literature

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

Advised literature

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)