DAS_2023_1/basharin_sevastyan_lab_6/README.md

2.5 KiB
Raw Blame History

Лабораторная работа 6. Вариант 5.

Задание

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

Как запустить

В терминале ввести команду python main.py из директории с файлом.

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

  • determinant_block: Эта функция принимает квадратный блок матрицы и вычисляет его детерминант с использованием функции np.linalg.det из библиотеки NumPy.
  • determinant_parallel: Эта функция разбивает исходную матрицу на квадратные блоки, а затем использует библиотеку multiprocessing для распараллеливания вычислений детерминантов блоков. Она создает пул процессов, разбивает матрицу на блоки и передает каждый блок в пул процессов для параллельного вычисления детерминанта. Затем результаты собираются и перемножаются для получения общего детерминанта матрицы.
  • В блоке if __name__ == "__main__": создается случайная матрица заданного размера, и затем функция determinant_parallel вызывается с разным числом процессов num_processes. Замеряется время выполнения для каждого размера матрицы и каждого числа процессов. Также измеряется время выполнения для последовательного (однопоточного) расчета детерминанта с использованием determinant_block.

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

Вывод

Из результатов работы видно, что написанный алгоритм не эффективен на приведенных размерах матрицы при различном количестве потоков. Вероятнее всего на это влияет процесс разделение квадратной матрицы на меньшие блоки для вычисления.