forked from Alexey/DAS_2024_1
31 lines
2.1 KiB
Markdown
31 lines
2.1 KiB
Markdown
|
# Лабораторная работа 5. Параллельное умножение матриц
|
|||
|
|
|||
|
## Задание
|
|||
|
|
|||
|
Требуется сделать два алгоритма: обычный и параллельный. В параллельном алгоритме предусмотреть ручное задание количества потоков, каждый из которых будет выполнять умножение элементов матрицы в рамках своей зоны ответственности.
|
|||
|
|
|||
|
### Запуск программы
|
|||
|
|
|||
|
Для запуска программы необходимо с помощью командной строки в корневой директории файлов прокета прописать:
|
|||
|
```
|
|||
|
python main.py
|
|||
|
```
|
|||
|
|
|||
|
### Описание работы программы
|
|||
|
|
|||
|
Генерируются две матрицы ```first_matrix``` и ```second_matrix``` заданного размера.
|
|||
|
|
|||
|
После этого вызываются соответствующие методы для вычисления произведения матриц: ```matrix_multiplication``` - простая функция перемножения матриц и ```matrix_multiplication_treads``` - функция перемножения матриц в потоке.
|
|||
|
|
|||
|
Измеряется время выполнения каждого из методов с использованием функции ```time.time()```.
|
|||
|
|
|||
|
### Результат работы программы:
|
|||
|
|
|||
|
![](1.png "")
|
|||
|
|
|||
|
#### Вывод
|
|||
|
|
|||
|
Параллельное выполнение матричного умножения имеет смысл применять при работе с крупными матрицами, где выигрыш от параллельных вычислений компенсирует затраты на управление потоками. Для небольших матриц может быть эффективнее использовать обычное выполнение
|
|||
|
|
|||
|
# ВК
|
|||
|
https://vk.com/video256017065_456239875
|