DAS_2023_1/mashkova_margarita_lab_5/README.md

27 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа №3
## ПИбд-42 Машкова Маргарита
## Задание
Требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма).
В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание
со *), каждый из которых будет выполнять умножение элементов матрицы в рамках своей зоны ответственности.
## Запуск программы
Запустить файл `Main`
## Описание работы программы
В методе `main` вызывается метод `run`, для которого в качестве параметра передается размер квадратной матрицы `n`.
Создается пул потоков `executorService` с использованием `Executors.newFixedThreadPool`, где количество потоков равно
количеству доступных процессоров.
Генирируются две матрицы `a` и `b` заданного размера `n`. Вызываются соответсвующие методы вычисления произведения матриц
и измеряется время. Результаты выполнения выводятся в консоль.
## Тесты
![Вывод в консоли](console.png)
### Выводы
По оценки времени выполнения можно сделать вывод, что параллельный алгоритм позволяет ускорять процесс на больших размерах
матриц. Для маленьких матриц лучше использовать обычный алгоритм. Для размера матрицы 100*100 быстрее выполнился обычный
алгоритм. При последующем увеличении размера матрицы параллельный алгоритм позволяет ускорить вычислительный процесс.
Ссылка на видео:
https://youtu.be/Vy6kO2mA8Fs