From 8f32eec18a96a9e3b0c7b3476a39effc2f3fe743 Mon Sep 17 00:00:00 2001 From: = <=> Date: Tue, 24 Dec 2024 22:19:38 +0400 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B8=D0=B4=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- karamushko_maxim_lab_6/README.md | 17 +++++++++++++++++ karamushko_maxim_lab_6/result.png | Bin 0 -> 19507 bytes 2 files changed, 17 insertions(+) create mode 100644 karamushko_maxim_lab_6/README.md create mode 100644 karamushko_maxim_lab_6/result.png diff --git a/karamushko_maxim_lab_6/README.md b/karamushko_maxim_lab_6/README.md new file mode 100644 index 0000000..3865c65 --- /dev/null +++ b/karamushko_maxim_lab_6/README.md @@ -0,0 +1,17 @@ +# Лабораторная работа №6 - Параллельный поиск значения детерминанта матрицы +## ПИбд-42 || Карашумко Максим + +### Цель лабораторной работы +Изучить приципы работы с параллельными вычислениями и узнать насколько они оправданы в зависимости от объемов вычислений. + +### Описание: +В данной лабораторной работе было реализовано параллельное вычисление определителя матриц различных размеров (9x9, 10x10 и 11x11). Помимо этого были сделаны замеры времени выполнения в зависимости от количества потоков и размеров матриц. + +### Результат: +![Изображение 1](./result.png) + +### Выводы: +Как можно заметить, параллельное вычисление определителя позволило сократить временные затраты более чем в два раза для больших матриц (с 245 до 99 секунд). Однако стоит отметить, что также важен выбор оптимального количества потоков, так как на менеджмент потоков тоже приходится тратить ресурсы. + +### Видео с демонстрацией работы: +https://disk.yandex.ru/i/iIxS9W4FIoU8Gw \ No newline at end of file diff --git a/karamushko_maxim_lab_6/result.png b/karamushko_maxim_lab_6/result.png new file mode 100644 index 0000000000000000000000000000000000000000..7e6da93c145631e3aed529f36c5250cb65653efc GIT binary patch literal 19507 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 U%^MD^UEs{gb0^A=`TX|30E4HNJ^%m! literal 0 HcmV?d00001