460-4060/01 – Programming in the HPC Environment (PvP HPC)
Gurantor department | Department of Computer Science | Credits | 4 |
Subject guarantor | Mgr. Branislav Jansík, Ph.D. | Subject version guarantor | Mgr. Branislav Jansík, Ph.D. |
Study level | undergraduate or graduate | Requirement | Optional |
Year | | Semester | winter |
| | Study language | Czech |
Year of introduction | 2013/2014 | Year of cancellation | 2017/2018 |
Intended for the faculties | FEI | Intended for study types | Follow-up Master |
Subject aims expressed by acquired skills and competences
The students are expected to gain good orientation in contemporary HPC hardware architecture and principles of HPC programming. Further, they should become familiar with parallel program design and problem decomposition techniques. The aim is to build up a competence in MPI, OpenMP, CUDA and PGAS (UPC) programming models and skills necessary to apply these techniques efficiently to real life problems.
Teaching methods
Lectures
Tutorials
Summary
The students are expected to gain good orientation in contemporary HPC hardware architecture and principles of HPC programming. Further, they should become familiar with parallel program design and problem decomposition techniques. The aim is to build up a competence in MPI, OpenMP, CUDA and PGAS (UPC) programming models and skills necessary to apply these techniques efficiently to real life problems.
Compulsory literature:
http://software.intel.com/sites/default/files/319433-014.pdf
http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-optimization-manual.pdf
http://openmp.org/wp/
https://computing.llnl.gov/tutorials/openMP/
http://www.mpi-forum.org/
http://www.open-mpi.org/
http://icl.cs.utk.edu/papi/
http://www.netlib.org/scalapack/slug/index.html
Recommended literature:
http://software.intel.com/sites/default/files/319433-014.pdf
http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-optimization-manual.pdf
Additional study materials
Way of continuous check of knowledge in the course of semester
Podmínky udělení zápočtu: Vypracování úloh zadaných na cvičení a úlohy ke zkoušce (viz dále).
Zkouška
Zkouška bude spočívat v demonstraci a obhajobě hybridního OpenMP/MPI programu s využitím AVX vektorizace řešícího zadaný problém.
E-learning
Other requirements
Interest in the area of course.
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.
Subject syllabus:
The topics of lectures
● Introduction into high performace computing (HPC), the architecture of processor x86, principles of optimisation, measuring the performance by accessing to hardware, performance counters, PAPI library , Valgrind tool.
● SIMD vector programming, AVX instruction set. HPC problems and linear algebra, BLAS library.
● Supercomputer architectures, introduction into the environment of supercomputer, introduction into parallel computing, concepts and terminology of parallel programming, introduction into OpenMP and MPI, compilation of OpenMP and MPI programs, launching parallel processes.
● Basic OpenMP techniques, basic MPI communication, debugging and profiling of parallel programs.
● Advanced OpenMP and hybrid programming.
● Granularity, loadbalancing, and metascheduling. Implementation of Master-slave in MPI.
● Advanced topics: Trickiness in OpenMP programming, MPI communicators and groups, nonblocking MPI communication, collective MPI operations.
● Dynamical MPI, intracommunicators and intercommunicators, connecting MPI processes.
● One-sided MPI communication, MPI windows, frames, and epochs.
● MPI and parallel I/O.
● Integration of BLACS and MPI, libraries of parallel distributed linear algebra ScaLapack a PBLAS.
● Examples of HPC applications, solving the linear equations in parallel distributed environment.
Topics for computer labs
The labs correspond to the lectures. The topics are as follows:
● Computer architectures; computational performance and its measuring
● Vector programming
● Exploiting the libraries for linear algebra in parallel environments
● Programming in OpenMP
● Programming in MPI
● Examples of HPC applications
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction