# Отчет по лабораторной работе №5
Выполнила студентка группы ИСЭбд-41 Клементьева Жанна

## Разработка приложения на С# с использованием Windows Forms.

Особенности разработанного приложения:

 1. В данном приложении есть два поля для ввода матриц, которые затем переумножаются, и одно поле-результат. 

 2. Матрицы можно сгенерировать внутри программы.

 3. Размер матрицы также можно регулировать в поле "размер матрицы". 

 4. При необходимости можно очистить все матрицы. 

 5. Также есть флажок выключения вывода значений матриц в текстовые поля, т.к. это занимает слишком много времени.

 6. Количество потоков в параллельном алгоритме регулируется в соответствующем поле. 



Таким образом выглядит форма приложения: 
![](pic/1.png)


При выборе обычного алгоритма:
![](pic/2о.png)


При выборе параллельного алгоритма:
![](pic/2параллельный.png)

Время выполнения обычного алгоритма: 00:00:00.0004469

Время выполнения параллельного алгоритма: 00:00:00.0176337

## Бенчмарки

Далее по заданию необходимо было протестировать два алгоритма с матрицами размеров 100х100, 300х300 и 500х500.
Сверху отображен результат обычного алгоритма, снизу паралелльного.

Матрицы 100х100 (приложены в .txt форматах):

Обычный алгоритм:

![](pic/об100100.png)

Параллельный алгоритм: 
![](pic/пар100100.png)

Матрицы 300х300(приложены в .txt форматах):

Обычный алгоритм:

![](pic/об300300.png)

Параллельный алгоритм:

![](pic/пар300300.png)

Матрицы 500х500(приложены в .txt форматах):

Обычный алгоритм:

![](pic/500500об.png)

Параллельный алгоритм:

![](pic/500500пар.png)

Заключение: параллельный алгоритм работает быстрее, если данных больше. Если элементов немного, то обычный алгоритм справляется быстрее.