DAS_2024_1/bondarenko_max_lab_6/README.md

2.5 KiB
Raw Blame History

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

ПИбд-42 || Бондаренко Максим

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

Задание

Note

Кратко: реализовать нахождение детерминанта квадратной матрицы.

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

Краткое описание модулей и их работа

  1. matrix.operations.js
  • getMinor(matrix, row, col): Получает минор матрицы для заданной строки и столбца.
  • determinant(matrix): Вычисляет детерминант матрицы рекурсивно (последовательный алгоритм).
  • determinantParallel(matrix, numThreads): Вычисляет детерминант матрицы параллельно, распределяя задачи по заданному количеству потоков.
  1. det.worker.js
  • Получает данные о своей части работы (миноры и знаки) и вычисляет частичный детерминант, который затем отправляет обратно главному потоку.
  1. benchmark.js
  • generateMatrix(size): Генерирует случайную квадратную матрицу заданного размера.
  • benchmark(): Выполняет бенчмарки для матриц различных размеров, сравнивая время выполнения последовательного и параллельного алгоритмов с различным количеством потоков.

Запуск

node benchmark.js

Результат работы

Important

benchmark.png

Ссылка на видео: https://cloud.mail.ru/public/9Bky/mjwK7bqBL