DAS_2024_1/fadeeva_nastya_lab_5/README.md
2024-12-15 01:24:02 +04:00

2.7 KiB
Raw Blame History

Лабораторная работа №5 - Параллельное умножение матриц

Задание

Требуется реализовать умножение двух больших квадратных матриц. Надо сделать два алгоритма: обычный и параллельный. В параллельном алгоритме предусмотреть ручное задание количества потоков, каждый из которых будет выполнять умножение элементов матрицы в рамках своей зоны ответственности.

Описание работы

Функция benchmark выполняет бенчмарк для матриц заданного размера.

Генерируются две матрицы matrix1 и matrix2 заданного размера.

После вызываются соответствующие методы для вычисления произведения матриц:

  • multiply_matrices - для обычного умножения
  • multiply_matrices_parallel - для параллельного умножения

Прописываем бенчмарк (benchmark) для сравнения производительности, где генерируется две случайные матрицы заданного размера с помощью random и измеряется время выполнения каждого из методов с использованием функции time.time(). Функция benchmark вызывается трижды с различными размерами матриц (100x100, 300x300 и 500x500).

Результат работы программы

Вывод

Параллельный подход может быть более эффективным, чем последовательный, при работе с большими матрицами, поскольку он позволяет выполнять операции параллельно. Это имеет смысл использовать при работе с крупными матрицами, где выигрыш от параллельных вычислений компенсирует затраты на управление потоками. Однако для небольших матриц может быть более эффективным использовать обычное выполнение.

Видеозапись работы програмы

https://vkvideo.ru/video186826232_456239556