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