# Лабораторная работа 5. Параллельное умножение матриц

## Задание

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

### Запуск программы

Для запуска программы необходимо с помощью командной строки в корневой директории файлов прокета прописать:
```
python main.py
```

### Описание работы программы

Генерируются две матрицы ```first_matrix``` и ```second_matrix``` заданного размера.

После этого вызываются соответствующие методы для вычисления произведения матриц: ```matrix_multiplication``` - простая функция перемножения матриц и ```matrix_multiplication_treads``` - функция перемножения матриц в потоке.

Измеряется время выполнения каждого из методов с использованием функции ```time.time()```.

### Результат работы программы:

![](1.png "")

#### Вывод

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

# ВК
https://vk.com/video256017065_456239875