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