SciFEM_Schratter/ex5/ex5_4/main.cpp

84 lines
2.3 KiB
C++

#include "benchmark_tests.h"
#include <iostream>
#include <cmath>
int main()
{
vector<vector<double>> results_scalar;
results_scalar.push_back(test_A(2000000, pow(10,3)));
results_scalar.push_back(test_A(1000000, pow(10,4)));
results_scalar.push_back(test_A(100000, pow(10,5)));
results_scalar.push_back(test_A(10000, pow(10,6)));
results_scalar.push_back(test_A(750, pow(10,7)));
results_scalar.push_back(test_A(125, pow(10,8)));
vector<vector<double>> results_sum;
results_sum.push_back(test_A_sum(3000000, pow(10,3)));
results_sum.push_back(test_A_sum(2000000, pow(10,4)));
results_sum.push_back(test_A_sum(1000000, pow(10,5)));
results_sum.push_back(test_A_sum(50000, pow(10,6)));
results_sum.push_back(test_A_sum(2000, pow(10,7)));
results_sum.push_back(test_A_sum(250, pow(10,8)));
test_B(100, 20000, 10000);
test_C(25, 500, 1000, 1500);
test_D(100, 100, 1000000);
cout << endl << "###### Scalar ######" << endl;
cout << "Timing\tGFLOPS\tGiByte/s" << endl;
cout << "------------------------------" << endl;
for (size_t i = 0; i < results_scalar.size(); ++i)
cout << results_scalar[i][0] << "\t" << results_scalar[i][1] << "\t" << results_scalar[i][2] << endl;
cout << endl << "###### Sum ######" << endl;
cout << "Timing\tGFLOPS\tGiByte/s" << endl;
cout << "------------------------------" << endl;
for (size_t i = 0; i < results_sum.size(); ++i)
cout << results_sum[i][0] << "\t" << results_sum[i][1] << "\t" << results_sum[i][2] << endl;
// ###### Scalar ######
// Timing GFLOPS GiByte/s
// ------------------------------
// 3.4e-06 0.54 4.3
// 4.6e-06 4 32
// 1.6e-05 12 95
// 0.0011 1.7 13
// 0.0097 1.9 15
// 0.075 2.5 20
// ###### Sum ######
// Timing GFLOPS GiByte/s
// ------------------------------
// 5.5e-06 0.17 1.3
// 5.4e-06 1.7 14
// 1.5e-05 6.1 49
// 0.00013 7.2 57
// 0.0033 2.8 23
// 0.032 2.9 23
// ######### NOT PARALLEL (from exercise sheet 2) #########
// Timing GFLOPS GiByte/s
// ----------------------------------
// (A) 0.038 2.5 20
// (B) 0.13 2.9 23
// (C) 0.44 3.2 25
// (D) 0.19 1.5 12
return 0;
}