distributed-computing/tasks/nasybullov-ai/lab_6
2024-01-09 18:12:35 +03:00
..
Lab6 commit 2024-01-09 18:12:35 +03:00
pic commit 2024-01-09 18:12:35 +03:00
README.md commit 2024-01-09 18:12:35 +03:00

Отчет по лабораторной работе №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 потоков.