From 1bb988ea2f50c3413a286e3c660ca0e32cf06736 Mon Sep 17 00:00:00 2001 From: Zara28 Date: Tue, 8 Oct 2024 23:43:24 +0400 Subject: [PATCH 1/4] dozorova_alena_lab_6 --- .gitignore | 3 + .../ConsoleApp1/ConsoleApp1.csproj | 10 ++ .../ConsoleApp1/ConsoleApp1.sln | 25 +++++ dozorova_alena_lab_6/ConsoleApp1/Extention.cs | 55 +++++++++++ dozorova_alena_lab_6/ConsoleApp1/Program.cs | 87 ++++++++++++++++++ dozorova_alena_lab_6/README.md | 18 ++++ dozorova_alena_lab_6/image-1.png | Bin 0 -> 556 bytes dozorova_alena_lab_6/image-2.png | Bin 0 -> 68365 bytes dozorova_alena_lab_6/image.png | Bin 0 -> 2347 bytes 9 files changed, 198 insertions(+) create mode 100644 dozorova_alena_lab_6/ConsoleApp1/ConsoleApp1.csproj create mode 100644 dozorova_alena_lab_6/ConsoleApp1/ConsoleApp1.sln create mode 100644 dozorova_alena_lab_6/ConsoleApp1/Extention.cs create mode 100644 dozorova_alena_lab_6/ConsoleApp1/Program.cs create mode 100644 dozorova_alena_lab_6/README.md create mode 100644 dozorova_alena_lab_6/image-1.png create mode 100644 dozorova_alena_lab_6/image-2.png create mode 100644 dozorova_alena_lab_6/image.png diff --git a/.gitignore b/.gitignore index 697082a..0e58087 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ /dozorova_alena_lab_2/ConsoleApp2/.vs /dozorova_alena_lab_2/ConsoleApp2/bin /dozorova_alena_lab_2/ConsoleApp2/obj +/dozorova_alena_lab_6/ConsoleApp1/.vs +/dozorova_alena_lab_6/ConsoleApp1/bin +/dozorova_alena_lab_6/ConsoleApp1/obj diff --git a/dozorova_alena_lab_6/ConsoleApp1/ConsoleApp1.csproj b/dozorova_alena_lab_6/ConsoleApp1/ConsoleApp1.csproj new file mode 100644 index 0000000..74abf5c --- /dev/null +++ b/dozorova_alena_lab_6/ConsoleApp1/ConsoleApp1.csproj @@ -0,0 +1,10 @@ + + + + Exe + net6.0 + enable + enable + + + diff --git a/dozorova_alena_lab_6/ConsoleApp1/ConsoleApp1.sln b/dozorova_alena_lab_6/ConsoleApp1/ConsoleApp1.sln new file mode 100644 index 0000000..5701d5a --- /dev/null +++ b/dozorova_alena_lab_6/ConsoleApp1/ConsoleApp1.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.10.35004.147 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "ConsoleApp1.csproj", "{29269567-7466-4C99-BEEF-F5766BDDFB24}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {29269567-7466-4C99-BEEF-F5766BDDFB24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29269567-7466-4C99-BEEF-F5766BDDFB24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29269567-7466-4C99-BEEF-F5766BDDFB24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29269567-7466-4C99-BEEF-F5766BDDFB24}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EDED6E1D-0A86-43F9-94EA-6ADCC1FA1B42} + EndGlobalSection +EndGlobal diff --git a/dozorova_alena_lab_6/ConsoleApp1/Extention.cs b/dozorova_alena_lab_6/ConsoleApp1/Extention.cs new file mode 100644 index 0000000..86e8b29 --- /dev/null +++ b/dozorova_alena_lab_6/ConsoleApp1/Extention.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Numerics; +using System.Text; +using System.Threading.Tasks; + +namespace ConsoleApp1 +{ + public static class Extention + { + public static int[,] CreateMatrixWithoutColumn(this int[,] matrix, int column) + { + var result = new int[matrix.GetLength(0), matrix.GetLength(1) - 1]; + for (int i = 0; i < matrix.GetLength(0); i++) + { + for (int j = 0; j < matrix.GetLength(1) - 1; j++) + { + result[i, j] = j < column ? matrix[i, j] : matrix[i, j + 1]; + } + } + return result; + } + + public static int[,] CreateMatrixWithoutRow(this int[,] matrix, int row) + { + var result = new int[matrix.GetLength(0) - 1, matrix.GetLength(1)]; + for (int i = 0; i < matrix.GetLength(0) - 1; i++) + { + for (int j = 0; j < matrix.GetLength(1); j++) + { + result[i, j] = i < row ? matrix[i, j] : matrix[i + 1, j]; + } + } + + return result; + } + + public static double CalculateDeterminant(this int[,] matrix) + { + if (matrix.GetLength(0) == 2) + { + return matrix[0, 0] * matrix[1, 1] - matrix[0, 1] * matrix[1, 0]; + } + double result = 0; + for (var j = 0; j < matrix.GetLength(0); j++) + { + result += (j % 2 == 1 ? 1 : -1) * matrix[1, j] * + matrix.CreateMatrixWithoutColumn(j).CreateMatrixWithoutRow(1).CalculateDeterminant(); + } + //Console.WriteLine("Ко мне пришли с размером " + matrix.GetLength(0)); + return result; + } + } +} diff --git a/dozorova_alena_lab_6/ConsoleApp1/Program.cs b/dozorova_alena_lab_6/ConsoleApp1/Program.cs new file mode 100644 index 0000000..e39204a --- /dev/null +++ b/dozorova_alena_lab_6/ConsoleApp1/Program.cs @@ -0,0 +1,87 @@ + +using ConsoleApp1; +using System.Data.Common; +using System.Diagnostics; +internal class Program +{ + private static void Main(string[] args) + { + var value = new int[3] {100, 300, 500 }; + + foreach(var i in value) + { + var a = CreateMatrix(i, i); + var b = CreateMatrix(i, i); + + List times = new() {}; + Console.WriteLine("Для пяти потоков: "); + for (int j = 1; j <= 10; j++) + { + var sw = new Stopwatch(); + sw.Start(); + + Calculate(a, j); + + sw.Stop(); + times.Add(sw.ElapsedTicks); + } + Console.WriteLine("Количество тиков для вычисления матрицы стороной "+i+": "+string.Join("\t", times)); + + Console.WriteLine("Для десяти потоков: "); + for (int j = 1; j <= 10; j++) + { + var sw = new Stopwatch(); + sw.Start(); + + Calculate(a, j); + + sw.Stop(); + times.Add(sw.ElapsedTicks); + } + Console.WriteLine("Количество тиков для вычисления матрицы стороной " + i + ": " + string.Join("\t", times)); + + } + } + + private static int[,] CreateMatrix(int x, int y) + { + var rnd = new Random(); + + var res = new int[y, x]; + + for (int i = 0; i < y; i++) + { + for (int j = 0; j < x; j++) + { + res[i, j] = rnd.Next(0, 100); + } + } + return res; + } + + private static double Calculate(int[,] matrix, int maxTask) + { + double res = 0; + + var semaphore = new SemaphoreSlim(maxTask, maxTask); + + for (var j = 0; j < matrix.GetLength(0) - 1; j++) + { + _ = Task.Run(() => + { + try + { + semaphore.Wait(); + res += (j % 2 == 1 ? 1 : -1) * matrix[1, j] * + matrix.CreateMatrixWithoutColumn(j). + CreateMatrixWithoutRow(1).CalculateDeterminant(); + } + finally { semaphore.Release(); } + }); + + } + + semaphore.Wait(maxTask); + return res; + } +} \ No newline at end of file diff --git a/dozorova_alena_lab_6/README.md b/dozorova_alena_lab_6/README.md new file mode 100644 index 0000000..77d2d32 --- /dev/null +++ b/dozorova_alena_lab_6/README.md @@ -0,0 +1,18 @@ +# Лабораторная работа 6 +В рамках данной работы мы изучаем выигрыш при распаралелливании процесса вычисления определителя матрицы +## Описание +Для вычисления определителя мы используем следующую формулу: +![alt text](image.png) +где ![alt text](image-1.png) - определитель матрицы, полученной из исходной вырезанием 1 строки и j столбца. + +## Запуск +По опыту прошлой лабораторной работы, в консольном приложении был реализован алгоритм вычисление детерминанта и запущено сравнение затраченного времени (в тиках) для 5 и 10 потоков. +## Результаты +Результаты: +
+![Результат](image-2.png) +
+Как мы видим, подтверждаются выводы прошлой лабораторной работы: для небольших матриц выигрыш несущественнен из-за затраты времени на работу с потоком, а для больших эта разница в скорости уже существенна + +## Видеодемонстрация +Видеодемонстрация по [адресу](https://drive.google.com/file/d/1LFRNbTAOzg21Du60Ehy9u6HOp9D3sKPm/view?usp=sharing) diff --git a/dozorova_alena_lab_6/image-1.png b/dozorova_alena_lab_6/image-1.png new file mode 100644 index 0000000000000000000000000000000000000000..64f1452b34ba935917afbbffb8e0490b045a17c1 GIT binary patch literal 556 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 literal 0 HcmV?d00001 diff --git a/dozorova_alena_lab_6/image.png b/dozorova_alena_lab_6/image.png new file mode 100644 index 0000000000000000000000000000000000000000..65f78f31e85d348ab66d78dc2d990639292751ad GIT binary patch literal 2347 zcmV+`3Dow9P)r5~ zOpBGW(4~3_frLOpAR#ai2#k~Y_Df4Tdmwt#p%a)|79$%;!v7;wvy-IVB<&;VAW26^ zI#$vNC6DPlw3&)~gTOkHHj(sqZi3$!t`kuwtXD}8aqfSU^r0ktwtf+vX4k~|dc3r5 zX`u)xhe$fATZWP6);DK7ELus@3nX}Nczd%$u|*9 zUAya99qK+KiP$exNf0lP^rJX5da! zRJovx=>8W4<=qq^X!I-QBRYP(Kr)A_P|UO;yi6u=jp4YB`K;t^LPQ+sTeo-_n-M4c z(LGJrK9_X9S9qkEY6PD4Fwd2V6slJ|ZRi*f^(VOen7h&8%nK=VbYPQP?A!$g`fzTo z;sRU`W-R>-i3!Jopy*g3e8@~IeJavmSDDF*JYMM*8jjWL9+9Uo{Ui+o4;n$Ze*#7Yv=)g~Qk*!aFE{`Iw9qwLnO zdxZ~|w{sJF*9bD$JAq~___zGN&C3V9LDG+2J+JAZ%avpA4sA$hoo_f)+b*UvzszMt zhvn`!%k#1?va8u*4KbTp*?0TF)TWX?a-DAI>;$nWE_tgYv{Rdez+p0-uwb59Bw+>6 zets+yVF~?Ge82-U-*W0mCt01}=-nsrgm^O_v$?Pm?Xsm>u&fs{ zU)A_!MeHLNaJQ1nhdR;!@^P5J6!wu_%S`m5F1rIKeuxh`Qg}Bhc=? zvK(1^vWB_><1BO$K-@BxZA$q(_jhe67Gz%Anr`?dai&m z``t_;G-um{3C6tA4~QrMtNAbkDHKGjE`-PrGqGTW7vtlMe+gms-8dPStK)E3)atnt zztO13ShovJ$Ez=A2Fw;3;5J3f=2x3yR)Wtd4ex80XtHCKJVC@lGV$A@W3m_|$FL$? z2SNnIGwTp5f8SAu7dr$S*I`=nSu_;M8xjK>LN{&FlUWRu zRr9bSJ{7$;B1BaNfq!&YR%`%I%PGP`7 z!ezuN4--LL%MY{o*L2wZ=FCA*n%p<`KnZxWVq^w}j`~0ib^toV_8(fYEn+3k0*E+j zzmsT6kCCW8+lmMxeoWrMw;pWOk)TOvAusgQb`ZJr!2ZV-38=H@jhi$q2(5-c7ZbiP znIcvvcCT*SaaaJCI++ki2qXj&0ttcMA;1QF-l{jR7i_(egpnvA&=>-I9aogq5;k;N zmdN{buwNS1Nxu^UJwbr*jlXf9Rfo>`SsCUxmmu Date: Tue, 8 Oct 2024 23:45:00 +0400 Subject: [PATCH 2/4] + --- dozorova_alena_lab_6/.gitignore | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 dozorova_alena_lab_6/.gitignore diff --git a/dozorova_alena_lab_6/.gitignore b/dozorova_alena_lab_6/.gitignore new file mode 100644 index 0000000..0e58087 --- /dev/null +++ b/dozorova_alena_lab_6/.gitignore @@ -0,0 +1,12 @@ + +/dozorova_alena_lab_2/.vs +/dozorova_alena_lab_2/ConsoleApp1/.vs +/dozorova_alena_lab_2/ConsoleApp1/bin +/dozorova_alena_lab_2/ConsoleApp1/obj +/dozorova_alena_lab_2/ConsoleApp1/Properties/PublishProfiles +/dozorova_alena_lab_2/ConsoleApp2/.vs +/dozorova_alena_lab_2/ConsoleApp2/bin +/dozorova_alena_lab_2/ConsoleApp2/obj +/dozorova_alena_lab_6/ConsoleApp1/.vs +/dozorova_alena_lab_6/ConsoleApp1/bin +/dozorova_alena_lab_6/ConsoleApp1/obj From 022e2dc49e0d42515ac476fda71a7a09d4605be1 Mon Sep 17 00:00:00 2001 From: Zara28 Date: Tue, 8 Oct 2024 23:46:12 +0400 Subject: [PATCH 3/4] + --- .gitignore | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 0e58087..0000000 --- a/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ - -/dozorova_alena_lab_2/.vs -/dozorova_alena_lab_2/ConsoleApp1/.vs -/dozorova_alena_lab_2/ConsoleApp1/bin -/dozorova_alena_lab_2/ConsoleApp1/obj -/dozorova_alena_lab_2/ConsoleApp1/Properties/PublishProfiles -/dozorova_alena_lab_2/ConsoleApp2/.vs -/dozorova_alena_lab_2/ConsoleApp2/bin -/dozorova_alena_lab_2/ConsoleApp2/obj -/dozorova_alena_lab_6/ConsoleApp1/.vs -/dozorova_alena_lab_6/ConsoleApp1/bin -/dozorova_alena_lab_6/ConsoleApp1/obj From 9eadb70f85cfe980f59015fdb7963afc6c5bfa1d Mon Sep 17 00:00:00 2001 From: Zara28 Date: Sat, 19 Oct 2024 12:28:06 +0400 Subject: [PATCH 4/4] fix link --- dozorova_alena_lab_6/ConsoleApp1/Program.cs | 2 +- dozorova_alena_lab_6/README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dozorova_alena_lab_6/ConsoleApp1/Program.cs b/dozorova_alena_lab_6/ConsoleApp1/Program.cs index e39204a..b64687b 100644 --- a/dozorova_alena_lab_6/ConsoleApp1/Program.cs +++ b/dozorova_alena_lab_6/ConsoleApp1/Program.cs @@ -15,7 +15,7 @@ internal class Program List times = new() {}; Console.WriteLine("Для пяти потоков: "); - for (int j = 1; j <= 10; j++) + for (int j = 1; j <= 5; j++) { var sw = new Stopwatch(); sw.Start(); diff --git a/dozorova_alena_lab_6/README.md b/dozorova_alena_lab_6/README.md index 77d2d32..c72aff4 100644 --- a/dozorova_alena_lab_6/README.md +++ b/dozorova_alena_lab_6/README.md @@ -15,4 +15,4 @@ Как мы видим, подтверждаются выводы прошлой лабораторной работы: для небольших матриц выигрыш несущественнен из-за затраты времени на работу с потоком, а для больших эта разница в скорости уже существенна ## Видеодемонстрация -Видеодемонстрация по [адресу](https://drive.google.com/file/d/1LFRNbTAOzg21Du60Ehy9u6HOp9D3sKPm/view?usp=sharing) +Видеодемонстрация по [адресу](https://drive.google.com/file/d/1dOMaRcTRiPwhn2E4ok1WUOeh_dD9NyDQ/view?usp=sharing)