DAS_2024_1/dozorova_alena_lab_5
2024-10-16 14:31:12 +04:00
..
ConsoleApp1 dozorova_alena_lab_5 2024-10-08 22:46:32 +04:00
.gitignore Merge branch 'main' into dozorova_alena_lab_5 2024-10-16 14:31:12 +04:00
image-1.png dozorova_alena_lab_5 2024-10-08 22:46:32 +04:00
image.png dozorova_alena_lab_5 2024-10-08 22:46:32 +04:00
README.md dozorova_alena_lab_5 2024-10-08 22:46:32 +04:00

Лабораторная работа 5

В рамках этой работы проверяется скорость расчета умножения двух матриц в некоторое количество потоков

Описание

Основной принцип умножения матриц: строки умножаются на столбцы, таким образом получаются элементы. Для распараллеливания этого процесса вычисление некоторых объектов матрицы выносят в отдельные потоки, которые работают параллельно

Запуск

Для проверки гипотезы и реализации параллельного умножения в консоли на языке c# был реализован тестовый контур: для каждого вида матриц (100100, 300300 и 500*500) запускался процесс вычисления произведения в количестве потоков от 1 до 5 с использованием SsemaphoreSlim, который контролировал выполнение в заданном количестве потоков. Для каждого вычисления засекалось время в миллисекундах.

Результаты

Что мы получили
Результаты вычислений 1
Результаты спорные, так как при повышении количества потоков нельзя сказать, что повышается скорость вычислений. Это связано с тем, что работа с потоками сама по сбе требует ресурсов и времени. Повысим количестов потоков до 10:
Результаты вычислений 2
Для небольшой матрицы видна разница в сравнении с прошлым результатом, но не так сильно, как для больших. Повышение количества потоков позволило существенно сократить время вычислений

Видеодемонстрация

Видедемонстрация по адресу