DAS_2023_1/mashkova_margarita_lab_5/README.md

27 lines
2.4 KiB
Markdown
Raw Normal View History

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