diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/DesignTimeBuild/.dtbcache.v2 b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000..4fdfe8a Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/DesignTimeBuild/.dtbcache.v2 differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/FileContentIndex/c616e5fd-0c28-4a89-bbfd-dc64561780b6.vsidx b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/FileContentIndex/c616e5fd-0c28-4a89-bbfd-dc64561780b6.vsidx new file mode 100644 index 0000000..d33ae99 Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/FileContentIndex/c616e5fd-0c28-4a89-bbfd-dc64561780b6.vsidx differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/v17/.futdcache.v2 b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/v17/.futdcache.v2 new file mode 100644 index 0000000..524915b Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/v17/.futdcache.v2 differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/v17/.suo b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/v17/.suo new file mode 100644 index 0000000..80f1fdd Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixDeterminant/v17/.suo differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixMultiplication/DesignTimeBuild/.dtbcache.v2 b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixMultiplication/DesignTimeBuild/.dtbcache.v2 new file mode 100644 index 0000000..cf890ee Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixMultiplication/DesignTimeBuild/.dtbcache.v2 differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixMultiplication/FileContentIndex/49e2c359-59ef-40c9-8690-362984862938.vsidx b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixMultiplication/FileContentIndex/49e2c359-59ef-40c9-8690-362984862938.vsidx new file mode 100644 index 0000000..70aef67 Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixMultiplication/FileContentIndex/49e2c359-59ef-40c9-8690-362984862938.vsidx differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixMultiplication/FileContentIndex/4aa3cae0-5247-4e5e-86bd-52b38704cdf7.vsidx b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixMultiplication/FileContentIndex/4aa3cae0-5247-4e5e-86bd-52b38704cdf7.vsidx new file mode 100644 index 0000000..8244904 Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixMultiplication/FileContentIndex/4aa3cae0-5247-4e5e-86bd-52b38704cdf7.vsidx differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/MatrixMultiplication/FileContentIndex/8e0ba479-e194-41b8-a3b3-1a755ceffbd7.vsidx b/almukhammetov_bulat_lab_6/MatrixDeterminant/.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_6/MatrixDeterminant/.vs/MatrixMultiplication/FileContentIndex/8e0ba479-e194-41b8-a3b3-1a755ceffbd7.vsidx differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixdeterminant.metadata.v7.bin b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixdeterminant.metadata.v7.bin new file mode 100644 index 0000000..495730f Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixdeterminant.metadata.v7.bin differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixdeterminant.projects.v7.bin b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixdeterminant.projects.v7.bin new file mode 100644 index 0000000..ae3bd1d Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixdeterminant.projects.v7.bin differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixmultiplication.metadata.v7.bin b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixmultiplication.metadata.v7.bin new file mode 100644 index 0000000..6dca77f Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixmultiplication.metadata.v7.bin differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixmultiplication.projects.v7.bin b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixmultiplication.projects.v7.bin new file mode 100644 index 0000000..f1fed62 Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/.vs/ProjectEvaluation/matrixmultiplication.projects.v7.bin differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant.sln b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant.sln new file mode 100644 index 0000000..a90bdaa --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant.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}") = "MatrixDeterminant", "MatrixDeterminant\MatrixDeterminant.csproj", "{1DB9E237-2513-4A52-92E6-D71828122D83}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1DB9E237-2513-4A52-92E6-D71828122D83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1DB9E237-2513-4A52-92E6-D71828122D83}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1DB9E237-2513-4A52-92E6-D71828122D83}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1DB9E237-2513-4A52-92E6-D71828122D83}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {00207152-6054-4EBA-9B31-E22685B75110} + EndGlobalSection +EndGlobal diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/MatrixDeterminant.csproj b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/MatrixDeterminant.csproj new file mode 100644 index 0000000..2150e37 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/MatrixDeterminant.csproj @@ -0,0 +1,10 @@ + + + + Exe + net8.0 + enable + enable + + + diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/Program.cs b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/Program.cs new file mode 100644 index 0000000..0e99578 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/Program.cs @@ -0,0 +1,199 @@ +using System.Diagnostics; + +class Program +{ + static void Main() + { + Console.WriteLine("Введите количество потоков:"); + string input = Console.ReadLine(); + + + if (!int.TryParse(input, out int threadCount)) + { + Console.WriteLine("Введено некорректное значение, будет использовано значение по умолчанию: 4"); + threadCount = 4; + } + + // Генерация матриц + int[,] matrix6 = GenerateMatrix(6, 6); + int[,] matrix8 = GenerateMatrix(8, 8); + int[,] matrix10 = GenerateMatrix(10, 10); + + // Счетчики для расчета среднего + long totalTimeSeq6 = 0, totalTimePar6 = 0; + long totalTimeSeq8 = 0, totalTimePar8 = 0; + long totalTimeSeq10 = 0, totalTimePar10 = 0; + long totalMemorySeq6 = 0, totalMemoryPart6 = 0; + long totalMemorySeq8 = 0, totalMemoryPar8 = 0; + long totalMemorySeq10 = 0, totalMemoryPar10 = 0; + + int iterations = 10; + + for (int i = 0; i < iterations; i++) + { + Console.WriteLine($"Прогон #{i + 1}:\n"); + + // 6x6 + var (timeSeq6, memSeq6, timePar6, memPar6) = TestMatrixOperation(matrix6, threadCount); + totalTimeSeq6 += timeSeq6; + totalTimePar6 += timePar6; + totalMemorySeq6 += memSeq6; + totalMemoryPart6 += memPar6; + + // 8x8 + var (timeSeq8, memSeq8, timePar8, memPar8) = TestMatrixOperation(matrix8, threadCount); + totalTimeSeq8 += timeSeq8; + totalTimePar8 += timePar8; + totalMemorySeq8 += memSeq8; + totalMemoryPar8 += memPar8; + + // 10x10 + var (timeSeq10, memSeq10, timePar10, memPar10) = TestMatrixOperation(matrix10, threadCount); + totalTimeSeq10 += timeSeq10; + totalTimePar10 += timePar10; + totalMemorySeq10 += memSeq10; + totalMemoryPar10 += memPar10; + } + + // Вывод средних значений + Console.WriteLine($"\nСреднее время (мс) и расход памяти (байт) для последовательного и параллельного определения детерминанта:"); + + Console.WriteLine($"6x6: Последовательно: Время: {totalTimeSeq6 / iterations} мс, Память: {totalMemorySeq6 / iterations} байт"); + Console.WriteLine($"6x6: Параллельно: Время: {totalTimePar6 / iterations} мс, Память: {totalMemoryPart6 / iterations} байт"); + + Console.WriteLine($"8x8: Последовательно: Время: {totalTimeSeq8 / iterations} мс, Память: {totalMemorySeq8 / iterations} байт"); + Console.WriteLine($"8x8: Параллельно: Время: {totalTimePar8 / iterations} мс, Память: {totalMemoryPar8 / iterations} байт"); + + Console.WriteLine($"10x10: Последовательно: Время: {totalTimeSeq10 / iterations} мс, Память: {totalMemorySeq10 / iterations} байт"); + Console.WriteLine($"10x10: Параллельно: Время: {totalTimePar10 / iterations} мс, Память: {totalMemoryPar10 / 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 (long, long, long, long) TestMatrixOperation(int[,] matrix, int threadCount) + { + if (!IsSquareMatrix(matrix)) + { + Console.WriteLine("Матрица не квадратная."); + return (0, 0, 0, 0); + } + + Stopwatch stopwatch = new(); + + // Последовательное вычисление детерминанта + long memoryBeforeSeq = GC.GetTotalMemory(true); + stopwatch.Start(); + var resultSequential = DeterminantSequential(matrix); + 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 = DeterminantParallel(matrix, 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); + } + + private static bool IsSquareMatrix(int[,] matrix) + { + return matrix.GetLength(0) == matrix.GetLength(1); + } + + private static double DeterminantParallel(int[,] matrix, int threadCount) + { + int size = matrix.GetLength(0); + if (size == 1) return matrix[0, 0]; + if (size == 2) return matrix[0, 0] * matrix[1, 1] - matrix[0, 1] * matrix[1, 0]; + + double det = 0; + var tasks = new Task[size]; + + for (int k = 0; k < size; k++) + { + int kLocal = k; + tasks[kLocal] = Task.Factory.StartNew(() => + { + return (kLocal % 2 == 0 ? 1 : -1) * matrix[0, kLocal] * DeterminantSequential(CreateSmallerMatrix(matrix, 0, kLocal)); + }); + } + + Task.WaitAll(tasks); + + foreach (var task in tasks) + { + det += task.Result; + } + + return det; + } + + private static double DeterminantSequential(int[,] matrix) + { + int size = matrix.GetLength(0); + if (size == 1) return matrix[0, 0]; + if (size == 2) return matrix[0, 0] * matrix[1, 1] - matrix[0, 1] * matrix[1, 0]; + + double det = 0; + for (int k = 0; k < size; k++) + { + det += (k % 2 == 0 ? 1 : -1) * matrix[0, k] * DeterminantSequential(CreateSmallerMatrix(matrix, 0, k)); + } + return det; + } + + private static int[,] CreateSmallerMatrix(int[,] matrix, int excludingRow, int excludingCol) + { + int size = matrix.GetLength(0); + int[,] smallerMatrix = new int[size - 1, size - 1]; + int i = 0, j = 0; + for (int row = 0; row < size; row++) + { + if (row == excludingRow) continue; + j = 0; + for (int col = 0; col < size; col++) + { + if (col == excludingCol) continue; + smallerMatrix[i, j] = matrix[row, col]; + j++; + } + i++; + } + return smallerMatrix; + } +} diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.deps.json b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.deps.json new file mode 100644 index 0000000..0235854 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "MatrixDeterminant/1.0.0": { + "runtime": { + "MatrixDeterminant.dll": {} + } + } + } + }, + "libraries": { + "MatrixDeterminant/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.dll b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.dll new file mode 100644 index 0000000..bf217a3 Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.dll differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.exe b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.exe new file mode 100644 index 0000000..7c0b58c Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.exe differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.pdb b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.pdb new file mode 100644 index 0000000..aa57bbd Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.pdb differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.runtimeconfig.json b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.runtimeconfig.json new file mode 100644 index 0000000..becfaea --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/bin/Debug/net8.0/MatrixDeterminant.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_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/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_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.AssemblyInfo.cs b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.AssemblyInfo.cs new file mode 100644 index 0000000..070c3e6 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("MatrixDeterminant")] +[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("MatrixDeterminant")] +[assembly: System.Reflection.AssemblyTitleAttribute("MatrixDeterminant")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Создано классом WriteCodeFragment MSBuild. + diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.AssemblyInfoInputs.cache b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.AssemblyInfoInputs.cache new file mode 100644 index 0000000..6247c8c --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +b62c0f7623532347296dfda403f8e24f24f5ff22aefaec77949419a46c5345d5 diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.GeneratedMSBuildEditorConfig.editorconfig b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..f9f32b7 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.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 = MatrixDeterminant +build_property.ProjectDir = D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.GlobalUsings.g.cs b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.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_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.assets.cache b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.assets.cache new file mode 100644 index 0000000..b58121e Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.assets.cache differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.csproj.BuildWithSkipAnalyzers b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.csproj.BuildWithSkipAnalyzers new file mode 100644 index 0000000..e69de29 diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.csproj.CoreCompileInputs.cache b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..378c680 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +ef307266d2e10f095868927517f210f889e62282297f57f931d2f69a9e50026d diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.csproj.FileListAbsolute.txt b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..6b80383 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.csproj.FileListAbsolute.txt @@ -0,0 +1,14 @@ +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\bin\Debug\net8.0\MatrixDeterminant.exe +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\bin\Debug\net8.0\MatrixDeterminant.deps.json +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\bin\Debug\net8.0\MatrixDeterminant.runtimeconfig.json +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\bin\Debug\net8.0\MatrixDeterminant.dll +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\bin\Debug\net8.0\MatrixDeterminant.pdb +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\obj\Debug\net8.0\MatrixDeterminant.GeneratedMSBuildEditorConfig.editorconfig +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\obj\Debug\net8.0\MatrixDeterminant.AssemblyInfoInputs.cache +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\obj\Debug\net8.0\MatrixDeterminant.AssemblyInfo.cs +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\obj\Debug\net8.0\MatrixDeterminant.csproj.CoreCompileInputs.cache +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\obj\Debug\net8.0\MatrixDeterminant.dll +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\obj\Debug\net8.0\refint\MatrixDeterminant.dll +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\obj\Debug\net8.0\MatrixDeterminant.pdb +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\obj\Debug\net8.0\MatrixDeterminant.genruntimeconfig.cache +D:\Документы\GitHub\DAS_2023_1\almukhammetov_bulat_lab_6\MatrixDeterminant\MatrixDeterminant\obj\Debug\net8.0\ref\MatrixDeterminant.dll diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.dll b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.dll new file mode 100644 index 0000000..bf217a3 Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.dll differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.genruntimeconfig.cache b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.genruntimeconfig.cache new file mode 100644 index 0000000..7c7a320 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.genruntimeconfig.cache @@ -0,0 +1 @@ +1b145bab19aa88d8a557ef3b507e35905f65a9a8609aee764b5fcea1fa8d8e00 diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.pdb b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.pdb new file mode 100644 index 0000000..aa57bbd Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/MatrixDeterminant.pdb differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/apphost.exe b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/apphost.exe new file mode 100644 index 0000000..7c0b58c Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/apphost.exe differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/ref/MatrixDeterminant.dll b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/ref/MatrixDeterminant.dll new file mode 100644 index 0000000..1dcb1e7 Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/ref/MatrixDeterminant.dll differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/refint/MatrixDeterminant.dll b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/refint/MatrixDeterminant.dll new file mode 100644 index 0000000..1dcb1e7 Binary files /dev/null and b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/Debug/net8.0/refint/MatrixDeterminant.dll differ diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/MatrixDeterminant.csproj.nuget.dgspec.json b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/MatrixDeterminant.csproj.nuget.dgspec.json new file mode 100644 index 0000000..c6936c7 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/MatrixDeterminant.csproj.nuget.dgspec.json @@ -0,0 +1,63 @@ +{ + "format": 1, + "restore": { + "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_6\\MatrixDeterminant\\MatrixDeterminant\\MatrixDeterminant.csproj": {} + }, + "projects": { + "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_6\\MatrixDeterminant\\MatrixDeterminant\\MatrixDeterminant.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_6\\MatrixDeterminant\\MatrixDeterminant\\MatrixDeterminant.csproj", + "projectName": "MatrixDeterminant", + "projectPath": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_6\\MatrixDeterminant\\MatrixDeterminant\\MatrixDeterminant.csproj", + "packagesPath": "C:\\Users\\73bul\\.nuget\\packages\\", + "outputPath": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_6\\MatrixDeterminant\\MatrixDeterminant\\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", + "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_6/MatrixDeterminant/MatrixDeterminant/obj/MatrixDeterminant.csproj.nuget.g.props b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/MatrixDeterminant.csproj.nuget.g.props new file mode 100644 index 0000000..849b9bd --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/MatrixDeterminant.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_6/MatrixDeterminant/MatrixDeterminant/obj/MatrixDeterminant.csproj.nuget.g.targets b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/MatrixDeterminant.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/MatrixDeterminant.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/project.assets.json b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/project.assets.json new file mode 100644 index 0000000..04a3fc8 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/project.assets.json @@ -0,0 +1,68 @@ +{ + "version": 3, + "targets": { + "net8.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net8.0": [] + }, + "packageFolders": { + "C:\\Users\\73bul\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_6\\MatrixDeterminant\\MatrixDeterminant\\MatrixDeterminant.csproj", + "projectName": "MatrixDeterminant", + "projectPath": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_6\\MatrixDeterminant\\MatrixDeterminant\\MatrixDeterminant.csproj", + "packagesPath": "C:\\Users\\73bul\\.nuget\\packages\\", + "outputPath": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_6\\MatrixDeterminant\\MatrixDeterminant\\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", + "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_6/MatrixDeterminant/MatrixDeterminant/obj/project.nuget.cache b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/project.nuget.cache new file mode 100644 index 0000000..a18d894 --- /dev/null +++ b/almukhammetov_bulat_lab_6/MatrixDeterminant/MatrixDeterminant/obj/project.nuget.cache @@ -0,0 +1,8 @@ +{ + "version": 2, + "dgSpecHash": "MsjFdrVex7ttbRwfezwe/tnb8JGwMSbJj+thkzYqpP+mHl2nw6UaJRTSe1NicG4pO9pjA0Kh2kDV/8LiPVKpkQ==", + "success": true, + "projectFilePath": "D:\\Документы\\GitHub\\DAS_2023_1\\almukhammetov_bulat_lab_6\\MatrixDeterminant\\MatrixDeterminant\\MatrixDeterminant.csproj", + "expectedPackageFiles": [], + "logs": [] +} \ No newline at end of file diff --git a/almukhammetov_bulat_lab_6/README.md b/almukhammetov_bulat_lab_6/README.md new file mode 100644 index 0000000..bf04dbf --- /dev/null +++ b/almukhammetov_bulat_lab_6/README.md @@ -0,0 +1,137 @@ +Альмухамметов ПИбд-42 + +Описание программы: + +Эта программа предназначена для расчета детерминанта квадратных матриц с использованием как последовательных, так и параллельных вычислений. Она позволяет оценить и сравнить производительность и использование памяти обоих методов. + +Основные функции программы: + +Ввод количества потоков: Пользователь может ввести количество потоков, которые будут использоваться для параллельных вычислений. Если введено некорректное значение, по умолчанию используется 4 потока. + +Генерация матриц: Программа генерирует квадратные матрицы заданных размеров (6x6, 8x8 и 10x10) со случайными значениями. + +Тестирование производительности: Программа выполняет расчет детерминанта для каждой сгенерированной матрицы, используя последовательные и параллельные вычисления. Это повторяется 10 раз для получения средних значений времени выполнения и использованной памяти. + +Вывод результатов: После тестирования программа выводит средние значения времени выполнения и использованной памяти для последовательных и параллельных вычислений для каждого размера матрицы. + +Основные методы программы: + +GenerateMatrix(int rows, int cols): Генерирует матрицу заданного размера с случайными значениями. + +TestMatrixOperation(int[,] matrix, int threadCount): Выполняет расчет детерминанта для заданной матрицы обоими методами и измеряет время выполнения и использованную память. + +IsSquareMatrix(int[,] matrix): Проверяет, является ли матрица квадратной. + +DeterminantParallel(int[,] matrix, int threadCount): Вычисляет детерминант матрицы, используя параллельные вычисления. + +DeterminantSequential(int[,] matrix): Вычисляет детерминант матрицы последовательным методом. + +CreateSmallerMatrix(int[,] matrix, int excludingRow, int excludingCol): Создает меньшую матрицу путем исключения заданной строки и столбца из исходной матрицы. + +Проверка работоспособности: +![Alt text](image.png) + +![Alt text](image-1.png) + +Результаты: + +Введите количество потоков: +2 +Прогон #1: + +Последовательно: Время: 0 мс, Память: 0 байт +Параллельно: Время: 6 мс, Память: 640 байт +Последовательно: Время: 3 мс, Память: 0 байт +Параллельно: Время: 5 мс, Память: 832 байт +Последовательно: Время: 389 мс, Память: 0 байт +Параллельно: Время: 121 мс, Память: 4744 байт +Прогон #2: + +Последовательно: Время: 0 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 3 мс, Память: 0 байт +Параллельно: Время: 1 мс, Память: 0 байт +Последовательно: Время: 324 мс, Память: 0 байт +Параллельно: Время: 77 мс, Память: 0 байт +Прогон #3: + +Последовательно: Время: 0 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 3 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 336 мс, Память: 0 байт +Параллельно: Время: 75 мс, Память: 0 байт +Прогон #4: + +Последовательно: Время: 0 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 3 мс, Память: 0 байт +Параллельно: Время: 1 мс, Память: 0 байт +Последовательно: Время: 317 мс, Память: 0 байт +Параллельно: Время: 75 мс, Память: 0 байт +Прогон #5: + +Последовательно: Время: 0 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 3 мс, Память: 0 байт +Параллельно: Время: 1 мс, Память: 0 байт +Последовательно: Время: 324 мс, Память: 0 байт +Параллельно: Время: 74 мс, Память: 0 байт +Прогон #6: + +Последовательно: Время: 0 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 3 мс, Память: 0 байт +Параллельно: Время: 1 мс, Память: 0 байт +Последовательно: Время: 322 мс, Память: 0 байт +Параллельно: Время: 77 мс, Память: 0 байт +Прогон #7: + +Последовательно: Время: 0 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 3 мс, Память: 0 байт +Параллельно: Время: 1 мс, Память: 0 байт +Последовательно: Время: 341 мс, Память: 0 байт +Параллельно: Время: 74 мс, Память: 0 байт +Прогон #8: + +Последовательно: Время: 0 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 3 мс, Память: 0 байт +Параллельно: Время: 1 мс, Память: 0 байт +Последовательно: Время: 319 мс, Память: 0 байт +Параллельно: Время: 74 мс, Память: 0 байт +Прогон #9: + +Последовательно: Время: 0 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 3 мс, Память: 0 байт +Параллельно: Время: 1 мс, Память: 0 байт +Последовательно: Время: 337 мс, Память: 0 байт +Параллельно: Время: 76 мс, Память: 0 байт +Прогон #10: + +Последовательно: Время: 0 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 3 мс, Память: 0 байт +Параллельно: Время: 0 мс, Память: 0 байт +Последовательно: Время: 348 мс, Память: 0 байт +Параллельно: Время: 78 мс, Память: 0 байт + +Среднее время (мс) и расход памяти (байт) для последовательного и параллельного определения детерминанта: +6x6: Последовательно: Время: 0 мс, Память: 0 байт +6x6: Параллельно: Время: 0 мс, Память: 64 байт +8x8: Последовательно: Время: 3 мс, Память: 0 байт +8x8: Параллельно: Время: 1 мс, Память: 83 байт +10x10: Последовательно: Время: 335 мс, Память: 0 байт +10x10: Параллельно: Время: 80 мс, Память: 474 байт + +Выводы: + +1. Для небольших матриц (6x6 и 8x8) разница во времени выполнения между последовательным и параллельным методами незначительна. Однако при увеличении размера матрицы до 10x10 параллельные вычисления значительно ускоряют процесс. +2. Параллельные вычисления требуют немного больше памяти. Это связано дополнительными затратами на создание и управление потоками. +3. Параллельное выполнение становится более выгодным с увеличением сложности задачи, что видно из значительного уменьшения времени вычислений для 10x10 матрицы. + +Видео: + +https://vk.com/video228053206_456240783?list=ln-gr1nvdhEV3ZZ74iKE0 \ No newline at end of file diff --git a/almukhammetov_bulat_lab_6/image-1.png b/almukhammetov_bulat_lab_6/image-1.png new file mode 100644 index 0000000..886391b Binary files /dev/null and b/almukhammetov_bulat_lab_6/image-1.png differ diff --git a/almukhammetov_bulat_lab_6/image.png b/almukhammetov_bulat_lab_6/image.png new file mode 100644 index 0000000..181c769 Binary files /dev/null and b/almukhammetov_bulat_lab_6/image.png differ