Excercises_GeorgMandl/Sheet_5/bsp_5_4/main.cpp
2025-12-10 17:13:48 +01:00

47 lines
1.3 KiB
C++

#include "bsp_3_lib_bench_par.h"
#include <cmath>
#include <iostream>
using namespace std;
int main()
{
benchmark_B(8000,8000,400);
benchmark_B_par(8000,8000,400);
benchmark_C(4000,4000,4000,1);
benchmark_C_par(4000,4000,4000,1);
benchmark_D(1e4,1e5,15);
benchmark_D_par(1e4,1e5,15);
// comparing the time for sum and inner product with and without parallelization
cout << "\nComparing the runtime (in sec) for inner product and sum with and without parallelization\n\n";
for(int k=3; k<=8; ++k)
{
int N = pow(10,k);
cout << "k = " << k << " N = " << N << endl;
vector<double> v1(N,1.0/N);
vector<double> v2(N,N);
auto tstart = omp_get_wtime();
double s = scalar(v1, v2);
auto t_diff_scalar = omp_get_wtime() - tstart;
tstart = omp_get_wtime();
double sp = scalar_par(v1, v2);
auto t_diff_scalar_par = omp_get_wtime() - tstart;
tstart = omp_get_wtime();
double su = sum(v1);
auto t_diff_sum = omp_get_wtime() - tstart;
tstart = omp_get_wtime();
double sup = sum_par(v1);
auto t_diff_sum_par = omp_get_wtime() - tstart;
cout << "sum " << t_diff_sum << " inner_prod " << t_diff_scalar << endl;
cout << "sum_par " << t_diff_sum_par << " inner_prod_par " << t_diff_scalar_par << endl << endl;;
}
return 0;
}