DAS_2024_1/afanasev_dmitry_lab_6
2024-12-03 01:05:19 +04:00
..
FastDeterminantCalculator.java afanasev_dmitry_lab_6 is ready 2024-12-03 01:05:19 +04:00
README.md afanasev_dmitry_lab_6 is ready 2024-12-03 01:05:19 +04:00

Лабораторная работа 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. Управлением потоками: С увеличением числа потоков растёт нагрузка на систему, связанную с их созданием, управлением и завершением.