# Лабораторная работа 5 ## Описание Задание заключается в реализации алгоритмов умножения больших квадратных матриц. Необходимо разработать два алгоритма: последовательный и параллельный. А также провести бенчмарки, а затем описать результаты в отчете. **100x100 матрица**: - **4 потока** — наилучший результат. - **10 потоков** — медленнее на почти в половину. - **6 и 8 потоков** — хуже 4 потоков. - **1 и 2 потока** — значительно медленнее. **300x300 матрица**: - **4 потока** — лучший результат. - **8 потоков** — чуть хуже. - **10 потоков** — медленнее. - **1 и 2 потока** — значительно медленнее. **500x500 матрица**: - **8 потоков** — лучший результат. - **6 и 10 потоков** — немного хуже. - **4 потока** — значительно медленнее. - **1 поток** — самый медленный. **Ссылка на демонстрацию работы программы**: https://vk.com/video215756667_456239455?list=ln-z7zFcpvxLexJd3f8ss **Вывод**: - Если операция сложнее, рост производительности происходит с увеличением числа потоков. - Слишком много потоков увеличивает накладные расходы (например, 10 потоков). Это может быть связано, например, с: 1. **Переключением контекстов**: Когда потоков больше, чем ядер процессора, операционная система часто переключает контексты, что занимает время. 2. **Конкуренцией за ресурсы**: Много потоков конкурируют за ограниченные ресурсы, такие как процессорное время и кэш. 3. **Управлением потоками**: С увеличением числа потоков растёт нагрузка на систему, связанную с их созданием, управлением и завершением.