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 |