DAS_2023_1/mashkova_margarita_lab_5
2024-01-10 05:43:46 +04:00
..
src mashkova_margarita_lab_5 some fix 2024-01-10 05:43:46 +04:00
console.png mashkova_margarita_lab_5 some fix 2024-01-10 05:43:46 +04:00
README.md mashkova_margarita_lab_5 some fix 2024-01-10 05:43:46 +04:00

Лабораторная работа №3

ПИбд-42 Машкова Маргарита

Задание

Требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание со *), каждый из которых будет выполнять умножение элементов матрицы в рамках своей зоны ответственности.

Запуск программы

Запустить файл Main

Описание работы программы

В методе main вызывается метод run, для которого в качестве параметра передается размер квадратной матрицы n. Создается пул потоков executorService с использованием Executors.newFixedThreadPool, где количество потоков равно количеству доступных процессоров. Генирируются две матрицы a и b заданного размера n. Вызываются соответсвующие методы вычисления произведения матриц и измеряется время. Результаты выполнения выводятся в консоль.

Тесты

Вывод в консоли

Выводы

По оценки времени выполнения можно сделать вывод, что параллельный алгоритм позволяет ускорять процесс на больших размерах матриц. Для маленьких матриц лучше использовать обычный алгоритм. Для размера матрицы 100*100 быстрее выполнился обычный алгоритм. При последующем увеличении размера матрицы параллельный алгоритм позволяет ускорить вычислительный процесс.

Ссылка на видео: https://youtu.be/Vy6kO2mA8Fs