Modern parallel systems and architectures, supercomputers, multi-core systems, cluster computers, hybrid systems and architectures. Many-core architectures and modern accelerators / coprocessors technologies (CUDA GPUs, Intel Xeon Phi coprocessor, Sunway κ.α.). Parallelization techniques for distributed memory parallel environments, parallel programming models, design of parallel programs and applications. Parallelization algorithms for typical computing problems in distributed memory parallel environments (e.g. sorting algorithms, matrix multiplication algorithms, linear systems solving algorithms). Parallel / multithreaded programming in shared memory environments (with the use of OpenMP API). Programming of GPUs and coprocessors (the CUDA programming model, the OpenCL standard, Intel Xeon Phi programming). Performance metrics / evaluation of parallel programs. Practice (lab): development of parallel programs and applications with the use of modern parallel programming software tools (OpenMP, CUDA, OpenCL, etc.).