package main import ( "fmt" "strconv" "time" "zhimolostnova_anna_lab_6/alg" "zhimolostnova_anna_lab_6/util" ) // Функция для бенчмарка последовательного вычисления детерминанта func benchmarkDeterminantSequential(sizes []int) { for _, size := range sizes { matrix := util.GenerateMatrix(size) start := time.Now() _ = alg.Determinant(matrix) elapsed := time.Since(start) fmt.Printf("Sequential determinant of matrix %sx%s took %s\n", strconv.Itoa(size), strconv.Itoa(size), elapsed) } } // Функция для бенчмарка параллельного вычисления детерминанта func benchmarkDeterminantParallel(sizes []int, threadsList []int) { for _, size := range sizes { for _, threads := range threadsList { matrix := util.GenerateMatrix(size) start := time.Now() _ = alg.DeterminantParallel(matrix, threads) elapsed := time.Since(start) fmt.Printf("Parallel determinant of matrix %sx%s with %d threads took %s\n", strconv.Itoa(size), strconv.Itoa(size), threads, elapsed) } } } func main() { // Список размерностей матриц sizes := []int{7, 8, 9} // Список количества потоков для тестирования threadsList := []int{2, 4, 6, 8} // Запуск бенчмарков fmt.Println("Sequential Benchmark:") benchmarkDeterminantSequential(sizes) fmt.Println("\nParallel Benchmark:") benchmarkDeterminantParallel(sizes, threadsList) }