DAS_2024_1/kuzarin_maxim_lab_6
2024-09-26 22:14:06 +03:00
..
DeterminantCalculation Фикс README 2024-09-26 22:14:06 +03:00
Images Фикс README 2024-09-26 22:14:06 +03:00
.gitignore Лаба реализована. Нужно всё проверить в контексте описания 2024-09-26 22:12:33 +03:00
DeterminantCalculation.sln Лаба реализована. Нужно всё проверить в контексте описания 2024-09-26 22:12:33 +03:00
README.md Фикс README 2024-09-26 22:14:06 +03:00

Лабораторная работа 6

Данная работа посвящена параллельному вычислению определителя матриц

Описание

Вычисление определителей для матрицы порядка более чем 3, сводится к разложению матрицы по строке (столбцу). Из этого следует, что для нахождения определителя 10-го порядка нужно (в худшем случае) 10 определителей 9-го порядка, что в свою очередь в худшем случае означает, что потребуется 8*9 = 72 определителя 8-го порядка и так далее. Это достаточно трудоёмкая процедура, которую желательно распределить

Запуск

Приложение представлет собой консольную программу на C#, которую можно скомпилировать и затем запустит exe файл. В результате в окне консоли появится таблица сравнения времени находления определителя квадратных матриц (размер указан в первой колонке) с использованием разного числа потоков(от 1 до 6). Чем больше размер, тем дольше будет идти расчёт.

Результаты

Результаты одного из запусков программы представлены ниже.
Resout
Как можно заметить, на небольших размерах распаралеливание приводит только к увеличению времени выполнения (за счёт времени создания Task и синхронизации). Но с ростом размера матрицы использование нескольким потоков начинает приносить значительный выигрыш по производительности. Но в рамках текущей реализации ускориться сильнее определённого предела не получится, что видно из расчёта матрицы 12/*12

Видеодемонстрация

Был записан видеоролик, демонстрирующий процесс запуска и работы системы. Он расположен по адресу