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)
|