28 lines
1.8 KiB
Markdown
28 lines
1.8 KiB
Markdown
|
# Лабораторная работа №5 - Вспоминаем математику или параллельное перемножение матриц
|
|||
|
|
|||
|
## Разработка приложения
|
|||
|
|
|||
|
Для разработки был выбран язык Python. Для разработки приложения были использованы библиотки:
|
|||
|
- Numpy - библиотека для работы с массивами
|
|||
|
- Multiprocessing - библиотека для запуска нескольких процеесов, что позволяет паралельно запускать функции
|
|||
|
|
|||
|
Суть алгоритма:
|
|||
|
- Задаем размер матриц
|
|||
|
- Задаем кол-во потоков, которые будут работать паралельно
|
|||
|
- Разбиваем 1ю матрицу на матрицы поменьше, кол-во которых = кол-во потоков. Каждый поток будет обрабатывать свой кусок изначальной матрицы, умножая строки своего кусочка на столбцы 2й матрицы
|
|||
|
- Объединяем результаты работы всех потоков
|
|||
|
|
|||
|
## Тестирование
|
|||
|
#### Тестирование матриц 100х100
|
|||
|
![image1.png](images%2Fimage1.png)
|
|||
|
#### Тестирование матриц 300х300
|
|||
|
![image2.png](images%2Fimage2.png)
|
|||
|
#### Тестирование матриц 500х500
|
|||
|
![image3.png](images%2Fimage3.png)
|
|||
|
## Вывод
|
|||
|
Паралельной алгоритм умножения матриц работает эффективнее, чем обычный.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
## Запись тестирования
|
|||
|
Работа приложения представлена в [видео](https://disk.yandex.ru/i/YpNEhFwbDh865A)
|