48 lines
2.6 KiB
Markdown
48 lines
2.6 KiB
Markdown
|
# Отчет по лабораторной работе №6
|
|||
|
|
|||
|
Выполнила студентка гр. ИСЭбд-41 Гренадерова А.А.
|
|||
|
|
|||
|
## Создание приложения
|
|||
|
|
|||
|
Выбрала язык C#, Windows Forms.
|
|||
|
|
|||
|
Приложение имеет поле ввода матрицы, в которое можно через пробел вносить элементы матрицы.
|
|||
|
Можно сгенерировать матрицу указав её размерность.
|
|||
|
При необходимости можно очистить матрицу и определитель.
|
|||
|
Количество потоков в параллельном алгоритме регулируется в соответствующем поле.
|
|||
|
|
|||
|
Попробуем запустить обычный и паралелльный алгоритмы на матрицах 2 на 2 и зафиксировать результат выполнения по времени.
|
|||
|
|
|||
|
![](screens/2.1.png)
|
|||
|
![](screens/2.2.png)
|
|||
|
|
|||
|
В результате обычный алгоритм выполнился за 0,0004332 секунды, в то время как паралелльный выполнился за 0,0047348 секунды.
|
|||
|
|
|||
|
## Бенчмарки
|
|||
|
|
|||
|
Протестируем обычный и параллельный алгоритм определение детерминанта на различной размерности матрицы.
|
|||
|
|
|||
|
В ходе экспериментов было установлено, что обработка матрицы размеров больше 11 на 11 занимает слишком много времени в обычном алгоритме, поэтому для тестирования возьмем матрицы 4 на 4, 6 на 6 и 11 на 11.
|
|||
|
|
|||
|
Сверху отображен результат обычного алгоритма, снизу паралелльного.
|
|||
|
|
|||
|
Матрица 4 на 4
|
|||
|
|
|||
|
![](screens/4.1.png)
|
|||
|
![](screens/4.2.png)
|
|||
|
|
|||
|
Матрицы 6 на 6
|
|||
|
|
|||
|
![](screens/6.1.png)
|
|||
|
![](screens/6.2.png)
|
|||
|
|
|||
|
Матрицы 11 на 11
|
|||
|
|
|||
|
![](screens/11.1.png)
|
|||
|
![](screens/11.2.png)
|
|||
|
|
|||
|
Сравнение обработки матрицы 11 на 11 на различном количестве потоков паралельного алгоритма.
|
|||
|
|
|||
|
![](screens/11СРазнымиПотоками.png)
|
|||
|
|
|||
|
Вывод: Параллельный алгоритм работает быстрее только при наличии большого количества операций. Если операций не так много, то обычный алгоритм справляется быстрее.
|