From 530278c91412d46f258626112687bc5c993dfac7 Mon Sep 17 00:00:00 2001 From: Safinskiy Date: Fri, 16 Sep 2016 16:10:08 +0300 Subject: [PATCH] Test_result --- math.cpp | 36 ++++++++++++++++++++++++++++++++++++ openmp.cpp | 35 ++++++++++++++++++++++++++++++++--- 2 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 math.cpp diff --git a/math.cpp b/math.cpp new file mode 100644 index 0000000..9f03969 --- /dev/null +++ b/math.cpp @@ -0,0 +1,36 @@ +#include +#include +#include +#include +#include +#include +#include +#include + + +double funct(double x) +{ + return 4/(1+x*x); +}; + + +double summ(int n) +{ + double s; + #pragma omp parallel for + for(int i = 0; i <= n; i++) + s += funct((i - 0.5)/n); + return s; +}; + +int main (int argc, char ** argv) +{ + + int n = 102432; + double result = (1 / double(n)) * summ(n); + std::cout << result << std::endl; + +}; + + + diff --git a/openmp.cpp b/openmp.cpp index ac42f84..6ca6979 100644 --- a/openmp.cpp +++ b/openmp.cpp @@ -5,25 +5,54 @@ #include #include #include +#include //Matrix multiplication int main(int argc, char *argv[]) { - int n = 1024; + + int n = 1024; + time_t start, end; std::vector a(n*n); std::vector b(n*n); std::vector c(n*n, 0.); + + time (&start); + + std::srand(std::time(0)); + std::generate(a.begin(), a.end(), std::rand); + std::generate(b.begin(), b.end(), std::rand); + + + for(int i = 0; i < n; ++i) + for(int j = 0; j < n; ++j) + for(int k = 0; k < n; ++k) + c[i*n + j] += a[i*n + k] * b[k*n + j]; + + time (&end); + + double tim = difftime (end,start); + ::cout << tim << std::endl; + + + time (&start); + std::srand(std::time(0)); std::generate(a.begin(), a.end(), std::rand); std::generate(b.begin(), b.end(), std::rand); + #pragma omp parallel for for(int i = 0; i < n; ++i) for(int j = 0; j < n; ++j) for(int k = 0; k < n; ++k) c[i*n + j] += a[i*n + k] * b[k*n + j]; - - return 0; + + time (&end); + + tim = difftime (end,start); + std::cout << tim << std::endl; + }