47 lines
1.3 KiB
C++
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;
|
|
}
|