forked from Alexey/DAS_2024_1
26 lines
2.6 KiB
Markdown
26 lines
2.6 KiB
Markdown
|
# Отчет. Лабораторная работа 6
|
|||
|
|
|||
|
## Описание
|
|||
|
В рамках лабораторной работы была реализована программа, которая производит вычисление детерминанта матрицы
|
|||
|
с применением последовательного и паралелльного алгоритма.
|
|||
|
|
|||
|
В качестве способа нахождения определителя матрицы был выбран алгоритм нахождения путем разложения по столбцу (строке).
|
|||
|
При данном подходе определитель находится как сумма произведений элементов выбранной строки на их алгебраические дополнения.
|
|||
|
Была произведена небольшая оптимизация алгоритма - выбор строки для разложения основывался на количестве нулевых элементов в ней.
|
|||
|
Чем больше нулей в строке - тем меньше будет выполняться подзадач в алгоритме.
|
|||
|
|
|||
|
Результаты представлены на следующих изображениях:
|
|||
|
|
|||
|
![results](images/results.PNG)
|
|||
|
|
|||
|
Как мы можем увидеть, производительность паралелльной реализации на маленьких матрицах ниже, чем у последовательного подхода,
|
|||
|
это связано с дополнительными действиями по созданию и управлению потоками. Однако с увеличением размера матриц мы можем
|
|||
|
наблюдать увеличение производительности. Но на больших размерах (от 12х12) матриц алгоритм становится довольно медленным
|
|||
|
вне зависимости от применения многопоточности.
|
|||
|
|
|||
|
## Как запустить
|
|||
|
Необходимо иметь установленную JDK 21. Можно воспользоваться встроенным в нее компилятором (javac), а затем запустить исполняемый файл (java)
|
|||
|
или запускать из среды разработки.
|
|||
|
|
|||
|
## Видео-отчет
|
|||
|
Работоспособность лабораторной работы можно оценить в следующем [видео](https://disk.yandex.ru/i/-sWDKdW3Q-vbHg).
|