diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/DesignTimeBuild/.dtbcache.v2 b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/DesignTimeBuild/.dtbcache.v2
new file mode 100644
index 0000000..6ff3a68
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/DesignTimeBuild/.dtbcache.v2 differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/FileContentIndex/5a5ee08d-b143-4a9c-a419-b66966e579c0.vsidx b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/FileContentIndex/5a5ee08d-b143-4a9c-a419-b66966e579c0.vsidx
new file mode 100644
index 0000000..1f0d838
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/FileContentIndex/5a5ee08d-b143-4a9c-a419-b66966e579c0.vsidx differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/FileContentIndex/8e0ba479-e194-41b8-a3b3-1a755ceffbd7.vsidx b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/FileContentIndex/8e0ba479-e194-41b8-a3b3-1a755ceffbd7.vsidx
new file mode 100644
index 0000000..c0a62fc
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/FileContentIndex/8e0ba479-e194-41b8-a3b3-1a755ceffbd7.vsidx differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/v17/.futdcache.v2 b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/v17/.futdcache.v2
new file mode 100644
index 0000000..1b6bb97
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/v17/.futdcache.v2 differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/v17/.suo b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/v17/.suo
new file mode 100644
index 0000000..d42eb7d
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/MatrixMultiplication/v17/.suo differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/ProjectEvaluation/matrixmultiplication.metadata.v7.bin b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/ProjectEvaluation/matrixmultiplication.metadata.v7.bin
new file mode 100644
index 0000000..246e9be
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/ProjectEvaluation/matrixmultiplication.metadata.v7.bin differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/ProjectEvaluation/matrixmultiplication.projects.v7.bin b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/ProjectEvaluation/matrixmultiplication.projects.v7.bin
new file mode 100644
index 0000000..cb48c5c
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/.vs/ProjectEvaluation/matrixmultiplication.projects.v7.bin differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication.sln b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication.sln
new file mode 100644
index 0000000..938a3f6
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.8.34330.188
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatrixMultiplication", "MatrixMultiplication\MatrixMultiplication.csproj", "{133AAF5F-5559-4289-AF92-D6F78F952774}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {133AAF5F-5559-4289-AF92-D6F78F952774}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {133AAF5F-5559-4289-AF92-D6F78F952774}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {133AAF5F-5559-4289-AF92-D6F78F952774}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {133AAF5F-5559-4289-AF92-D6F78F952774}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {41DCCA96-3173-4B1F-895C-1ABE37B2B606}
+ EndGlobalSection
+EndGlobal
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/MatrixMultiplication.csproj b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/MatrixMultiplication.csproj
new file mode 100644
index 0000000..ffe4e8b
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/MatrixMultiplication.csproj
@@ -0,0 +1,14 @@
+
+
+
+ Exe
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/Program.cs b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/Program.cs
new file mode 100644
index 0000000..80aab69
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/Program.cs
@@ -0,0 +1,243 @@
+using System.Diagnostics;
+using MathNet.Numerics.LinearAlgebra;
+
+class Program
+{
+ static void Main()
+ {
+ Console.WriteLine("Введите количество потоков:");
+ string input = Console.ReadLine();
+
+
+ if (!int.TryParse(input, out int threadCount))
+ {
+ Console.WriteLine("Введено некорректное значение, будет использовано значение по умолчанию: 4");
+ threadCount = 4;
+ }
+
+ // Генерация матриц
+ int[,] matrixA100 = GenerateMatrix(100, 100);
+ int[,] matrixB100 = GenerateMatrix(100, 100);
+
+ int[,] matrixA300 = GenerateMatrix(300, 300);
+ int[,] matrixB300 = GenerateMatrix(300, 300);
+
+ int[,] matrixA500 = GenerateMatrix(500, 500);
+ int[,] matrixB500 = GenerateMatrix(500, 500);
+
+ // Счетчики для расчета среднего
+ long totalTimeSeq100 = 0, totalTimePar100 = 0;
+ long totalTimeSeq300 = 0, totalTimePar300 = 0;
+ long totalTimeSeq500 = 0, totalTimePar500 = 0;
+ long totalMemorySeq100 = 0, totalMemoryPar100 = 0;
+ long totalMemorySeq300 = 0, totalMemoryPar300 = 0;
+ long totalMemorySeq500 = 0, totalMemoryPar500 = 0;
+
+ int iterations = 10;
+
+ for (int i = 0; i < iterations; i++)
+ {
+ Console.WriteLine($"Прогон #{i + 1}:\n");
+
+ // 100x100
+ var (timeSeq100, memSeq100, timePar100, memPar100) = TestMatrixOperation(matrixA100, matrixB100, threadCount);
+ totalTimeSeq100 += timeSeq100;
+ totalTimePar100 += timePar100;
+ totalMemorySeq100 += memSeq100;
+ totalMemoryPar100 += memPar100;
+
+ // 300x300
+ var (timeSeq300, memSeq300, timePar300, memPar300) = TestMatrixOperation(matrixA300, matrixB300, threadCount);
+ totalTimeSeq300 += timeSeq300;
+ totalTimePar300 += timePar300;
+ totalMemorySeq300 += memSeq300;
+ totalMemoryPar300 += memPar300;
+
+ // 500x500
+ var (timeSeq500, memSeq500, timePar500, memPar500) = TestMatrixOperation(matrixA500, matrixB500, threadCount);
+ totalTimeSeq500 += timeSeq500;
+ totalTimePar500 += timePar500;
+ totalMemorySeq500 += memSeq500;
+ totalMemoryPar500 += memPar500;
+ }
+
+ // Вывод средних значений
+ Console.WriteLine($"\nСреднее время (мс) и расход памяти (байт) для последовательного и параллельного умножения матриц:");
+
+ Console.WriteLine($"100x100: Последовательно: Время: {totalTimeSeq100 / iterations} мс, Память: {totalMemorySeq100 / iterations} байт");
+ Console.WriteLine($"100x100: Параллельно: Время: {totalTimePar100 / iterations} мс, Память: {totalMemoryPar100 / iterations} байт");
+
+ Console.WriteLine($"300x300: Последовательно: Время: {totalTimeSeq300 / iterations} мс, Память: {totalMemorySeq300 / iterations} байт");
+ Console.WriteLine($"300x300: Параллельно: Время: {totalTimePar300 / iterations} мс, Память: {totalMemoryPar300 / iterations} байт");
+
+ Console.WriteLine($"500x500: Последовательно: Время: {totalTimeSeq500 / iterations} мс, Память: {totalMemorySeq500 / iterations} байт");
+ Console.WriteLine($"500x500: Параллельно: Время: {totalTimePar500 / iterations} мс, Память: {totalMemoryPar500 / iterations} байт");
+ }
+
+ ///
+ /// Генерация матрицы
+ ///
+ ///
+ ///
+ ///
+ static int[,] GenerateMatrix(int rows, int cols)
+ {
+ var random = new Random();
+ int[,] matrix = new int[rows, cols];
+
+ for (int i = 0; i < rows; i++)
+ {
+ for (int j = 0; j < cols; j++)
+ {
+ matrix[i, j] = random.Next(100); //Гененрируем значение матриц до 100
+ }
+ }
+
+ return matrix;
+ }
+
+ ///
+ /// Последовательная обработка матрицы
+ ///
+ ///
+ ///
+ ///
+ static int[,] MultiplyMatricesSequential(int[,] a, int[,] b)
+ {
+ int aRows = a.GetLength(0);
+ int aCols = a.GetLength(1);
+ int bCols = b.GetLength(1);
+ var result = new int[aRows, bCols];
+
+ for (int i = 0; i < aRows; i++)
+ {
+ for (int j = 0; j < bCols; j++)
+ {
+ for (int k = 0; k < aCols; k++)
+ {
+ result[i, j] += a[i, k] * b[k, j];
+ }
+ }
+ }
+
+ return result;
+ }
+
+ ///
+ /// Параллельный обработка матрицы
+ ///
+ ///
+ ///
+ ///
+ ///
+ static int[,] MultiplyMatricesParallel(int[,] a, int[,] b, int threadCount)
+ {
+ int aRows = a.GetLength(0);
+ int bCols = b.GetLength(1);
+ var result = new int[aRows, bCols];
+
+ Parallel.For(0, aRows, new ParallelOptions { MaxDegreeOfParallelism = threadCount }, i =>
+ {
+ for (int j = 0; j < bCols; j++)
+ {
+ int sum = 0;
+ for (int k = 0; k < a.GetLength(1); k++)
+ {
+ sum += a[i, k] * b[k, j];
+ }
+ result[i, j] = sum;
+ }
+ });
+
+ return result;
+ }
+
+ static void PrintMatrix(int[,] matrix)
+ {
+ int rows = matrix.GetLength(0);
+ int cols = matrix.GetLength(1);
+
+ for (int i = 0; i < rows; i++)
+ {
+ for (int j = 0; j < cols; j++)
+ {
+ Console.Write(matrix[i, j] + "\t");
+ }
+ Console.WriteLine();
+ }
+ }
+
+ ///
+ /// Проверка матриц на совместимость к умножениям
+ ///
+ ///
+ ///
+ ///
+ static bool CanMultiplyMatrices(int[,] a, int[,] b)
+ {
+ return a.GetLength(1) == b.GetLength(0);
+ }
+
+
+ ///
+ /// Для проверки корректного расчета умножения матриц
+ ///
+ ///
+ ///
+ static Matrix ConvertToMathNetMatrix(int[,] matrix)
+ {
+ int rows = matrix.GetLength(0);
+ int cols = matrix.GetLength(1);
+ var result = Matrix.Build.Dense(rows, cols);
+
+ for (int i = 0; i < rows; i++)
+ {
+ for (int j = 0; j < cols; j++)
+ {
+ result[i, j] = matrix[i, j];
+ }
+ }
+
+ return result;
+ }
+
+ ///
+ /// Подсчет времени и потребляемой памяти, высчитывание точного времени
+ ///
+ ///
+ ///
+ ///
+ ///
+ static (long, long, long, long) TestMatrixOperation(int[,] a, int[,] b, int threadCount)
+ {
+ if (!CanMultiplyMatrices(a, b))
+ {
+ Console.WriteLine("Матрицы несовместимы для умножения.");
+ return (0, 0, 0, 0);
+ }
+
+ Stopwatch stopwatch = new();
+
+ // Последовательное умножение
+ long memoryBeforeSeq = GC.GetTotalMemory(true);
+ stopwatch.Start();
+ var resultSequential = MultiplyMatricesSequential(a, b);
+ stopwatch.Stop();
+ long memoryAfterSeq = GC.GetTotalMemory(true);
+ long timeSeq = stopwatch.ElapsedMilliseconds;
+ long memoryUsedSeq = memoryAfterSeq - memoryBeforeSeq;
+ Console.WriteLine($"Последовательно: Время: {timeSeq} мс, Память: {memoryUsedSeq} байт");
+
+ // Параллельное умножение
+ long memoryBeforePar = GC.GetTotalMemory(true);
+ stopwatch.Restart();
+ var resultParallel = MultiplyMatricesParallel(a, b, threadCount);
+ stopwatch.Stop();
+ long memoryAfterPar = GC.GetTotalMemory(true);
+ long timePar = stopwatch.ElapsedMilliseconds;
+ long memoryUsedPar = memoryAfterPar - memoryBeforePar;
+ Console.WriteLine($"Параллельно: Время: {timePar} мс, Память: {memoryUsedPar} байт");
+
+ return (timeSeq, memoryUsedSeq, timePar, memoryUsedPar);
+ }
+}
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MathNet.Numerics.dll b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MathNet.Numerics.dll
new file mode 100644
index 0000000..3027abb
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MathNet.Numerics.dll differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.deps.json b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.deps.json
new file mode 100644
index 0000000..34362b9
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.deps.json
@@ -0,0 +1,41 @@
+{
+ "runtimeTarget": {
+ "name": ".NETCoreApp,Version=v8.0",
+ "signature": ""
+ },
+ "compilationOptions": {},
+ "targets": {
+ ".NETCoreApp,Version=v8.0": {
+ "MatrixMultiplication/1.0.0": {
+ "dependencies": {
+ "MathNet.Numerics": "5.0.0"
+ },
+ "runtime": {
+ "MatrixMultiplication.dll": {}
+ }
+ },
+ "MathNet.Numerics/5.0.0": {
+ "runtime": {
+ "lib/net6.0/MathNet.Numerics.dll": {
+ "assemblyVersion": "5.0.0.0",
+ "fileVersion": "5.0.0.0"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "MatrixMultiplication/1.0.0": {
+ "type": "project",
+ "serviceable": false,
+ "sha512": ""
+ },
+ "MathNet.Numerics/5.0.0": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-pg1W2VwaEQMAiTpGK840hZgzavnqjlCMTVSbtVCXVyT+7AX4mc1o89SPv4TBlAjhgCOo9c1Y+jZ5m3ti2YgGgA==",
+ "path": "mathnet.numerics/5.0.0",
+ "hashPath": "mathnet.numerics.5.0.0.nupkg.sha512"
+ }
+ }
+}
\ No newline at end of file
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.dll b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.dll
new file mode 100644
index 0000000..c4accfc
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.dll differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.exe b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.exe
new file mode 100644
index 0000000..da4230b
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.exe differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.pdb b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.pdb
new file mode 100644
index 0000000..1cb1824
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.pdb differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.runtimeconfig.json b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.runtimeconfig.json
new file mode 100644
index 0000000..becfaea
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/bin/Debug/net8.0/MatrixMultiplication.runtimeconfig.json
@@ -0,0 +1,12 @@
+{
+ "runtimeOptions": {
+ "tfm": "net8.0",
+ "framework": {
+ "name": "Microsoft.NETCore.App",
+ "version": "8.0.0"
+ },
+ "configProperties": {
+ "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
+ }
+ }
+}
\ No newline at end of file
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
new file mode 100644
index 0000000..2217181
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs
@@ -0,0 +1,4 @@
+//
+using System;
+using System.Reflection;
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.AssemblyInfo.cs b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.AssemblyInfo.cs
new file mode 100644
index 0000000..39ec8ed
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.AssemblyInfo.cs
@@ -0,0 +1,23 @@
+//------------------------------------------------------------------------------
+//
+// Этот код создан программой.
+// Исполняемая версия:4.0.30319.42000
+//
+// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+// повторной генерации кода.
+//
+//------------------------------------------------------------------------------
+
+using System;
+using System.Reflection;
+
+[assembly: System.Reflection.AssemblyCompanyAttribute("MatrixMultiplication")]
+[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
+[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a346187851ddda07b6b4d0de75645f9c8d61bee4")]
+[assembly: System.Reflection.AssemblyProductAttribute("MatrixMultiplication")]
+[assembly: System.Reflection.AssemblyTitleAttribute("MatrixMultiplication")]
+[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
+
+// Создано классом WriteCodeFragment MSBuild.
+
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.AssemblyInfoInputs.cache b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.AssemblyInfoInputs.cache
new file mode 100644
index 0000000..9c3e18d
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.AssemblyInfoInputs.cache
@@ -0,0 +1 @@
+7a58be475266d06789e6aa68f62ed05f94075de5902763bf6799d85f69fada57
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.GeneratedMSBuildEditorConfig.editorconfig b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.GeneratedMSBuildEditorConfig.editorconfig
new file mode 100644
index 0000000..016e563
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.GeneratedMSBuildEditorConfig.editorconfig
@@ -0,0 +1,13 @@
+is_global = true
+build_property.TargetFramework = net8.0
+build_property.TargetPlatformMinVersion =
+build_property.UsingMicrosoftNETSdkWeb =
+build_property.ProjectTypeGuids =
+build_property.InvariantGlobalization =
+build_property.PlatformNeutralAssembly =
+build_property.EnforceExtendedAnalyzerRules =
+build_property._SupportedPlatformList = Linux,macOS,Windows
+build_property.RootNamespace = MatrixMultiplication
+build_property.ProjectDir = D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\
+build_property.EnableComHosting =
+build_property.EnableGeneratedComInterfaceComImportInterop =
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.GlobalUsings.g.cs b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.GlobalUsings.g.cs
new file mode 100644
index 0000000..8578f3d
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.GlobalUsings.g.cs
@@ -0,0 +1,8 @@
+//
+global using global::System;
+global using global::System.Collections.Generic;
+global using global::System.IO;
+global using global::System.Linq;
+global using global::System.Net.Http;
+global using global::System.Threading;
+global using global::System.Threading.Tasks;
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.assets.cache b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.assets.cache
new file mode 100644
index 0000000..a98ef7f
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.assets.cache differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.AssemblyReference.cache b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..e14c3ce
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.AssemblyReference.cache differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.BuildWithSkipAnalyzers b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.BuildWithSkipAnalyzers
new file mode 100644
index 0000000..e69de29
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.CopyComplete b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.CopyComplete
new file mode 100644
index 0000000..e69de29
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.CoreCompileInputs.cache b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.CoreCompileInputs.cache
new file mode 100644
index 0000000..944725e
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.CoreCompileInputs.cache
@@ -0,0 +1 @@
+55f04003915b62743f4a53a757a6903769d4b603d70342bb5ea26dd830ce01cf
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.FileListAbsolute.txt b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.FileListAbsolute.txt
new file mode 100644
index 0000000..fc99696
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.csproj.FileListAbsolute.txt
@@ -0,0 +1,34 @@
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.GeneratedMSBuildEditorConfig.editorconfig
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.AssemblyInfoInputs.cache
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.AssemblyInfo.cs
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.csproj.CoreCompileInputs.cache
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MatrixMultiplication.exe
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MatrixMultiplication.deps.json
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MatrixMultiplication.runtimeconfig.json
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MatrixMultiplication.dll
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MatrixMultiplication.pdb
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.dll
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\refint\MatrixMultiplication.dll
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.pdb
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.genruntimeconfig.cache
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\ref\MatrixMultiplication.dll
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MathNet.Numerics.dll
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.csproj.AssemblyReference.cache
+C:\Users\73bul\source\repos\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.csproj.CopyComplete
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MatrixMultiplication.exe
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MatrixMultiplication.deps.json
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MatrixMultiplication.runtimeconfig.json
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MatrixMultiplication.dll
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MatrixMultiplication.pdb
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\bin\Debug\net8.0\MathNet.Numerics.dll
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.csproj.AssemblyReference.cache
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.GeneratedMSBuildEditorConfig.editorconfig
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.AssemblyInfoInputs.cache
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.AssemblyInfo.cs
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.csproj.CoreCompileInputs.cache
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.csproj.CopyComplete
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.dll
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\refint\MatrixMultiplication.dll
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.pdb
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\MatrixMultiplication.genruntimeconfig.cache
+D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_5\MatrixMultiplication\MatrixMultiplication\obj\Debug\net8.0\ref\MatrixMultiplication.dll
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.dll b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.dll
new file mode 100644
index 0000000..c4accfc
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.dll differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.genruntimeconfig.cache b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.genruntimeconfig.cache
new file mode 100644
index 0000000..8918cd9
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.genruntimeconfig.cache
@@ -0,0 +1 @@
+1b7b8549cd99557405705f097a819690f07270f8854d5fd1090cfd8a6a5ed9a9
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.pdb b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.pdb
new file mode 100644
index 0000000..1cb1824
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/MatrixMultiplication.pdb differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/apphost.exe b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/apphost.exe
new file mode 100644
index 0000000..da4230b
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/apphost.exe differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/ref/MatrixMultiplication.dll b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/ref/MatrixMultiplication.dll
new file mode 100644
index 0000000..c0a707b
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/ref/MatrixMultiplication.dll differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/refint/MatrixMultiplication.dll b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/refint/MatrixMultiplication.dll
new file mode 100644
index 0000000..c0a707b
Binary files /dev/null and b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/Debug/net8.0/refint/MatrixMultiplication.dll differ
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/MatrixMultiplication.csproj.nuget.dgspec.json b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/MatrixMultiplication.csproj.nuget.dgspec.json
new file mode 100644
index 0000000..f709256
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/MatrixMultiplication.csproj.nuget.dgspec.json
@@ -0,0 +1,69 @@
+{
+ "format": 1,
+ "restore": {
+ "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_5\\MatrixMultiplication\\MatrixMultiplication\\MatrixMultiplication.csproj": {}
+ },
+ "projects": {
+ "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_5\\MatrixMultiplication\\MatrixMultiplication\\MatrixMultiplication.csproj": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_5\\MatrixMultiplication\\MatrixMultiplication\\MatrixMultiplication.csproj",
+ "projectName": "MatrixMultiplication",
+ "projectPath": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_5\\MatrixMultiplication\\MatrixMultiplication\\MatrixMultiplication.csproj",
+ "packagesPath": "C:\\Users\\73bul\\.nuget\\packages\\",
+ "outputPath": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_5\\MatrixMultiplication\\MatrixMultiplication\\obj\\",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "C:\\Users\\73bul\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ }
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "MathNet.Numerics": {
+ "target": "Package",
+ "version": "[5.0.0, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.100/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/MatrixMultiplication.csproj.nuget.g.props b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/MatrixMultiplication.csproj.nuget.g.props
new file mode 100644
index 0000000..849b9bd
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/MatrixMultiplication.csproj.nuget.g.props
@@ -0,0 +1,15 @@
+
+
+
+ True
+ NuGet
+ $(MSBuildThisFileDirectory)project.assets.json
+ $(UserProfile)\.nuget\packages\
+ C:\Users\73bul\.nuget\packages\
+ PackageReference
+ 6.8.0
+
+
+
+
+
\ No newline at end of file
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/MatrixMultiplication.csproj.nuget.g.targets b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/MatrixMultiplication.csproj.nuget.g.targets
new file mode 100644
index 0000000..3dc06ef
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/MatrixMultiplication.csproj.nuget.g.targets
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/project.assets.json b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/project.assets.json
new file mode 100644
index 0000000..c774fc7
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/project.assets.json
@@ -0,0 +1,113 @@
+{
+ "version": 3,
+ "targets": {
+ "net8.0": {
+ "MathNet.Numerics/5.0.0": {
+ "type": "package",
+ "compile": {
+ "lib/net6.0/MathNet.Numerics.dll": {
+ "related": ".xml"
+ }
+ },
+ "runtime": {
+ "lib/net6.0/MathNet.Numerics.dll": {
+ "related": ".xml"
+ }
+ }
+ }
+ }
+ },
+ "libraries": {
+ "MathNet.Numerics/5.0.0": {
+ "sha512": "pg1W2VwaEQMAiTpGK840hZgzavnqjlCMTVSbtVCXVyT+7AX4mc1o89SPv4TBlAjhgCOo9c1Y+jZ5m3ti2YgGgA==",
+ "type": "package",
+ "path": "mathnet.numerics/5.0.0",
+ "files": [
+ ".nupkg.metadata",
+ ".signature.p7s",
+ "icon.png",
+ "lib/net461/MathNet.Numerics.dll",
+ "lib/net461/MathNet.Numerics.xml",
+ "lib/net48/MathNet.Numerics.dll",
+ "lib/net48/MathNet.Numerics.xml",
+ "lib/net5.0/MathNet.Numerics.dll",
+ "lib/net5.0/MathNet.Numerics.xml",
+ "lib/net6.0/MathNet.Numerics.dll",
+ "lib/net6.0/MathNet.Numerics.xml",
+ "lib/netstandard2.0/MathNet.Numerics.dll",
+ "lib/netstandard2.0/MathNet.Numerics.xml",
+ "mathnet.numerics.5.0.0.nupkg.sha512",
+ "mathnet.numerics.nuspec"
+ ]
+ }
+ },
+ "projectFileDependencyGroups": {
+ "net8.0": [
+ "MathNet.Numerics >= 5.0.0"
+ ]
+ },
+ "packageFolders": {
+ "C:\\Users\\73bul\\.nuget\\packages\\": {}
+ },
+ "project": {
+ "version": "1.0.0",
+ "restore": {
+ "projectUniqueName": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_5\\MatrixMultiplication\\MatrixMultiplication\\MatrixMultiplication.csproj",
+ "projectName": "MatrixMultiplication",
+ "projectPath": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_5\\MatrixMultiplication\\MatrixMultiplication\\MatrixMultiplication.csproj",
+ "packagesPath": "C:\\Users\\73bul\\.nuget\\packages\\",
+ "outputPath": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_5\\MatrixMultiplication\\MatrixMultiplication\\obj\\",
+ "projectStyle": "PackageReference",
+ "configFilePaths": [
+ "C:\\Users\\73bul\\AppData\\Roaming\\NuGet\\NuGet.Config",
+ "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
+ ],
+ "originalTargetFrameworks": [
+ "net8.0"
+ ],
+ "sources": {
+ "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
+ "https://api.nuget.org/v3/index.json": {}
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "projectReferences": {}
+ }
+ },
+ "warningProperties": {
+ "warnAsError": [
+ "NU1605"
+ ]
+ }
+ },
+ "frameworks": {
+ "net8.0": {
+ "targetAlias": "net8.0",
+ "dependencies": {
+ "MathNet.Numerics": {
+ "target": "Package",
+ "version": "[5.0.0, )"
+ }
+ },
+ "imports": [
+ "net461",
+ "net462",
+ "net47",
+ "net471",
+ "net472",
+ "net48",
+ "net481"
+ ],
+ "assetTargetFallback": true,
+ "warn": true,
+ "frameworkReferences": {
+ "Microsoft.NETCore.App": {
+ "privateAssets": "all"
+ }
+ },
+ "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.100/PortableRuntimeIdentifierGraph.json"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/project.nuget.cache b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/project.nuget.cache
new file mode 100644
index 0000000..7d2ba0c
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/MatrixMultiplication/MatrixMultiplication/obj/project.nuget.cache
@@ -0,0 +1,10 @@
+{
+ "version": 2,
+ "dgSpecHash": "MnXWhXr7C0YOLfM/M0Q/yOcncgcvGv+2fkw05RSNm31bZUalPSpmE6eNx46zPbl13+Lqq+ijO0o4Jfyc/Q1eRw==",
+ "success": true,
+ "projectFilePath": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_5\\MatrixMultiplication\\MatrixMultiplication\\MatrixMultiplication.csproj",
+ "expectedPackageFiles": [
+ "C:\\Users\\73bul\\.nuget\\packages\\mathnet.numerics\\5.0.0\\mathnet.numerics.5.0.0.nupkg.sha512"
+ ],
+ "logs": []
+}
\ No newline at end of file
diff --git a/almukhammetov_bulat_lab_5/README.md b/almukhammetov_bulat_lab_5/README.md
new file mode 100644
index 0000000..9b36443
--- /dev/null
+++ b/almukhammetov_bulat_lab_5/README.md
@@ -0,0 +1,232 @@
+Альмухамметов ПИбд-42
+
+Описание программы:
+
+1. Ввод количества потоков: Программа начинается с запроса у пользователя количества потоков, которые будут использоваться в параллельных вычислениях.
+Если введено некорректное значение, используется значение по умолчанию (4).
+
+2. Генерация матриц: Программа генерирует три пары квадратных матриц разных размеров (100x100, 300x300, 500x500). Значения в матрицах генерируются случайным образом.1
+
+3. Тестирование умножения матриц: Для каждой пары матриц проводится серия из 10 итераций умножения, где каждая итерация включает как последовательное,
+так и параллельное умножение.
+
+4. Подсчет времени и использования памяти: Для каждого умножения измеряется время выполнения и потребление памяти. Используется класс Stopwatch для измерения времени и
+GC.GetTotalMemory для оценки использования памяти.
+
+5. Вывод результатов: По окончании тестирования программа выводит средние значения времени выполнения и потребления памяти для последовательного и параллельного умножения
+для каждого размера матриц.
+
+6. Методы умножения матриц: Реализованы два метода умножения - MultiplyMatricesSequential для последовательного умножения и MultiplyMatricesParallel для параллельного.
+Параллельное умножение использует Parallel.For с заданным количеством потоков.
+
+7. Проверка совместимости матриц: Программа проверяет матрицы на совместимость для умножения (число столбцов первой матрицы должно быть равно числу строк второй).
+
+8. функции: Включают генерацию матриц (GenerateMatrix), печать матрицы (PrintMatrix) и конвертацию матрицы в формат MathNet.Numerics.LinearAlgebra.Matrix для проверки
+корректности умножения (ConvertToMathNetMatrix).
+
+9. Тестирование операций над матрицами: TestMatrixOperation интегрирует функциональность вышеупомянутых методов, выполняя умножение и собирая статистические данные.
+
+Результаты тестирования:
+
+Введите количество потоков:
+2
+Прогон #1:
+
+Последовательно: Время: 13 мс, Память: 39656 байт
+Параллельно: Время: 37 мс, Память: 45536 байт
+Последовательно: Время: 313 мс, Память: 359992 байт
+Параллельно: Время: 168 мс, Память: 360040 байт
+Последовательно: Время: 1497 мс, Память: 1000576 байт
+Параллельно: Время: 839 мс, Память: 1000288 байт
+Прогон #2:
+
+Последовательно: Время: 11 мс, Память: 40040 байт
+Параллельно: Время: 8 мс, Память: 40040 байт
+Последовательно: Время: 340 мс, Память: 360576 байт
+Параллельно: Время: 163 мс, Память: 360040 байт
+Последовательно: Время: 1560 мс, Память: 1000576 байт
+Параллельно: Время: 799 мс, Память: 1000040 байт
+Прогон #3:
+
+Последовательно: Время: 9 мс, Память: 40040 байт
+Параллельно: Время: 6 мс, Память: 40040 байт
+Последовательно: Время: 253 мс, Память: 360576 байт
+Параллельно: Время: 154 мс, Память: 360040 байт
+Последовательно: Время: 916 мс, Память: 1000576 байт
+Параллельно: Время: 485 мс, Память: 1000040 байт
+Прогон #4:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 4 мс, Память: 40040 байт
+Последовательно: Время: 184 мс, Память: 360040 байт
+Параллельно: Время: 118 мс, Память: 360576 байт
+Последовательно: Время: 900 мс, Память: 1000040 байт
+Параллельно: Время: 518 мс, Память: 1000576 байт
+Прогон #5:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 5 мс, Память: 40040 байт
+Последовательно: Время: 182 мс, Память: 360040 байт
+Параллельно: Время: 117 мс, Память: 360040 байт
+Последовательно: Время: 912 мс, Память: 1000576 байт
+Параллельно: Время: 534 мс, Память: 1000576 байт
+Прогон #6:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 4 мс, Память: 40040 байт
+Последовательно: Время: 188 мс, Память: 360040 байт
+Параллельно: Время: 95 мс, Память: 360040 байт
+Последовательно: Время: 1046 мс, Память: 1000576 байт
+Параллельно: Время: 539 мс, Память: 1000576 байт
+Прогон #7:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 7 мс, Память: 40040 байт
+Последовательно: Время: 183 мс, Память: 360040 байт
+Параллельно: Время: 115 мс, Память: 360040 байт
+Последовательно: Время: 878 мс, Память: 1000576 байт
+Параллельно: Время: 546 мс, Память: 1000040 байт
+Прогон #8:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 6 мс, Память: 40040 байт
+Последовательно: Время: 193 мс, Память: 360576 байт
+Параллельно: Время: 105 мс, Память: 360040 байт
+Последовательно: Время: 1019 мс, Память: 1000576 байт
+Параллельно: Время: 506 мс, Память: 1000040 байт
+Прогон #9:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 4 мс, Память: 40040 байт
+Последовательно: Время: 180 мс, Память: 360040 байт
+Параллельно: Время: 137 мс, Память: 360576 байт
+Последовательно: Время: 968 мс, Память: 1000040 байт
+Параллельно: Время: 485 мс, Память: 1000576 байт
+Прогон #10:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 6 мс, Память: 40040 байт
+Последовательно: Время: 186 мс, Память: 360040 байт
+Параллельно: Время: 114 мс, Память: 360040 байт
+Последовательно: Время: 1020 мс, Память: 1000576 байт
+Параллельно: Время: 531 мс, Память: 1000576 байт
+
+Среднее время (мс) и расход памяти (байт) для последовательного и параллельного умножения матриц:
+100x100: Последовательно: Время: 7 мс, Память: 40001 байт
+100x100: Параллельно: Время: 8 мс, Память: 40589 байт
+300x300: Последовательно: Время: 220 мс, Память: 360196 байт
+300x300: Параллельно: Время: 128 мс, Память: 360147 байт
+500x500: Последовательно: Время: 1071 мс, Память: 1000468 байт
+500x500: Параллельно: Время: 578 мс, Память: 1000332 байт
+
+
+Введите количество потоков:
+4
+Прогон #1:
+
+Последовательно: Время: 14 мс, Память: 39656 байт
+Параллельно: Время: 45 мс, Память: 46448 байт
+Последовательно: Время: 400 мс, Память: 359992 байт
+Параллельно: Время: 355 мс, Память: 361216 байт
+Последовательно: Время: 1603 мс, Память: 1000576 байт
+Параллельно: Время: 533 мс, Память: 1000040 байт
+Прогон #2:
+
+Последовательно: Время: 10 мс, Память: 40040 байт
+Параллельно: Время: 4 мс, Память: 40040 байт
+Последовательно: Время: 333 мс, Память: 360576 байт
+Параллельно: Время: 167 мс, Память: 360088 байт
+Последовательно: Время: 1608 мс, Память: 1000576 байт
+Параллельно: Время: 480 мс, Память: 1000040 байт
+Прогон #3:
+
+Последовательно: Время: 11 мс, Память: 40040 байт
+Параллельно: Время: 4 мс, Память: 40040 байт
+Последовательно: Время: 321 мс, Память: 360040 байт
+Параллельно: Время: 114 мс, Память: 360040 байт
+Последовательно: Время: 1299 мс, Память: 1000576 байт
+Параллельно: Время: 356 мс, Память: 1000040 байт
+Прогон #4:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 3 мс, Память: 40040 байт
+Последовательно: Время: 268 мс, Память: 360040 байт
+Параллельно: Время: 73 мс, Память: 360040 байт
+Последовательно: Время: 877 мс, Память: 1000576 байт
+Параллельно: Время: 347 мс, Память: 1000576 байт
+Прогон #5:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 3 мс, Память: 40040 байт
+Последовательно: Время: 192 мс, Память: 360040 байт
+Параллельно: Время: 69 мс, Память: 360040 байт
+Последовательно: Время: 1063 мс, Память: 1000576 байт
+Параллельно: Время: 345 мс, Память: 1000040 байт
+Прогон #6:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 3 мс, Память: 40040 байт
+Последовательно: Время: 189 мс, Память: 360576 байт
+Параллельно: Время: 69 мс, Память: 360040 байт
+Последовательно: Время: 885 мс, Память: 1000576 байт
+Параллельно: Время: 308 мс, Память: 1000040 байт
+Прогон #7:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 3 мс, Память: 40040 байт
+Последовательно: Время: 178 мс, Память: 360040 байт
+Параллельно: Время: 68 мс, Память: 360040 байт
+Последовательно: Время: 878 мс, Память: 1000576 байт
+Параллельно: Время: 298 мс, Память: 1000040 байт
+Прогон #8:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 1 мс, Память: 40040 байт
+Последовательно: Время: 185 мс, Память: 360576 байт
+Параллельно: Время: 83 мс, Память: 360040 байт
+Последовательно: Время: 884 мс, Память: 1000040 байт
+Параллельно: Время: 293 мс, Память: 1000576 байт
+Прогон #9:
+
+Последовательно: Время: 7 мс, Память: 40040 байт
+Параллельно: Время: 2 мс, Память: 40040 байт
+Последовательно: Время: 175 мс, Память: 360040 байт
+Параллельно: Время: 85 мс, Память: 360040 байт
+Последовательно: Время: 895 мс, Память: 1000576 байт
+Параллельно: Время: 327 мс, Память: 1000040 байт
+Прогон #10:
+
+Последовательно: Время: 6 мс, Память: 40040 байт
+Параллельно: Время: 2 мс, Память: 40040 байт
+Последовательно: Время: 178 мс, Память: 360040 байт
+Параллельно: Время: 56 мс, Память: 360576 байт
+Последовательно: Время: 928 мс, Память: 1000040 байт
+Параллельно: Время: 282 мс, Память: 1000576 байт
+
+Среднее время (мс) и расход памяти (байт) для последовательного и параллельного умножения матриц:
+100x100: Последовательно: Время: 7 мс, Память: 40001 байт
+100x100: Параллельно: Время: 7 мс, Память: 40680 байт
+300x300: Последовательно: Время: 241 мс, Память: 360196 байт
+300x300: Параллельно: Время: 113 мс, Память: 360216 байт
+500x500: Последовательно: Время: 1092 мс, Память: 1000468 байт
+500x500: Параллельно: Время: 356 мс, Память: 1000200 байт
+
+На основе предоставленных результатов можно сделать несколько важных наблюдений относительно последовательного и параллельного умножения матриц:
+
+1. Параллельное умножение матриц показывает лучшую производительность по сравнению с последовательным, особенно для матриц большего размера.
+Это видно из сравнения времени выполнения: например, для матриц 500x500 время сокращается с 1071 мс до 578 мс при использовании 2 потоков и до 356 мс при использовании 4 потоков.
+
+2. Для маленьких матриц (100x100), разница в производительности между последовательным и параллельным умножением не так заметна.
+Это может быть связано с накладными расходами на создание и управление дополнительными потоками, которые не окупаются на малых объёмах данных.
+
+3. Увеличение числа потоков с 2 до 4 приводит к дальнейшему улучшению времени выполнения в параллельных вычислениях.
+Это подчеркивает важность выбора оптимального количества потоков для конкретной задачи и конфигурации оборудования.
+
+4. Расход памяти при последовательном и параллельном умножении схож, что указывает на то, что параллельное выполнение не приводит к значительному увеличению потребления памяти.
+Это положительный момент, поскольку параллельные вычисления часто ассоциируются с более высоким расходом ресурсов.
+
+В целом, эти результаты демонстрируют преимущества использования параллельных вычислений для улучшения производительности, особенно на больших объемах данных.
+ Однако важно учитывать накладные расходы и выбирать количество потоков, оптимальное для конкретной задачи и оборудования.
+
+Видео:
+https://vk.com/video228053206_456240782
\ No newline at end of file