From a5e6a31962ab5a024432aa3eeab9e365f8522044 Mon Sep 17 00:00:00 2001 From: PioDer Date: Mon, 31 Oct 2016 12:46:45 +0100 Subject: [PATCH] inicjalizacja zad2 --- DergunPiotr-WaskoDominik/zad2/Makefile | 5 + DergunPiotr-WaskoDominik/zad2/Ttiming.h | 40 ++++++ DergunPiotr-WaskoDominik/zad2/dane/czas.jpg | Bin 0 -> 27917 bytes .../zad2/dane/przyspieszenie.jpg | Bin 0 -> 25968 bytes .../zad2/dane/wykres.gnuplot | 19 +++ DergunPiotr-WaskoDominik/zad2/dok.tex | 117 ++++++++++++++++++ DergunPiotr-WaskoDominik/zad2/macierz_mpi.cpp | 115 +++++++++++++++++ 7 files changed, 296 insertions(+) create mode 100644 DergunPiotr-WaskoDominik/zad2/Makefile create mode 100644 DergunPiotr-WaskoDominik/zad2/Ttiming.h create mode 100644 DergunPiotr-WaskoDominik/zad2/dane/czas.jpg create mode 100644 DergunPiotr-WaskoDominik/zad2/dane/przyspieszenie.jpg create mode 100644 DergunPiotr-WaskoDominik/zad2/dane/wykres.gnuplot create mode 100644 DergunPiotr-WaskoDominik/zad2/dok.tex create mode 100644 DergunPiotr-WaskoDominik/zad2/macierz_mpi.cpp diff --git a/DergunPiotr-WaskoDominik/zad2/Makefile b/DergunPiotr-WaskoDominik/zad2/Makefile new file mode 100644 index 0000000..400d486 --- /dev/null +++ b/DergunPiotr-WaskoDominik/zad2/Makefile @@ -0,0 +1,5 @@ +macierz_mpi: macierz_mpi.cpp + mpicxx -Wall -o macierz_mpi macierz_mpi.cpp + +clean: + rm -rf macierz_mpi diff --git a/DergunPiotr-WaskoDominik/zad2/Ttiming.h b/DergunPiotr-WaskoDominik/zad2/Ttiming.h new file mode 100644 index 0000000..93d6e19 --- /dev/null +++ b/DergunPiotr-WaskoDominik/zad2/Ttiming.h @@ -0,0 +1,40 @@ +#if !defined(DEF_TTIMING) +#define DEF_TTIMING +#include + +class TTiming +{ +protected: + struct timeval start; + struct timeval stop; + void getTime(timeval &tv); + +public: + TTiming(void); + + void Begin(void); + long End(void); +}; + +inline TTiming::TTiming(void) +{ + +} + +inline void TTiming::Begin(void) +{ + getTime(start); +} + +inline long TTiming::End(void) +{ + getTime(stop); + return ((stop.tv_sec-start.tv_sec) * 1000 + (stop.tv_usec-start.tv_usec)/1000.0) + 0.5; +} + +inline void TTiming::getTime(timeval &tv) +{ + gettimeofday(&tv,NULL); +} + +#endif diff --git a/DergunPiotr-WaskoDominik/zad2/dane/czas.jpg b/DergunPiotr-WaskoDominik/zad2/dane/czas.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f549aca2a87f0d441af7f5bd9edcb96060ac9d91 GIT binary patch literal 27917 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 literal 0 HcmV?d00001 diff --git a/DergunPiotr-WaskoDominik/zad2/dane/przyspieszenie.jpg b/DergunPiotr-WaskoDominik/zad2/dane/przyspieszenie.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d00fe6949690a357e4f9442d18a1ea411a5bcd9 GIT binary patch literal 25968 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 g0TZqay7hH$A*I(Cu=?Nh^-rz*e>>y +#include +#include +#include "Ttiming.h" + +using namespace std; + +void array_alloc(long **&arr, long arrsize) +{ + try + { + arr = new long* [arrsize]; + + + arr[0] = new long [arrsize*arrsize]; + + for(long i = 1; i < arrsize; ++i) + arr[i] = arr[i-1] + arrsize; + + } + catch (bad_alloc& ex) + { + cerr << "Could not allocate memory for array" << endl; + exit(1); + } +} + +void array_destroy(long **arr) +{ + delete [] arr[0]; + delete [] arr; +} + +int main(int argc, char *argv[]) +{ + long **A=NULL, **B=NULL, **C=NULL; + long rozmiar=0; + char *endptr; + int threads_num=0; + TTiming tt; + long i, j;//,k; + + if (argc < 3) + { + cerr << "Usage: " << argv[0] << " " << endl; + exit(1); + } + + rozmiar = strtol(argv[2], &endptr, 10); + + if (*endptr) + { + cerr << "Invalid array size format" << endl; + exit(1); + } + + if (rozmiar <= 0 || rozmiar > 2000) + { + cerr << "The number of matrix dimension must be in range [1,2000]" << endl; + exit(1); + } + + threads_num = strtol(argv[1], &endptr, 10); + + if (*endptr) + { + cerr << "Invalid number of threads format" << endl; + exit(1); + } + + if (threads_num <= 0) + { + cerr << "The number of threads must be positive" << endl; + exit(1); + } + + //ustawienie odpowiedniej ilosci watkow + //omp_set_num_threads(threads_num); + + //alokacja macierzy + array_alloc(A, rozmiar); + array_alloc(B, rozmiar); + array_alloc(C, rozmiar); + + //wypelnienie macierzy A liczbami "losowymi" + for (long i=0; i