Аннотация:В данной работе рассматриваются основные проблемы параллельного программирования, такие как взаимная блокировка, простой процессов, гонка данных, неравномерность загрузки процессов, недостаток параллелизма.
Каждая их этих проблем объяснена на примере классических задач синхронизации: обедающие философы, читатели-писатели, спящий парикмахер и некоторые простые задачи (например, перемножение матриц).
Для каждой из задач рассмотрены уже существующие распространённые решения, а так же решения с использованием технологии параллельного программирования MPI, реализовано одно из таких решений языке С с применением данной технологии, и для этого решения были получены зависимости основных характеристик от входных параметров для всех задач и зависимость от начального распределения.