1 Commits

Author SHA1 Message Date
dd2cdc1130 Lab-2 2024-01-06 23:35:43 +04:00
52 changed files with 287 additions and 498 deletions

View File

@@ -0,0 +1,2 @@
*/*/bin
*/*/obj

View File

@@ -1,7 +1,7 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
# User-specific files
*.rsuser
@@ -93,6 +93,7 @@ StyleCopReport.xml
*.tmp_proj
*_wpftmp.csproj
*.log
*.tlog
*.vspscc
*.vssscc
.builds
@@ -296,6 +297,17 @@ node_modules/
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio 6 auto-generated project file (contains which files were open etc.)
*.vbp
# Visual Studio 6 workspace and project file (working project files containing files to include in project)
*.dsw
*.dsp
# Visual Studio 6 technical files
*.ncb
*.aps
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
@@ -352,6 +364,9 @@ ASALocalRun/
# Local History for Visual Studio
.localhistory/
# Visual Studio History (VSHistory) files
.vshistory/
# BeatPulse healthcheck temp database
healthchecksdb
@@ -364,6 +379,27 @@ MigrationBackup/
# Fody - auto-generated XML schema
FodyWeavers.xsd
# VS Code files for those working on multiple tools
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
*.code-workspace
# Local History for Visual Studio Code
.history/
# Windows Installer files from build outputs
*.cab
*.msi
*.msix
*.msm
*.msp
# JetBrains Rider
*.sln.iml
##
## Visual studio for Mac
##
@@ -439,16 +475,3 @@ $RECYCLE.BIN/
# Windows shortcuts
*.lnk
# JetBrains Rider
.idea/
*.sln.iml
##
## Visual Studio Code
##
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

View File

@@ -0,0 +1,28 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "worker-1", "worker-1\worker-1.csproj", "{1B2479E1-B738-43B3-BD2E-0A8E0A72081D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "worker-2", "worker-2\worker-2.csproj", "{0F8A06E1-9249-412F-886F-8C0D24057473}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1B2479E1-B738-43B3-BD2E-0A8E0A72081D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1B2479E1-B738-43B3-BD2E-0A8E0A72081D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1B2479E1-B738-43B3-BD2E-0A8E0A72081D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1B2479E1-B738-43B3-BD2E-0A8E0A72081D}.Release|Any CPU.Build.0 = Release|Any CPU
{0F8A06E1-9249-412F-886F-8C0D24057473}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0F8A06E1-9249-412F-886F-8C0D24057473}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0F8A06E1-9249-412F-886F-8C0D24057473}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0F8A06E1-9249-412F-886F-8C0D24057473}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

View File

@@ -0,0 +1,54 @@
# Отчёт по лабораторной работе №2
Выполнил: студент гр. ИСЭбд-41 Михайлов Юрий.
Задание программы 1: Ищет в каталоге /var/data самый большой по объёму файл и перекладывает его в /var/result/data.txt.
Задание программы 2: Ищет набольшее число из файла /var/data/data.txt и сохраняет его вторую степень в /var/result/result.txt.
# Создание приложений
Создаем 2 приложения с помощью команды:
```yam
dotnet new console -o worker-1
dotnet new console -o worker-2
```
Пр№ 1: Ищет в каталоге /var/data самый большой по объёму файл и перекладывает его в /var/result/data.txt.
[Текст программы worker-1](worker-1/Program.cs)
Пр№ 2: Ищет набольшее число из файла /var/data/data.txt и сохраняет его вторую степень в /var/result/result.txt.
[Текст программы worker-2](worker-2/Program.cs)
Cоздали файл [.gitignore](.gitignore) с помощью команды dotnet new gitignore.
# Настройка окуржения
Для обеспечения взаимодействия между двумя приложениями мы применили следующий подход:
Для каждого приложения были разработаны файлы Dockerfile ([программа 1](worker-1/Dockerfile), [программа 2](worker-1/Dockerfile)) с подробным описанием процесса сборки.
Также был создан файл [docker-compose.yml](docker-compose.yml), в котором указан манифест для запуска распределённого приложения.
Также был создан файл [.dockerignore](.dockerignore) и дополнен [.gitignore](.gitignore), чтобы исключить для сборки и коммита всё лишнее.
# Сборка и запуск
В каталог ./data помещены 2 файла: another_data.txt и data.txt.
Для запуска приложения необходимо ввести команду `docker compose up --build`.
Результат запуска после сборки:
```
[+] Running 3/3
✔ Network lab_2_default Created 0.1s
✔ Container lab_2-worker-1-1 Created 0.1s
✔ Container lab_2-worker-2-1 Created 0.1s
Attaching to lab_2-worker-1-1, lab_2-worker-2-1
lab_2-worker-1-1 | Файл перемещен.
lab_2-worker-1-1 exited with code 0
lab_2-worker-2-1 | Мax число из файла: 14
lab_2-worker-2-1 | Вторая стпень Max числа: 196
lab_2-worker-2-1 exited with code 0
```
В результате 1 работы в каталоге `./result` создался файл `data.txt`.
В результате 2 работы в каталоге `./result` создался файл `result.txt` с содержимым `196`, что соответствует входным данным.

View File

@@ -0,0 +1,5 @@
10
10
10
10
10

View File

@@ -0,0 +1,14 @@
1
2
3
4
5
6
7
8
9
10
11
12
13
14

View File

@@ -0,0 +1,13 @@
version: "3.1"
services:
worker-1:
build: ./worker-1
volumes:
- ./data:/var/data
- ./result:/var/result
worker-2:
build: ./worker-2
volumes:
- ./result:/var/result
depends_on:
- worker-1

View File

@@ -0,0 +1,14 @@
1
2
3
4
5
6
7
8
9
10
11
12
13
14

View File

@@ -0,0 +1 @@
196

View File

@@ -0,0 +1,17 @@
#задаем базовый образ на .net 6.0
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
#задаем рабочую директорию
WORKDIR /app
#в каталог копируем файлы и папки в контейнер
COPY . /app
#создаем образы и устанавливаем данные пакеты в контейнер
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o /publish
FROM mcr.microsoft.com/dotnet/aspnet:6.0 as runtime
WORKDIR /publish
COPY --from=build-env /publish .
#вызываем приложение во время выполнения контейнера
ENTRYPOINT ["dotnet", "worker-1.dll"]

View File

@@ -0,0 +1,37 @@

using System;
using System.IO;
using System.Text;
string[] files = Directory.GetFiles("../var/data");
string maxFilePath = "";
long maxFileSize = 0;
foreach (var filePath in files)
{
FileInfo fileInfo = new FileInfo(filePath);
if (fileInfo.Length > maxFileSize)
{
maxFileSize = fileInfo.Length;
maxFilePath = filePath;
}
}
using (FileStream sourceStream = File.OpenRead(maxFilePath))
{
byte[] buffer = new byte[sourceStream.Length];
await sourceStream.ReadAsync(buffer, 0, buffer.Length);
string text = Encoding.Default.GetString(buffer);
using (FileStream targetStream = new FileStream("../var/result/data.txt", FileMode.OpenOrCreate))
{
targetStream.SetLength(0);
byte[] textBytes = Encoding.Default.GetBytes(text);
await targetStream.WriteAsync(textBytes, 0, textBytes.Length);
}
}
Console.WriteLine("Файл перемещен.");

View File

@@ -1,8 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>worker_1</RootNamespace>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

View File

@@ -0,0 +1,17 @@
#задаем базовый образ на .net 6.0
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
#задаем рабочую директорию
WORKDIR /src
#в каталог копируем файлы и папки в контейнер
COPY . ./
#создаем образы и устанавливаем данные пакеты в контейнер
RUN dotnet restore
COPY . .
RUN dotnet publish -c Release -o /publish
FROM mcr.microsoft.com/dotnet/aspnet:6.0 as runtime
WORKDIR /publish
COPY --from=build-env /publish .
#вызываем приложение во время выполнения контейнера
ENTRYPOINT ["dotnet", "worker-2.dll"]

View File

@@ -0,0 +1,34 @@
 using System;
using System.IO;
using System.Text;
string[] numbers;
using (FileStream fstream = File.OpenRead("/var/result/data.txt"))
{
byte[] buffer = new byte[fstream.Length];
await fstream.ReadAsync(buffer, 0, buffer.Length);
string text = Encoding.Default.GetString(buffer);
text = text.Replace("\r\n", ";");
numbers = text.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
}
int maxNumber = int.MinValue;
foreach (var number in numbers)
{
int currentNumber = Convert.ToInt32(number);
if (currentNumber > maxNumber)
{
maxNumber = currentNumber;
}
}
int maxNumberSquared = maxNumber * maxNumber;
using (FileStream fstream = new FileStream("/var/result/result.txt", FileMode.OpenOrCreate))
{
byte[] buffer = Encoding.Default.GetBytes(maxNumberSquared.ToString());
await fstream.WriteAsync(buffer, 0, buffer.Length);
}
Console.WriteLine("Мax число из файла: " + maxNumber);
Console.WriteLine("Вторая степень Max числа: " + maxNumberSquared);

View File

@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<RootNamespace>worker_2</RootNamespace>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View File

@@ -1,25 +0,0 @@

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}") = "ConsoleApp6", "ConsoleApp6\ConsoleApp6.csproj", "{1AE4DE27-ADC3-42DB-837D-862183B51360}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1AE4DE27-ADC3-42DB-837D-862183B51360}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1AE4DE27-ADC3-42DB-837D-862183B51360}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1AE4DE27-ADC3-42DB-837D-862183B51360}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1AE4DE27-ADC3-42DB-837D-862183B51360}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3B908C05-4E83-4046-8B57-2D4306F9FFC3}
EndGlobalSection
EndGlobal

View File

@@ -1,168 +0,0 @@
using System;
using System.Diagnostics;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("2 - Бенчмарки");
string userChoice = Console.ReadLine();
if (userChoice == "1")
{
// Task 1: Calculate determinant
}
else if (userChoice == "2")
{
int numberOfThreads = GetNumberOfThreads(); // Get the number of threads from the user
Console.WriteLine("\n Вычисление матрицы с размером 10*10:");
RunDeterminantBenchmark(10, numberOfThreads);
Console.ReadLine();
}
else
{
Console.WriteLine("Invalid choice.");
Console.WriteLine("\nPress Enter to return to the main menu...");
Console.ReadLine();
}
Console.ReadLine();
}
static void RunDeterminantBenchmark(int matrixSize, int numberOfThreads)
{
int[,] randomMatrix = GenerateRandomMatrix(matrixSize);
Console.WriteLine("Матрица:");
PrintMatrix(randomMatrix);
Stopwatch stopwatch = Stopwatch.StartNew();
stopwatch.Restart();
double sequentialDeterminant = CalculateDeterminantSequential(randomMatrix);
stopwatch.Stop();
Console.WriteLine($"Обычный: детерминант = {sequentialDeterminant}, время = {stopwatch.Elapsed.TotalSeconds} с");
stopwatch.Restart();
double parallelDeterminant = CalculateDeterminantParallel(randomMatrix, numberOfThreads);
stopwatch.Stop();
Console.WriteLine($"Параллельный: детерминант = {parallelDeterminant}, время = {stopwatch.Elapsed.TotalSeconds} с");
}
static int[,] GenerateRandomMatrix(int size)
{
Random random = new Random();
int[,] matrix = new int[size, size];
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
matrix[i, j] = random.Next(10);
}
}
return matrix;
}
static double CalculateDeterminantSequential(int[,] matrix)
{
int size = matrix.GetLength(0);
double determinant = 0;
if (size == 1)
{
determinant = matrix[0, 0];
}
else if (size == 2)
{
determinant = matrix[0, 0] * matrix[1, 1] - matrix[0, 1] * matrix[1, 0];
}
else
{
for (int j = 0; j < size; j++)
{
determinant += matrix[0, j] * CalculateMinor(matrix, 0, j) * Math.Pow(-1, j);
}
}
return determinant;
}
static double CalculateDeterminantParallel(int[,] matrix, int threads)
{
int size = matrix.GetLength(0);
double determinant = 0;
if (size == 1)
{
determinant = matrix[0, 0];
}
else if (size == 2)
{
determinant = matrix[0, 0] * matrix[1, 1] - matrix[0, 1] * matrix[1, 0];
}
else
{
Parallel.For(0, size, new ParallelOptions { MaxDegreeOfParallelism = threads }, j =>
{
determinant += matrix[0, j] * CalculateMinor(matrix, 0, j) * Math.Pow(-1, j);
});
}
return determinant;
}
static double CalculateMinor(int[,] matrix, int row, int col)
{
int size = matrix.GetLength(0);
int[,] minor = new int[size - 1, size - 1];
int minorRow = 0;
for (int i = 0; i < size; i++)
{
if (i == row)
{
continue;
}
int minorCol = 0;
for (int j = 0; j < size; j++)
{
if (j == col)
{
continue;
}
minor[minorRow, minorCol] = matrix[i, j];
minorCol++;
}
minorRow++;
}
return CalculateDeterminantSequential(minor);
}
static int GetNumberOfThreads()
{
int threads = 1;
Console.WriteLine("Кол-во потоков:");
int.TryParse(Console.ReadLine(), out threads);
return threads;
}
static void PrintMatrix(int[,] matrix)
{
int size = matrix.GetLength(0);
for (int i = 0; i < size; i++)
{
for (int j = 0; j < size; j++)
{
Console.Write(matrix[i, j] + " ");
}
Console.WriteLine();
}
}
}

View File

@@ -1,23 +0,0 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"ConsoleApp6/1.0.0": {
"runtime": {
"ConsoleApp6.dll": {}
}
}
}
},
"libraries": {
"ConsoleApp6/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

View File

@@ -1,12 +0,0 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

@@ -1,63 +0,0 @@
{
"format": 1,
"restore": {
"C:\\Users\\Tatyana\\source\\repos\\ConsoleApp6\\ConsoleApp6\\ConsoleApp6.csproj": {}
},
"projects": {
"C:\\Users\\Tatyana\\source\\repos\\ConsoleApp6\\ConsoleApp6\\ConsoleApp6.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Tatyana\\source\\repos\\ConsoleApp6\\ConsoleApp6\\ConsoleApp6.csproj",
"projectName": "ConsoleApp6",
"projectPath": "C:\\Users\\Tatyana\\source\\repos\\ConsoleApp6\\ConsoleApp6\\ConsoleApp6.csproj",
"packagesPath": "C:\\Users\\Tatyana\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Tatyana\\source\\repos\\ConsoleApp6\\ConsoleApp6\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\Tatyana\\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"
}
}
}
}
}

View File

@@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Tatyana\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.8.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Tatyana\.nuget\packages\" />
</ItemGroup>
</Project>

View File

@@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View File

@@ -1,4 +0,0 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]

View File

@@ -1,23 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:4.0.30319.42000
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("ConsoleApp6")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("ConsoleApp6")]
[assembly: System.Reflection.AssemblyTitleAttribute("ConsoleApp6")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Создано классом WriteCodeFragment MSBuild.

View File

@@ -1 +0,0 @@
f23481016d3380d0d4750dc1e45f677b98f6d4677ac41689712fd0c1fd55cde2

View File

@@ -1,13 +0,0 @@
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 = ConsoleApp6
build_property.ProjectDir = C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =

View File

@@ -1,8 +0,0 @@
// <auto-generated/>
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;

View File

@@ -1 +0,0 @@
4c5de4fd67998654cd626614b028fea91266d4895705b1ee4eabccf619f0753e

View File

@@ -1,14 +0,0 @@
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\bin\Debug\net8.0\ConsoleApp6.exe
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\bin\Debug\net8.0\ConsoleApp6.deps.json
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\bin\Debug\net8.0\ConsoleApp6.runtimeconfig.json
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\bin\Debug\net8.0\ConsoleApp6.dll
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\bin\Debug\net8.0\ConsoleApp6.pdb
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\obj\Debug\net8.0\ConsoleApp6.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\obj\Debug\net8.0\ConsoleApp6.AssemblyInfoInputs.cache
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\obj\Debug\net8.0\ConsoleApp6.AssemblyInfo.cs
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\obj\Debug\net8.0\ConsoleApp6.csproj.CoreCompileInputs.cache
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\obj\Debug\net8.0\ConsoleApp6.dll
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\obj\Debug\net8.0\refint\ConsoleApp6.dll
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\obj\Debug\net8.0\ConsoleApp6.pdb
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\obj\Debug\net8.0\ConsoleApp6.genruntimeconfig.cache
C:\Users\Tatyana\source\repos\ConsoleApp6\ConsoleApp6\obj\Debug\net8.0\ref\ConsoleApp6.dll

View File

@@ -1 +0,0 @@
2de51abf9d07bee742c3db58e1df461b7e84e5c9ed223dc5d9ffd3c33409f56b

View File

@@ -1,68 +0,0 @@
{
"version": 3,
"targets": {
"net8.0": {}
},
"libraries": {},
"projectFileDependencyGroups": {
"net8.0": []
},
"packageFolders": {
"C:\\Users\\Tatyana\\.nuget\\packages\\": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\Tatyana\\source\\repos\\ConsoleApp6\\ConsoleApp6\\ConsoleApp6.csproj",
"projectName": "ConsoleApp6",
"projectPath": "C:\\Users\\Tatyana\\source\\repos\\ConsoleApp6\\ConsoleApp6\\ConsoleApp6.csproj",
"packagesPath": "C:\\Users\\Tatyana\\.nuget\\packages\\",
"outputPath": "C:\\Users\\Tatyana\\source\\repos\\ConsoleApp6\\ConsoleApp6\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\Tatyana\\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"
}
}
}
}

View File

@@ -1,8 +0,0 @@
{
"version": 2,
"dgSpecHash": "MFa/OovR2j96Iv1x1Dc0aNjMP4lKdd0L3ONfsvikTrtTeIibj6jpCD+fWr7PUFgtJ2TcL8gcr6q4l/SaNsH4Nw==",
"success": true,
"projectFilePath": "C:\\Users\\Tatyana\\source\\repos\\ConsoleApp6\\ConsoleApp6\\ConsoleApp6.csproj",
"expectedPackageFiles": [],
"logs": []
}

View File

@@ -1,33 +0,0 @@
# Отчёт по лабораторной работе №6
Выполнил: студент гр. ИСЭбд-41 Михайлов Юрий.
## Создание приложения
Выбран язык C#.
Запустим алгоритм с матрицей 10x10 c различными алгоритмами.
![](picture/1.png)
## Бенчмарки
Протекстируем обычный и паралелльный с различными размерами матриц.
Матрица 3х3
![](picture/2.png)
Матрица 5х5
![](picture/3.png)
Матрица 10х10
![](picture/1.png)
Вывод: Скоростные возможности параллельного алгоритма проявляются только при значительном количестве операций. В случае, если операций меньше, стандартный алгоритм может оказаться более быстрым.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB