2.5 KiB
2.5 KiB
Лабораторная работа 6. Вариант 5.
Задание
Реализовать нахождение детерминанта квадратной матрицы.
Как запустить
В терминале ввести команду python main.py
из директории с файлом.
Описание работы
determinant_block
: Эта функция принимает квадратный блок матрицы и вычисляет его детерминант с использованием функцииnp.linalg.det
из библиотеки NumPy.determinant_parallel
: Эта функция разбивает исходную матрицу на квадратные блоки, а затем использует библиотекуmultiprocessing
для распараллеливания вычислений детерминантов блоков. Она создает пул процессов, разбивает матрицу на блоки и передает каждый блок в пул процессов для параллельного вычисления детерминанта. Затем результаты собираются и перемножаются для получения общего детерминанта матрицы.- В блоке
if __name__ == "__main__"
: создается случайная матрица заданного размера, и затем функцияdeterminant_parallel
вызывается с разным числом процессовnum_processes
. Замеряется время выполнения для каждого размера матрицы и каждого числа процессов. Также измеряется время выполнения для последовательного (однопоточного) расчета детерминанта с использованиемdeterminant_block
.
Результат работы
Вывод
Из результатов работы видно, что написанный алгоритм не эффективен на приведенных размерах матрицы при различном количестве потоков. Вероятнее всего на это влияет процесс разделение квадратной матрицы на меньшие блоки для вычисления.