Multi-processor computer systems (MCS) or supercomputers have appeared with the necessity to solve complex problems of applied sciences with a large calculations amount, and fundamental limitations of the "classic", von Neumann-architecture, computers. Parallel computing became particularly important when the computer industry turned to the mass production of multi-core processors. At present, almost all devices from handheld-gadgets to the most powerful supercomputers are equipped with multi-core processors. And if you develop a serial program without distributing work between the CPU cores, you only use a part of the computing power of the CPU.
Supercomputer technology and high-performance computing using parallel computing systems is becoming an important factor in technological progress. Supercomputer technologies become more and more universal.
The main programming approaches using OpenMP and MPI are discussed in the present online course.
The course also gives basic knowledge of multi-core and multi-processor computer architecture.