36 lines
1.5 KiB
C#
36 lines
1.5 KiB
C#
|
using rvip_5;
|
|||
|
using System.Diagnostics;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
public class Benchmark
|
|||
|
{
|
|||
|
public static void Main(string[] args)
|
|||
|
{
|
|||
|
int[] matrixSizes = { 100, 300, 500 };
|
|||
|
int[] threadCounts = { 1, 2, 4, 8, 16 };
|
|||
|
|
|||
|
foreach (int size in matrixSizes)
|
|||
|
{
|
|||
|
Console.WriteLine($"Размер матрицы: {size}x{size}");
|
|||
|
Matrix matrixA = new Matrix(size);
|
|||
|
Matrix matrixB = new Matrix(size);
|
|||
|
|
|||
|
Console.WriteLine("Бенчмаркинг последовательного алгоритма...");
|
|||
|
Stopwatch stopwatchSequential = Stopwatch.StartNew();
|
|||
|
matrixA.MultiplySequential(matrixB);
|
|||
|
stopwatchSequential.Stop();
|
|||
|
Console.WriteLine($"Время выполнения последовательного алгоритма: {stopwatchSequential.ElapsedMilliseconds} мс");
|
|||
|
|
|||
|
Console.WriteLine("Бенчмаркинг параллельного алгоритма...");
|
|||
|
foreach (int threads in threadCounts)
|
|||
|
{
|
|||
|
Stopwatch stopwatchParallel = Stopwatch.StartNew();
|
|||
|
matrixA.MultiplyParallel(matrixB, threads);
|
|||
|
stopwatchParallel.Stop();
|
|||
|
Console.WriteLine($"Время выполнения параллельного алгоритма ({threads} потоков): {stopwatchParallel.ElapsedMilliseconds} мс");
|
|||
|
}
|
|||
|
Console.WriteLine("-----------------------------");
|
|||
|
}
|
|||
|
Console.ReadKey();
|
|||
|
}
|
|||
|
}
|