# Лабораторная работа №5 ПИбд-42 Артамоновой Татьяны ## Запуск лабораторной работы 1. Установить библиотеки Python и NumPy 3. Запустить скрипт matrix.py с помощью команды: *python matrix.py* ## Используемые технологии - Язык программирования: Python - Библиотеки: * numpy: Для работы с массивами и матрицами * multiprocessing: Для параллельного выполнения кода * time: Для измерения времени выполнения ## Задание на лабораторную работу **Кратко:** реализовать умножение двух больших квадратных матриц. **Подробно:** в лабораторной работе требуется сделать два алгоритма: обычный и параллельный (задание со * - реализовать это в рамках одного алгоритма). В параллельном алгоритме предусмотреть ручное задание количества потоков (число потоков = 1 как раз и реализует задание со *), каждый из которых будет выполнять умножение элементов матрицы в рамках своей зоны ответственности. ## Результаты ![Результат работы](images/results.png) ## Вывод Результаты показывают, что для маленьких матриц последовательное умножение быстрее. Оптимальное количество потоков близко к количеству ядер процессора. Увеличение количества потоков сверх оптимального значения не всегда ускоряет вычисления. Параллелизм эффективнее для больших матриц. ### [Видео](https://vk.com/video212084908_456239362)