Выполнил: Студент группы 6214-100503D ФИ Иванов Влад
Модифицировать программу умножения матриц для параллельной работы по технологии OpenMP и исследовать зависимость времени выполнения от количества потоков и размера матриц.
Модифицировать программу из л/р №1 для параллельной работы по технологии OpenMP. Провести серию экспериментов с:
- Разным количеством потоков (1, 2, 4, 8 и т.д.)
- Разными размерами матриц (примерно 200, 400, 800, 1200, 1600, 2000)
- Разным количеством вычислительных ядер (1, 2, 4, 8 и т.д.)
Была модифицирована часть умножения матриц по технологии OpenMP. Была добавлена часть для проведения исследования с разным количеством потоков.
Результаты исследования сохранены в файлах:
result_statistic- исходные данные статистики- Графики визуализации:
res_100,res_200,res_500,res_1000,res_2000
1. Маленькие матрицы (размер 100-200):
- Время выполнения: 0.004-0.0680 секунды
- Наблюдается незначительное ускорение или его отсутствие
- Для таких размеров матриц параллелизация неэффективна
2. Средние матрицы (размер 500-1000):
- Время выполнения уменьшается с увеличением числа потоков
- Ускорение: примерно в 2-2.5 раза
- Наблюдается хороший прирост производительности при увеличении числа потоков до 4-8
3. Большие матрицы (размер 2000):
- Время выполнения: 72 секунды (2 потока) → 23 секунды (12 потоков)
- Ускорение: в 2-3.5 раза
- Наилучшая эффективность параллелизации
- Малые размеры матриц (≤200): Параллелизация неэффективна или даже вредна. Накладные расходы на создание и синхронизацию потоков превышают выигрыш от параллельных вычислений.
- Средние размеры (500-1000): Наблюдается умеренное ускорение (в 2-2.5 раза). Параллелизация начинает окупаться.
- Большие размеры (≥2000): Достигается наилучшее ускорение (до 3.5 раз). Параллелизация высокоэффективна.




