forked from Alexey/DAS_2024_1
.. | ||
.idea | ||
images | ||
Benchmark.java | ||
Main.java | ||
MatrixGenerator.java | ||
MatrixMultiplication.java | ||
MatrixPrinter.java | ||
Readme.md |
Перемножение матриц
Данная работа посвящена реализации и сравнению последовательного и параллельного алгоритмов умножения квадратных матриц на языке Java. Целью является оценка производительности при использовании разного числа потоков.
Функциональность:
- Генерация матриц: Класс MatrixGenerator генерирует матрицы заданного размера с случайными значениями.
- Умножение матриц: Класс MatrixMultiplication реализует метод multiply, который в зависимости от числа потоков выполняет либо последовательное, либо параллельное умножение.
- Последовательное умножение выполняется с использованием одного потока.
- Параллельное умножение использует ExecutorService для распределения строк между потоками.
- Бенчмаркинг: Класс Benchmark измеряет время выполнения для матриц размером 100x100, 300x300, и 500x500 при использовании 1, 2, 4 и 8 потоков.
- Вывод результата: Класс MatrixPrinter позволяет выводить матрицы и результаты умножения в консоль, с возможностью ограничения отображаемых строк.
Результаты:
В отчете отражены времена выполнения для каждого из подходов, что позволяет оценить, как число потоков влияет на скорость вычислений для матриц разного размера.
Ссылка на видео: https://drive.google.com/file/d/1UD--N4oE9U9fQpLReXtB7G_-XGoD0iOX/view?usp=sharing