Go to file
2024-12-30 22:57:49 +04:00
.gitattributes Добавить .gitattributes и .gitignore. 2024-12-30 20:43:52 +03:00
.gitignore Добавить .gitattributes и .gitignore. 2024-12-30 20:43:52 +03:00
Matrix.cs Загрузить файлы в «/» 2024-12-30 22:57:49 +04:00
Program.cs Загрузить файлы в «/» 2024-12-30 22:57:49 +04:00
README.md Обновить README.md 2024-12-30 22:38:37 +04:00
rvip_6.csproj Загрузить файлы в «/» 2024-12-30 22:57:49 +04:00
rvip_6.sln Загрузить файлы в «/» 2024-12-30 22:57:49 +04:00

Задание: Реализовать нахождение детерминанта квадратной матрицы. В лабораторной работе требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 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

Заключение: Рекурсивный алгоритм вычисления детерминанта является не самым эффективным для больших матриц, поэтому на больших размерах вычисление может занимать много времени. В реальных приложениях лучше использовать более эффективные алгоритмы. При увеличении размеров матрицы и количества потоков, могут возникнуть ошибки из-за переполнения стека.