DAS_2024_1/README.md

47 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Задание:
Реализовать нахождение детерминанта квадратной матрицы.
В лабораторной работе требуется сделать два алгоритма: обычный и параллельный
(задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание со *), каждый из которых будет выполнять нахождение отдельной группы множителей.
Сделать несколько бенчмарков последовательного и параллельного алгоритма поиска детерминанта матрицы размером 100x100, 300x300, 500x500 элементов.
Результаты работы:
Размер матрицы: 100x100
Бенчмаркинг последовательного алгоритма...
Время выполнения последовательного алгоритма: 2455 мс
Бенчмаркинг параллельного алгоритма...
Время выполнения параллельного алгоритма (1 потоков): 2486 мс
Время выполнения параллельного алгоритма (2 потоков): 1428 мс
Время выполнения параллельного алгоритма (4 потоков): 855 мс
Время выполнения параллельного алгоритма (8 потоков): 583 мс
Время выполнения параллельного алгоритма (16 потоков): 479 мс
-----------------------------
Размер матрицы: 300x300
Бенчмаркинг последовательного алгоритма...
Время выполнения последовательного алгоритма: 24633 мс
Бенчмаркинг параллельного алгоритма...
Время выполнения параллельного алгоритма (1 потоков): 24318 мс
Время выполнения параллельного алгоритма (2 потоков): 13679 мс
Время выполнения параллельного алгоритма (4 потоков): 7720 мс
Время выполнения параллельного алгоритма (8 потоков): 5608 мс
Время выполнения параллельного алгоритма (16 потоков): 4162 мс
-----------------------------
Размер матрицы: 500x500
Бенчмаркинг последовательного алгоритма...
Время выполнения последовательного алгоритма: 143225 мс
Бенчмаркинг параллельного алгоритма...
Время выполнения параллельного алгоритма (1 потоков): 141256 мс
Время выполнения параллельного алгоритма (2 потоков): 81412 мс
Время выполнения параллельного алгоритма (4 потоков): 45647 мс
Время выполнения параллельного алгоритма (8 потоков): 27759 мс
Время выполнения параллельного алгоритма (16 потоков): 21324 мс
-----------------------------
Работа программы:
Так как программа дает результат очень медленно, были скопированы результаты первого запуска, а в видео предоставлена демонстрация программы.
https://vkvideo.ru/video272231566_456240488?list=ln-zze65r7OQqdttHwz6F
Заключение:
Рекурсивный алгоритм вычисления детерминанта является не самым эффективным для больших матриц, поэтому на больших размерах вычисление может занимать много времени. В реальных приложениях лучше использовать более эффективные алгоритмы.
При увеличении размеров матрицы и количества потоков, могут возникнуть ошибки из-за переполнения стека.