diff --git a/DergunPiotr-WaskoDominik/zad2/dane/czas.jpg b/DergunPiotr-WaskoDominik/zad2/dane/czas.jpg index 34b3b73..589e261 100644 Binary files a/DergunPiotr-WaskoDominik/zad2/dane/czas.jpg and b/DergunPiotr-WaskoDominik/zad2/dane/czas.jpg differ diff --git a/DergunPiotr-WaskoDominik/zad2/dane/przyspieszenie.jpg b/DergunPiotr-WaskoDominik/zad2/dane/przyspieszenie.jpg index b8b00ea..78abfb3 100644 Binary files a/DergunPiotr-WaskoDominik/zad2/dane/przyspieszenie.jpg and b/DergunPiotr-WaskoDominik/zad2/dane/przyspieszenie.jpg differ diff --git a/DergunPiotr-WaskoDominik/zad2/dane/wykres.gnuplot b/DergunPiotr-WaskoDominik/zad2/dane/wykres.gnuplot index 5beba86..29cbb83 100644 --- a/DergunPiotr-WaskoDominik/zad2/dane/wykres.gnuplot +++ b/DergunPiotr-WaskoDominik/zad2/dane/wykres.gnuplot @@ -1,7 +1,7 @@ #set terminal x11 set terminal jpeg -set xrange [0:16] -set yrange [0:6] +set xrange [0:25] +set yrange [0:10] set xlabel "Liczba watkow [n]" set ylabel "Przyspieszenie [n]" @@ -13,7 +13,7 @@ plot \ set out "czas.jpg" set ylabel "Czas obliczen [ms]" -set yrange [0:16000] +set yrange [0:21000] plot \ "wyniki.txt" using 1:2 with points ls 3 lc rgb "red" title "czas", \ "wyniki.txt" using 1:2 with lines ls 3 lc rgb "blue" notitle \ No newline at end of file diff --git a/DergunPiotr-WaskoDominik/zad2/macierz_mpi.cpp b/DergunPiotr-WaskoDominik/zad2/macierz_mpi.cpp index 033b3e6..ff16bef 100644 --- a/DergunPiotr-WaskoDominik/zad2/macierz_mpi.cpp +++ b/DergunPiotr-WaskoDominik/zad2/macierz_mpi.cpp @@ -37,15 +37,9 @@ void vect_alloc(long *&arr, long arrsize) } } -void array_destroy(long **arr) -{ - delete [] arr[0]; - delete [] arr; -} - int main(int argc, char *argv[]) { - long **A=NULL, **B=NULL, **C=NULL, *B_rot=NULL, *vect=NULL, *vect_c=NULL, *C_rot=NULL; + long **A=NULL, **B=NULL, *B_rot=NULL, *vect=NULL, *vect_c=NULL, *C_rot=NULL; long rozmiar=0, porcja_new=0, buff_max=0; char *endptr; TTiming tt; @@ -102,7 +96,6 @@ int main(int argc, char *argv[]) if (taskid == 0) vect_alloc(C_rot, ntasks*buff_max); - array_alloc(C, rozmiar); vect_alloc(vect, porcja); vect_alloc(vect_c, buff_max); if (taskid == 0) @@ -110,14 +103,14 @@ int main(int argc, char *argv[]) // wypełnienie macierzy A liczbami "losowymi" for (long i=0; i=ntasks) ? 0 : ntasks-rozmiar); + MPI::COMM_WORLD.Scatter(&B_rot[0], porcja, MPI::LONG, &vect[0], porcja, MPI::LONG, 0); // // część licząca --------------------------------------------------------------------------------- @@ -178,23 +165,6 @@ int main(int argc, char *argv[]) // zwróć wszystko do programu głównego MPI::COMM_WORLD.Gather(&vect_c[0], buff_max, MPI::LONG, &C_rot[0], buff_max, MPI::LONG, 0); - - if (taskid == 0 && false) - { - for (i=0; i