30 lines
2.4 KiB
Markdown
30 lines
2.4 KiB
Markdown
|
# Лабораторная работа №6 - Определение детерминанта матрицы с помощью параллельных вычислений
|
|||
|
|
|||
|
## Задание
|
|||
|
|
|||
|
* Кратко: реализовать нахождение детерминанта квадратной матрицы. Что такое детерминант матрицы (или определитель) можно посмотреть по ссылке.
|
|||
|
|
|||
|
* Подробно: в лабораторной работе требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание со *), каждый из которых будет выполнять нахождение отдельной группы множителей.
|
|||
|
|
|||
|
|
|||
|
## Работа программы:
|
|||
|
|
|||
|
1. Инициализирует три матрицы размером 100x100, 300x300 и 500x500 со случайными значениями.
|
|||
|
|
|||
|
2. det(matrix) реализует алгоритм Гаусса для нахождения детерминанта квадратной матрицы.
|
|||
|
|
|||
|
3. parallel_det(matrix, num_threads=1) использует пул потоков для ускорения вычислений. Для каждой строки матрицы создается поток, который обрабатывает все строки под ней, применяя необходимые преобразования.
|
|||
|
|
|||
|
|
|||
|
### Результат:
|
|||
|
|
|||
|
![](result.jpg "")
|
|||
|
|
|||
|
### Вывод:
|
|||
|
|
|||
|
Параллельные вычисления способны существенно сократить время вычисления детерминанта для крупных матриц. Однако в некоторых случаях результаты, полученные при использовании параллельных алгоритмов, могут отличаться от тех, что были получены последовательными методами.
|
|||
|
|
|||
|
|
|||
|
# Видео
|
|||
|
https://disk.yandex.ru/i/cEJEMPxT7zBv-Q
|