# Лабораторная работа №6 - Определение детерминанта матрицы с помощью параллельных вычислений

## Задание

* Кратко: реализовать нахождение детерминанта квадратной матрицы. Что такое детерминант матрицы (или определитель) можно посмотреть по ссылке.

* Подробно: в лабораторной работе требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание со *), каждый из которых будет выполнять нахождение отдельной группы множителей.


## Работа программы:

 1. Инициализирует три матрицы размером 100x100, 300x300 и 500x500 со случайными значениями.

 2. det(matrix) реализует алгоритм Гаусса для нахождения детерминанта квадратной матрицы.  

 3. parallel_det(matrix, num_threads=1) использует пул потоков для ускорения вычислений. Для каждой строки матрицы создается поток, который обрабатывает все строки под ней, применяя необходимые преобразования.


### Результат:

![](result.png "")

### Вывод:

Параллельные вычисления могут значительно ускорить процесс нахождения детерминанта, особенно когда речь идет о больших матрицах. Тем не менее, иногда результаты вычисленного детерминанта могут различаться между последовательным и параллельным подходами.


# Видео
https://vk.com/video230744264_456239110?list=ln-LZEUeze0D4JCSQZ4LK