From d24d5be799bc3b10415414f5675a84bd6154d6e8 Mon Sep 17 00:00:00 2001 From: Inohara Date: Fri, 8 Nov 2024 14:45:23 +0400 Subject: [PATCH] done --- tsukanova_irina_lab_6/README.md | 21 +++++++++++++++++++++ tsukanova_irina_lab_6/img.png | Bin 0 -> 27920 bytes tsukanova_irina_lab_6/main.py | 12 ++---------- 3 files changed, 23 insertions(+), 10 deletions(-) create mode 100644 tsukanova_irina_lab_6/README.md create mode 100644 tsukanova_irina_lab_6/img.png diff --git a/tsukanova_irina_lab_6/README.md b/tsukanova_irina_lab_6/README.md new file mode 100644 index 0000000..c8f5cca --- /dev/null +++ b/tsukanova_irina_lab_6/README.md @@ -0,0 +1,21 @@ +# Цуканова Ирина ПИбд-42 +# Лабораторная работа №6 - Определение детерминанта матрицы + + +## Результат: +![results](./img.png) + +## Выводы: + +1. Увеличение числа потоков ускоряет вычисление детерминанта для больших матриц. +Как видно по результатам для матрицы 11 × 11 при использовании 1 потока время составляет 260 секунд, +тогда как при 10 потоках оно сокращается до 62 секунд. +2. Производительность снижается при увеличении числа потоков на малых матрицах. +Для матрицы 8×8 использование 10 потоков оказывается медленнее, чем использование 4 или 8 потоков. +Это связано с накладными расходами на создание и управление потоками, которые становятся ощутимыми при малых объемах вычислений. +3. Подход с многопоточностью эффективно снижает время выполнения для больших матриц, +однако оптимальное количество потоков следует выбирать в зависимости от размера задачи, +чтобы избежать накладных расходов и добиться наилучших результатов. + + +## [Видео](https://drive.google.com/file/d/1tVVQwmh3W9HEEn6WrqEEiB9n-cEI8aGW/view?usp=sharing) \ No newline at end of file diff --git a/tsukanova_irina_lab_6/img.png b/tsukanova_irina_lab_6/img.png new file mode 100644 index 0000000000000000000000000000000000000000..98f1fde9843fb237cb1c3288802e115ff06c42d1 GIT binary patch literal 27920 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