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

## Задание

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

### Запуск программы

Для запуска программы необходимо с помощью командной строки в корневой директории файлов прокета прописать:
```
python main.py
```

### Описание работы программы

Программа реализует вычисление детерминанта квадратной матрицы с использованием двух алгоритмов: *обычного и параллельного*.

  1. Обычный алгоритм

      Использует функцию ```parallel_det``` для вычисления детерминанта.

  2. Параллельный алгоритм

      Разбивает матрицу на части и использует несколько потоков для параллельного вычисления детерминанта. Количество потоков задается вручную. Реализован с использованием библиотеки ```concurrent.futures```.

Для каждого размера матрицы программа выводит время выполнения обычного и параллельного алгоритмов, а также соответствующие значения детерминантов. 

### Результат работы программы:

![](result.png "")

#### Вывод

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

# ВК
https://vk.com/video256017065_456239876