Лабораторная работа 6 — Параллельное вычисление детерминанта матрицы
1. Цель работы
Изучение параллельного программирования на примере реализации алгоритмов вычисления детерминанта (определителя) квадратных матриц с использованием многопроцессности Python.
2. Как запустить лабораторную работу
Предварительные требования:
- Python 3.9+
- Библиотека NumPy
Установка зависимостей
pip install numpy
Запуск программы
python matrix.py
Программа автоматически выполнит:
- Тесты корректности на известных матрицах
- Бенчмарки на матрицах размером 100×100, 300×300 и 500×500 элементов
- Сравнение последовательного и параллельного алгоритмов
3. Структура проекта
matrix.py # Основной файл с реализацией алгоритмов
README.md # Документация проекта
4. Результаты тестирования
На всех тестах одинаковый результат: Детерминант при использовании множества потоков(процессов) высчитывается дольше чем при использовании строго 1 потока (главного). Это происходит из-за необходимости тратить время на выделение потоков(процессов), а также необходимости объединять результаты
Сводная таблица результатов
| Размер | Потоки | Время (сек) | Ускорение |
|---|---|---|---|
| 100 | 1 | 0.0100 | 1.00 |
| 100 | 2 | 0.3408 | 0.03 |
| 100 | 4 | 0.3861 | 0.03 |
| 100 | 12 | 0.5920 | 0.02 |
| 300 | 1 | 0.0783 | 1.00 |
| 300 | 2 | 1.0641 | 0.07 |
| 300 | 4 | 1.2565 | 0.06 |
| 300 | 12 | 2.1755 | 0.04 |
| 500 | 1 | 0.2195 | 1.00 |
| 500 | 2 | 3.0588 | 0.07 |
| 500 | 4 | 3.0725 | 0.07 |
| 500 | 12 | 4.7439 | 0.05 |
5. Видео
ВидеоСсылка на видео работы алгоритма: Rutube