DAS_2024_1/mochalov_danila_lab_6/readme.md

36 lines
3.3 KiB
Markdown
Raw Normal View History

2024-11-08 20:55:07 +04:00
# Лабораторная работа №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)