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
● 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