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