DAS_2023_1/simonov_nikita_lab_5/readme.md

31 lines
2.1 KiB
Markdown
Raw Normal View History

2024-01-22 04:27:41 +04:00
# Лабораторная работа №5.
## Задание
Реализовать умножение двух больших квадратных матриц
## Ход выполнения
- Реализовать алгоритм перемножение матриц для потокового выполнения
- Адаптировать алгоритм для параллельного выполнения:
- Разделить данные на чанки, сохранив корректность вычислений
## Технологии
- `numpy`: библиотека для работы с многомерными массивами и матрицами в Python.
- `multiprocessing`: модуль Python, предоставляющий возможность создания и управления процессами, что позволяет реализовать параллельные вычисления.
## Ход работы
- `sequential_multiply_matrix`: Функция выполняет последовательное умножение двух матриц. Перед умножением производится проверка на возможность выполнения операции. Результат сохраняется в новой матрице.
- `parallel_multiply_matrix`: Функция выполняет параллельное умножение двух матриц, разделяя работу между указанным числом процессов. Также производится проверка на возможность умножения матриц. Результат сохраняется в новой матрице.
- `perform_multiplication`: Вспомогательная функция, используемая в параллельном умножении. Каждый процесс выполняет умножение только для своего "куска" матрицы.
## Результаты
![](screens/Screenshot_1.png)
## Ссылка на видео
https://drive.google.com/file/d/18GxoovYjWLUAOhtsORBzBUByu4HdIeY8/view?usp=sharing