Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
па-пми / лр-2.docx
Скачиваний:
0
Добавлен:
10.06.2026
Размер:
280.3 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра МО ЭВМ

отчет

по лабораторной работе № 2

по дисциплине «Параллельные алгоритмы»

Тема: Использование функций обмена данными «точка-точка» в библиотеке MPI.

Студентка гр. 3384

Преподаватель

Татаринов Ю.С.

Санкт-Петербург

2025

Цель работы.

Разработать модель обмена сообщениями в замкнутом кольце на основе MPI point-to-point. Реализовать случайную генерацию сообщений с указанием адресата, маршрутизацию сообщений по кольцу до адресата, механизм удаления недоставленных сообщений узлом-контролёром, а также провести проверку корректности работы и анализ производительности алгоритма.

Задание. (Вариант 2)

Предполагается, что узлы кластера (и соответствующие процессы) образуют замкнутое кольцо (последний процесс связан с процессом с номером 0). Процессы случайным образом генерируют сообщения, состоящие из информационной части и номера процесса-адресата. Сообщение передается по кольцу до тех пор, пока не дойдет до него. Узел 0 выполняет, кроме того, роль контроллера канала и удаляет из него сообщения, не нашедшие адресата.

Выполнение работы.

Описание алгоритма выполнения.

Алгоритм был реализован для кольцевой сети процессов, где каждый узел знает своих соседей по кругу. Каждый узел случайно генерирует несколько сообщений с указанием адресата. Если адресат совпадает с отправителем, то сообщение доставляется локально и отправитель уведомляет контролёра о доставке. Сообщения, адресованные другим узлам, передаются следующему соседу и движутся по кольцу от узла к узлу. Обычные узлы при получении проверяют адрес и, если сообщение не их, пересылают его дальше. Контролёр при первом прохождении помечает сообщение и пропускает его, чтобы дать шанс доставке. Если помеченное сообщение вернулось к контролёру снова, значит, что адресата нет и сообщение удаляется. Контролёр ведёт счёт доставленных и удалённых сообщений и сравнивает их сумму с заранее известным общим числом сообщений. Когда сумма достигает общего числа, контролёр посылает сигнальный пакет завершения по кольцу. Каждый узел, получив такой пакет, передаёт его дальше и завершает работу. После обхода кольца контролёр фиксирует окончательную статистику.

Графики.

На рисунке 1 показана зависимость среднего времени выполнения программы от числа процессов. Среднее время работы вычислялось как среднее на основе работы теста пять раз. По рисунку видно, что с увеличением числа процессов возрастает и время работы программы.

Рисунок 1 – График зависимости времени выполнения программы от числа процессов

На рисунке 2 изображен график замедления функции. Из него видно, что при увеличении числа процессов производительность программы резко падает.

Рисунок 2 – График замедления

Сеть Петри.

На рисунке 3 изображена Сеть Петри для трех процессов, моделирующая процесс обмена сообщениями типа «точка-точка» между процессами, образующими кольцевую топологию.

Рисунок 3 – Сеть Петри

Разработанный программный код см. в Приложении А.

Тестирование программы см. в Приложении В.

Выводы.

В результате выполнения лабораторной работы были изучены основные возможности point-to-point обмена данными и применена эта модель для построения кольцевой топологии процессов с выделением узла контролёра.

В ходе работы реализована генерация случайных сообщений с указанием адресата, маршрутизация сообщений по кольцу, механизм локальной доставки собственных сообщений и уведомления контролёра о таких доставках. Контролёр помечает сообщения при первом обходе и удаляет недоставленные сообщения при повторном обходе. Реализован протокол сигнального завершения при достижении контролёром заранее известного общего числа сообщений. Реализация на языке C была проверена на различном числе процессов. Логирование показало корректную локальную доставку, пересылку и приём сообщений, согласованное накопление счётчиков доставленных сообщений контролёром и корректную рассылку и возврат сигнала TERMINATE.

Были проведены измерения времени работы программы и построены график зависимости среднего времени от числа процессов и график замедления. Анализ графиков показал, что при увеличении числа процессов общее время выполнения растёт и относительная производительность системы ухудшается из-за возрастающих задержек при последовательной маршрутизации в кольце и централизованной работе контролёра.

В качестве формальной модели процесса обмена была нарисована сеть Петри, что позволило формализовать состояния и переходы алгоритма и подтвердить правильность логики маршрутизации и условий удаления сообщений.

Реализованный алгоритм корректно воспроизводит требуемое поведение системы обмена в кольце и обеспечивает детерминированный порядок завершения.

Соседние файлы в папке па-пми