DAS_2023_1/senkin_alexander_lab_6/README.md

30 lines
3.3 KiB
Markdown
Raw 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.

# Лабораторная работа №6 - Определение детерминанта матрицы с помощью параллельных вычислений
Цель: реализовать нахождение детерминанта квадратной матрицы.
Задача: в лабораторной работе требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание со *), каждый из которых будет выполнять нахождение отдельной группы множителей.
# Разработка приложения
Было решено производить разработку приложения на языке Go, так как на нем удобно реализован механизм паралеллизма.
В рамках одного main файла реализованы две функции - параллельного и последовательного нахождения детерминанта матриц. Также реализована функция по запуску этих функций, и функция создания случайной матрицы.
![img.png](img.png)
# Запуск
Запуск программы производится с помощью команды в командной строке go run {путь до исполняемого main.go файла}
# Работа программы
- Создание случайной матрицы: ![img_1.png](img_1.png)
- Метод для последовательного определения детерминанта матриц: ![img_2.png](img_2.png)
- Метод параллельного определения детерминанта матриц: ![img_3.png](img_3.png) ![img_4.png](img_4.png)
- Метод запуска тестов: ![img_5.png](img_5.png)
- Главный метод запуска программы main: ![img_6.png](img_6.png)
- Вывод на консоль и анализ результатов: ![img_7.png](img_7.png)
- Из-за выбранного мною метода поиска определения детерминанта - разложение по срокам, то при рассчитвании матриц больше размера 12x12 просиходит вылетание программы, то я провел тесты с размерами матриц 6x6, 8x8, 10x10. По результатам видим, что на Go параллельное определения детерминанта матриц проигрывает последовательному методу независимо от количества потоков, возможно это из-за не самого эффективного метода поиска определителя.
# Видео
Видео с разбором лабораторной работы - https://youtu.be/TdrMlgf1swg