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

## Описание
Были реализованы 2 алгоритма для определения детерминанта матрицы: обычный и параллельный. Для больших матриц лучше использовать метод Гаусса, который имеет временную сложность 𝑂(𝑛^3) и более подходящий для бенчмаркинга.

# Результат
Общий результат
![результат работы](./images/image1.jpg)

# Описание работы алгоритмов с матрицами 100x100 и 300x300
Здесь мы видим, что в случае с матрицами 100x100 и 300x300 самым быстрым алгоритмом является обычный. Параллельный алгоритм при одном потоке выполняет задачу медленнее, чем при обычном алгоритме и при большем количестве потоков. Также здесь заметно, что начиная с двух потоков задача выполняется дольше. Это связано с тем, что на управление большим количеством потоков тратятся ресурсы. Чем больше потоков, тем больше ресурсов требуется процессору для управления ими, возникает конкуренция за ресурсы.

# Описание работы алгоритмов с матрицей 500x500
В случае с матрицей 500x500 мы видим, что параллельный алгорит быстрее выполняет свою задачу, чем обычный. Чем больше потоков - тем быстрее расчитывается детерминант. Это связано с тем, что потоки распределяют между собой задачи по расчетам детерминанта, и соотвественно заканчивают быстрее. Из этого можем сделать вывод, что параллельный алгоритм больше подходит для работы с большими матрицами.

## Отчет
Работоспособность: [Видео](https://vk.com/video372869030_456239959)