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 0000000..98f1fde Binary files /dev/null and b/tsukanova_irina_lab_6/img.png differ diff --git a/tsukanova_irina_lab_6/main.py b/tsukanova_irina_lab_6/main.py index 0c4a893..4887218 100644 --- a/tsukanova_irina_lab_6/main.py +++ b/tsukanova_irina_lab_6/main.py @@ -19,7 +19,6 @@ def do_task(matrix, start_j, stop_j, queue): res += a * b else: res += a * b * (-1) - # print(res) if queue: queue.put(res) return res @@ -50,16 +49,9 @@ def do_threads(matrix, size, threads): print(f'{size}x{size}, time: {stop_test - start_test}') -matrix2 = np.array([ - [3, -3, -5, 8], - [-3, 2, 4, -6], - [2, -5, -7, 6], - [-4, 3, 5, -6] -]) - if __name__ == '__main__': - sizes = [5, 6, 7, 8, 9, 10, 11, 12] - threads_counts = [1, 4, 6, 8, 12] + sizes = [8, 9, 10, 11] + threads_counts = [1, 4, 6, 8, 10] for threads in threads_counts: print('-------------------------------------------------')