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