# Лабораторная работа №6 #### ПИбд-42. Мочалов Данила. #### Выполнение Реализованы два алгоритма вычисления определителя квадратной матрицы: обычный (рекурсивный) и параллельный. Параллельный алгоритм использует multiprocessing.Pool для разделения вычислений миноров между несколькими процессами. #### Результаты бенчмарков: Тесты проведены для матриц размером 9x9, 10x10 и 11x11 с разным количеством процессов (1, 2, 4). Большие размеры не использовались из-за высокой вычислительной сложности рекурсивного алгоритма. Результаты представлены в таблице: | Размер матрицы | Алгоритм | Кол-во процессов | Время (сек.) | |----------------|------------|------------------|-------------| | 9x9 | Обычный | - | 0.24 | | 9x9 | Параллельный | 1 | 0.39 | | 9x9 | Параллельный | 2 | 0.25 | | 9x9 | Параллельный | 4 | 0.20 | | 10x10 | Обычный | - | 2.37 | | 10x10 | Параллельный | 1 | 2.47 | | 10x10 | Параллельный | 2 | 1.42 | | 10x10 | Параллельный | 4 | 0.85 | | 11x11 | Обычный | - | 26.02 | | 11x11 | Параллельный | 1 | 25.90 | | 11x11 | Параллельный | 2 | 14.15 | | 11x11 | Параллельный | 4 | 7.21 | #### Анализ - Рекурсивный алгоритм имеет экспоненциальную сложность, что делает его очень медленным для матриц больших размеров. - Параллельный алгоритм с одним процессом работает примерно с той же скоростью (или чуть медленнее), что и последовательный, из-за накладных расходов на создание и управление процессами. - С увеличением размера матрицы и количества процессов эффективность параллельного алгоритма возрастает. Наиболее заметное ускорение достигается при использовании 4 процессов для матрицы 11x11. - Для маленьких матриц параллелизм может быть неэффективен из-за накладных расходов. #### Демонстрация Доступна по [ссылке](https://drive.google.com/file/d/1XkkIvRzfLpiqzkJjBeTQHF-VMr9KhkeA/view?usp=sharing)