# Лабораторная работа №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)