37 lines
2.5 KiB
Markdown
37 lines
2.5 KiB
Markdown
|
# Лабораторная работа 6. Определение детерминанта матрицы с помощью параллельных вычислений
|
|||
|
|
|||
|
## Задание
|
|||
|
|
|||
|
Требуется сделать два алгоритма: обычный и параллельный. В параллельном алгоритме предусмотреть ручное задание количества потоков, каждый из которых будет выполнять нахождение отдельной группы множителей.
|
|||
|
|
|||
|
### Запуск программы
|
|||
|
|
|||
|
Для запуска программы необходимо с помощью командной строки в корневой директории файлов прокета прописать:
|
|||
|
```
|
|||
|
python main.py
|
|||
|
```
|
|||
|
|
|||
|
### Описание работы программы
|
|||
|
|
|||
|
Программа реализует вычисление детерминанта квадратной матрицы с использованием двух алгоритмов: *обычного и параллельного*.
|
|||
|
|
|||
|
1. Обычный алгоритм
|
|||
|
|
|||
|
Использует функцию ```numpy.linalg.det()``` для вычисления детерминанта.
|
|||
|
|
|||
|
2. Параллельный алгоритм
|
|||
|
|
|||
|
Разбивает матрицу на части и использует несколько потоков для параллельного вычисления детерминанта. Количество потоков задается вручную. Реализован с использованием библиотеки ```concurrent.futures```.
|
|||
|
|
|||
|
Для каждого размера матрицы программа выводит время выполнения обычного и параллельного алгоритмов, а также соответствующие значения детерминантов.
|
|||
|
|
|||
|
### Результат работы программы:
|
|||
|
|
|||
|
![](result.png "")
|
|||
|
|
|||
|
#### Вывод
|
|||
|
|
|||
|
Параллельное выполнение нахождения детерминанта может привести к ускорению, особенно на больших матрицах. Однако, для некоторых матриц, результаты детерминантов могут отличаться между обычным и параллельным выполнением.
|
|||
|
|
|||
|
# Youtube
|
|||
|
https://youtu.be/2HcM0LfTgQk
|