Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРО-429_ЛР4_ПВ.docx
Скачиваний:
0
Добавлен:
07.04.2025
Размер:
470.21 Кб
Скачать

Министерство науки и образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Уфимский университет науки и технологий»

Кафедра вычислительной математики и кибернетики

ОТЧЁТ

По лабораторной работе №4

«ПАРАЛЛЕЛЬНОЕ ВЫЧИСЛЕНИЕ ПРОИЗВЕДЕНИЯ ДВУХ МАТРИЦ СРЕДСТВАМИ MPI»

по дисциплине параллельные вычисления

Выполнили:

студенты группы ПРО-432

Ихсанова Э. А., Мустафин А. А., Видманов А. А,

Проверила:

проф. каф. ВМИК,

канд. физ.-мат. наук Шерыхалина Н.М.

Уфа — 2024 г.

Цель работы:

Научиться использовать принцип геометрической декомпозиции в параллельных алгоритмах и создавать параллельные программы для систем с распределенной памятью с использованием коллективных функций MPI на примере вычисления произведения двух матриц.

Порядок выполнения работы:

1. Написать параллельную программу перемножения двух квадратных матриц с использованием коллективных функций MPI. Размерность L вводится пользователем, размерность N = 10L. Матрицы A и B заполняются случайными элементами вещественного типа.

2. Выполнить отладку параллельной программы на персональном компьютере в режиме эмуляции многопроцессорного режима. Отладку провести сначала на матрицах малой размерности для возможности проверки правильности вычислений.

3. Написать параллельную программу вычисления матричного выражения согласно варианту (номеру в подгруппе).

Матрицы (N×N) обозначены заглавными буквами, вектора- строки (1×N) – строчными. Размерность N вводится пользователем, матрицы и вектора заполняются случайными элементами вещественного типа.

4. Выполнить отладку параллельной программы на персональном компьютере в режиме эмуляции многопроцессорного режима. Отладку провести сначала на матрицах малой размерности для возможности проверки правильности вычислений.

5. Отлаженные программы запустить при различном числе процессоров. В каждой программе выбрать размерность так, чтобы время выполнения параллельной программы на одном процессоре T1 составляло порядка 500 с. Последовательно просчитать варианты запуска при числе процессов p = 1, 2, 4, 6, 8. Полученные данные о продолжительности вычислительного процесса занести в таблицу 2.1, аналогичную таблице 1 предыдущей лабораторной работы.

6. Отлаженные программы запустить на Суперкомпьютере согласно инструкции, используя систему очередей. В каждой программе выбрать размерность так, чтобы время выполнения параллельной программы на одном процессоре T1 составляло порядка 500 с. Последовательно просчитать варианты запуска на 1, 2, 3, 4 узлах при числе процессоров p = 1, 2, 4, 6, 8. Полученные данные о продолжительности вычислительного процесса занести в таблицу 2.2, аналогичную таблице 1 предыдущей лабораторной работы.

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

Ход работы:

Была выполнена программная реализация на языке С++ перемножения двух квадратных матриц с использованием коллективных функций MPI. В начале с размерностью LxL = 109 x 109. После с размерностью L = 109, N=10L=1090. Матрицы A и B заполняются случайными элементами вещественного типа.

Для каждой программы последовательно просчитали варианты запуска на 1, 2, 4, 6, 8 процессорах, выбрали L так, чтобы время работы на одном процессоре T1 в первом случае составляло порядка 12 с (L = 109).

Матрица LxL на 1-м процессоре:

на 2-х процессорах:

на 4-х:

на 6-сти:

на 8-ми:

Второй случай, умножаем вектор на квадратную матрицу (NxL):

По полученным результатам выполнения программы составили таблицу:

p

Tp, c

NxL

LxL

1

0,538

12,1935

2

0,229

5,6532

4

0,213

3,2264

6

0,312

28,009

8

0,325

54,7262

Вычислили ускорение и эффективность и занесли данные в таблицу:

p

S*p

E*p

NxL

LxL

NxL

LxL

1

1

1

1

1

2

2,34934497

2,15691997

1,17467248

1,07845998

4

2,52582159

3,77928961

0,63145539

0,94482240

6

1,74110032

0,43534221

0,29018338

0,07255703

8

1,65538461

0,22280918

0,20692307

0,02785114

По данным ускорения был построен график зависимости S*p1 и S*p2:

По данным эффективности E*p1 и E*p2:

Вывод

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

Соседние файлы в предмете Параллельные вычисления