17 lines
2.3 KiB
Markdown
17 lines
2.3 KiB
Markdown
|
# Перемножение матриц
|
|||
|
|
|||
|
Данная работа посвящена реализации и сравнению последовательного и параллельного алгоритмов умножения квадратных матриц на языке Java. Целью является оценка производительности при использовании разного числа потоков.
|
|||
|
|
|||
|
## Функциональность:
|
|||
|
- Генерация матриц: Класс MatrixGenerator генерирует матрицы заданного размера с случайными значениями.
|
|||
|
- Умножение матриц: Класс MatrixMultiplication реализует метод multiply, который в зависимости от числа потоков выполняет либо последовательное, либо параллельное умножение.
|
|||
|
- Последовательное умножение выполняется с использованием одного потока.
|
|||
|
- Параллельное умножение использует ExecutorService для распределения строк между потоками.
|
|||
|
- Бенчмаркинг: Класс Benchmark измеряет время выполнения для матриц размером 100x100, 300x300, и 500x500 при использовании 1, 2, 4 и 8 потоков.
|
|||
|
- Вывод результата: Класс MatrixPrinter позволяет выводить матрицы и результаты умножения в консоль, с возможностью ограничения отображаемых строк.
|
|||
|
## Результаты:
|
|||
|
В отчете отражены времена выполнения для каждого из подходов, что позволяет оценить, как число потоков влияет на скорость вычислений для матриц разного размера.
|
|||
|
|
|||
|
![Снимок экрана от 2024-10-18 17-34-36.png](images/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%20%D0%BE%D1%82%202024-10-18%2017-34-36.png)
|
|||
|
|
|||
|
Ссылка на видео: https://drive.google.com/file/d/1UD--N4oE9U9fQpLReXtB7G_-XGoD0iOX/view?usp=sharing
|