forked from Alexey/DAS_2024_1
34 lines
3.5 KiB
Markdown
34 lines
3.5 KiB
Markdown
|
# Лабораторная работа №2
|
|||
|
#### ПИбд-42. Мочалов Данила.
|
|||
|
|
|||
|
#### Выполнение
|
|||
|
Были реализованы два алгоритма для перемножения матриц: обычный и паралелльный. Параллельный алгоритм использует multiprocessing.Pool для разделения вычислений между несколькими процессами.
|
|||
|
|
|||
|
#### Результаты бенчмарков:
|
|||
|
|
|||
|
Были проведены тесты для матриц размером 100x100, 300x300 и 500x500 элементов с разным количеством процессов (1, 5, 10). Результаты представлены в таблице:
|
|||
|
|
|||
|
| Размер матрицы | Алгоритм | Кол-во процессов |Время (сек.)|
|
|||
|
|----------------|------------|------------------|------------|
|
|||
|
| 100x100 |Обычный |- |0.21 |
|
|||
|
| 100x100 |Параллельный|1 |0.59 |
|
|||
|
| 100x100 |Параллельный|5 |0.34 |
|
|||
|
| 100x100 |Параллельный|10 |0.32 |
|
|||
|
| 300x300 |Обычный |- |6.59 |
|
|||
|
| 300x300 |Параллельный|1 |7.03 |
|
|||
|
| 300x300 |Параллельный|5 |2.00 |
|
|||
|
| 300x300 |Параллельный|10 |1.54 |
|
|||
|
| 500x500 |Обычный |- |29.81 |
|
|||
|
| 500x500 |Параллельный|1 |33.83 |
|
|||
|
| 500x500 |Параллельный|5 |8.57 |
|
|||
|
| 500x500 |Параллельный|10 |5.67 |
|
|||
|
---------------------------------------------------------------
|
|||
|
#### Анализ
|
|||
|
- Для маленьких матриц (100x100) параллельный алгоритм с одним процессом работает медленнее последовательного. Это связано с накладными расходами на создание и управление процессом, которые превышают выигрыш от параллелизма.
|
|||
|
|
|||
|
- С увеличением размера матрицы эффективность параллельного алгоритма возрастает. Для матриц 300x300 и 500x500 наблюдается значительное ускорение по сравнению с последовательным алгоритмом.
|
|||
|
|
|||
|
- Количество процессов, обеспечивающее максимальное ускорение, зависит от размера матрицы и аппаратных возможностей системы. В данном случае, для матрицы 300x300 использование 10 процессов дает лучший результат, а для 500x500 - тоже 10. Дальнейшее увеличение количества процессов может привести к снижению производительности из-за увеличения накладных расходов на межпроцессное взаимодействие.
|
|||
|
|
|||
|
#### Демонстрация
|
|||
|
[Доступна по ссылке](https://drive.google.com/file/d/1GxPw9syJVnxb65zP6uQVNYyLjZ-HrfOo/view?usp=sharing)
|