.. | ||
Lab6 | ||
pic | ||
README.md |
Отчет по лабораторной работе №6
Выполнил студент гр. ИСЭбд-41 Мытарин Е.С.
Создание приложения
Выбрал язык C#, Windows Forms.
Приложение имеет поле ввода матрицы, в которое можно через пробел вносить элементы матрицы. При необходимости можно сгенерировать матрицу указав её размерность или загрузить из файла. Если размерность матрицы очень большая, то рекомендуется убрать флажок "выводить все в textbox", чтобы не нагружать приложение, и не выводить элементы матрицы в текстовое поле. При необходимости можно очистить матрицу и определитель. Количество потоков в параллельном алгоритме регулируется в соответствующем поле.
Попробуем запустить обычный и паралелльный алгоритмы на матрицах 3х3 и зафиксировать результат выполнения по времени.
В результате обычный алгоритм выполнился за 0.0004319 секунды, в то время как паралелльный выполнился за 0.0206593 секунды.
Бенчмарки
Протестируем обычный и параллельный алгоритм определение детерминанта на различной размерности матрицы.
В ходе экспериментов было установлено, что обработка матрицы размеров больше 12х12 занимает слишком много времени в обычном алгоритме, поэтому для тестирования возьмем матрицы 5х5, 8х8 и 12х2.
Сверху отображен результат обычного алгоритма, снизу паралелльного.
Матрица 5х5
Матрицы 8x8
Матрицы 12х12
Сравнение обработки матрицы 12х12 на различном количестве потоков паралельного алгоритма.
Вывод: Параллельный алгоритм работает быстрее только при наличии большого количества операций. Если операций не так много, то обычный алгоритм справляется быстрее.
Также была обнаружено оптимальное количество потоков для лучшей работы обработки матриц 12x12 - 7 потоков.