DAS_2024_1/emelyanov_artem_lab_5/Readme.md

2.3 KiB
Raw Blame History

Перемножение матриц

Данная работа посвящена реализации и сравнению последовательного и параллельного алгоритмов умножения квадратных матриц на языке Java. Целью является оценка производительности при использовании разного числа потоков.

Функциональность:

  • Генерация матриц: Класс MatrixGenerator генерирует матрицы заданного размера с случайными значениями.
  • Умножение матриц: Класс MatrixMultiplication реализует метод multiply, который в зависимости от числа потоков выполняет либо последовательное, либо параллельное умножение.
  • Последовательное умножение выполняется с использованием одного потока.
  • Параллельное умножение использует ExecutorService для распределения строк между потоками.
  • Бенчмаркинг: Класс Benchmark измеряет время выполнения для матриц размером 100x100, 300x300, и 500x500 при использовании 1, 2, 4 и 8 потоков.
  • Вывод результата: Класс MatrixPrinter позволяет выводить матрицы и результаты умножения в консоль, с возможностью ограничения отображаемых строк.

Результаты:

В отчете отражены времена выполнения для каждого из подходов, что позволяет оценить, как число потоков влияет на скорость вычислений для матриц разного размера.

Снимок экрана от 2024-10-18 17-34-36.png

Ссылка на видео: https://drive.google.com/file/d/1UD--N4oE9U9fQpLReXtB7G_-XGoD0iOX/view?usp=sharing