# Лабораторная работа 6 - Определение детерминанта матрицы с помощью параллельных вычислений ### ПИбд-42 || Бондаренко Максим # Описание работы ## Задание > [!NOTE] > Кратко: реализовать нахождение детерминанта квадратной матрицы. > > Подробно: в лабораторной работе требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание со *), каждый из которых будет выполнять нахождение отдельной группы множителей. ## Краткое описание модулей и их работа 1. matrix.operations.js - getMinor(matrix, row, col): Получает минор матрицы для заданной строки и столбца. - determinant(matrix): Вычисляет детерминант матрицы рекурсивно (последовательный алгоритм). - determinantParallel(matrix, numThreads): Вычисляет детерминант матрицы параллельно, распределяя задачи по заданному количеству потоков. 2. det.worker.js - Получает данные о своей части работы (миноры и знаки) и вычисляет частичный детерминант, который затем отправляет обратно главному потоку. 3. benchmark.js - generateMatrix(size): Генерирует случайную квадратную матрицу заданного размера. - benchmark(): Выполняет бенчмарки для матриц различных размеров, сравнивая время выполнения последовательного и параллельного алгоритмов с различным количеством потоков. ## Запуск ``` node benchmark.js ``` ## Результат работы > [!IMPORTANT] > ![benchmark.png](./benchmark.png) Ссылка на видео: https://cloud.mail.ru/public/9Bky/mjwK7bqBL