38 lines
2.3 KiB
Markdown
38 lines
2.3 KiB
Markdown
|
# Лабораторная работа №5: Вспоминаем математику или параллельное перемножение матриц
|
|||
|
|
|||
|
## Задание
|
|||
|
|
|||
|
Реализовать умножение двух квадратных матриц двумя способами: обычным и параллельным.
|
|||
|
В параллельном алгоритме предусмотреть возможность задания количества потоков.
|
|||
|
Каждый поток должен выполнять умножение матрицы в своей зоне ответственности.
|
|||
|
|
|||
|
### Требования:
|
|||
|
1. Обычное умножение матриц.
|
|||
|
2. Параллельное умножение с ручным заданием количества потоков.
|
|||
|
3. Бенчмаркинг для матриц размером 100x100, 300x300 и 500x500.
|
|||
|
|
|||
|
## Структура проекта
|
|||
|
|
|||
|
Проект реализован в одном файле `main.py`. В нем содержатся:
|
|||
|
- Обычное умножение матриц.
|
|||
|
- Параллельное умножение с использованием многозадачности.
|
|||
|
- Генерация случайных матриц для тестирования.
|
|||
|
- Бенчмаркинг для проверки времени выполнения обоих алгоритмов.
|
|||
|
- Тесты для проверки корректности умножения.
|
|||
|
|
|||
|
## Видео
|
|||
|
|
|||
|
https://cloud.mail.ru/public/Wzc4/FZCUnh5mk
|
|||
|
|
|||
|
## Заключение
|
|||
|
|
|||
|
В ходе лабораторной работы были реализованы два алгоритма умножения матриц:
|
|||
|
обычный и параллельный. Параллельное умножение показало
|
|||
|
значительное ускорение при больших матрицах.
|
|||
|
Ожидаемо, для маленьких матриц разница
|
|||
|
в производительности между алгоритмами была незначительной.
|
|||
|
Параллельное умножение эффективно использует многозадачность
|
|||
|
для уменьшения времени выполнения на крупных матрицах.
|
|||
|
|
|||
|
|