31 lines
2.1 KiB
Markdown
31 lines
2.1 KiB
Markdown
|
# Лабораторная работа №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
|