From 78e7907d976df77c0359e7ddc4b19449a7ac4698 Mon Sep 17 00:00:00 2001 From: Claudio Scheer Date: Thu, 15 Oct 2020 13:30:38 -0300 Subject: [PATCH] Bubble sort plots --- .../scripts/bubble-sort-speedup-efficiency.gp | 21 ++++++++ .../bubble-sort-speedup-efficiency.pdf | Bin 0 -> 12416 bytes master-slave/logs/scripts/bubble-sort-time.gp | 25 ++++++++++ .../logs/scripts/bubble-sort-time.pdf | Bin 0 -> 25813 bytes master-slave/logs/scripts/bubble-sort.dat | 15 ++++++ master-slave/logs/scripts/create-dataset.sh | 46 +++++++++++++++--- .../linear-regression-speedup-efficiency.gp | 10 ++-- .../linear-regression-speedup-efficiency.pdf | Bin 11216 -> 12630 bytes .../logs/scripts/linear-regression-time.gp | 8 +-- .../logs/scripts/linear-regression-time.pdf | Bin 59768 -> 60424 bytes .../logs/scripts/linear-regression.dat | 4 +- 11 files changed, 111 insertions(+), 18 deletions(-) create mode 100644 master-slave/logs/scripts/bubble-sort-speedup-efficiency.gp create mode 100644 master-slave/logs/scripts/bubble-sort-speedup-efficiency.pdf create mode 100644 master-slave/logs/scripts/bubble-sort-time.gp create mode 100644 master-slave/logs/scripts/bubble-sort-time.pdf create mode 100644 master-slave/logs/scripts/bubble-sort.dat diff --git a/master-slave/logs/scripts/bubble-sort-speedup-efficiency.gp b/master-slave/logs/scripts/bubble-sort-speedup-efficiency.gp new file mode 100644 index 0000000..c879956 --- /dev/null +++ b/master-slave/logs/scripts/bubble-sort-speedup-efficiency.gp @@ -0,0 +1,21 @@ +reset + +set terminal pdf enhanced +set output "bubble-sort-speedup-efficiency.pdf" + +set title "Bubble Sort: Speedup x Efficiency" offset 0,-.5 +set xlabel "Number Workers" +set ylabel "Speedup" +set y2label "Efficiency" + +set key box +set key autotitle columnheader +set key samplen 3 spacing 1 font ",9" + +set grid + +set y2tics +set auto x + +plot "bubble-sort.dat" every ::1 using 0:6:xticlabels(1) title col with linespoints linewidth 1 linecolor "#00c000" pointtype 3 pointsize .5, \ + "bubble-sort.dat" every ::1 using 0:7:xticlabels(1) title col with linespoints axes x1y2 linewidth 1 linecolor "#e69f00" pointtype 5 pointsize .3 diff --git a/master-slave/logs/scripts/bubble-sort-speedup-efficiency.pdf b/master-slave/logs/scripts/bubble-sort-speedup-efficiency.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d40cbb0e9ae0d53f92558c98b1e114ad6139becc GIT binary patch literal 12416 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 literal 0 HcmV?d00001 diff --git a/master-slave/logs/scripts/bubble-sort-time.gp b/master-slave/logs/scripts/bubble-sort-time.gp new file mode 100644 index 0000000..089c63b --- /dev/null +++ b/master-slave/logs/scripts/bubble-sort-time.gp @@ -0,0 +1,25 @@ +reset + +set terminal pdf enhanced +set output "bubble-sort-time.pdf" + +set title "Bubble Sort: Execution Time x Efficiency" offset 0,-.5 +set xlabel "Number Workers" +set ylabel "Execution Time (s)" +set y2label "Efficiency" + +set key box +set key outside top center vertical maxrows 2 maxcols 6 +set key autotitle columnheader +set key samplen 3 spacing 1 font ",9" + +set grid +set style data histogram +set style histogram cluster gap 2 errorbars linewidth 1 + +set y2tics +set auto x + +plot "bubble-sort.dat" using 2:3:xticlabels(1) title col linewidth 2 linecolor "#ff0000" fillstyle pattern 1, \ + "bubble-sort.dat" using 4:5:xticlabels(1) title col linewidth 2 linecolor "#8b0000" fillstyle pattern 6, \ + "bubble-sort.dat" using 0:7 title col with linespoints axes x1y2 linewidth 1 linecolor "#e69f00" pointtype 5 pointsize .3 diff --git a/master-slave/logs/scripts/bubble-sort-time.pdf b/master-slave/logs/scripts/bubble-sort-time.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8a69937b796feaf660455d99d11e53f59c1627e0 GIT binary patch literal 25813 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 KCW&j3xc?s#xiF>x literal 0 HcmV?d00001 diff --git a/master-slave/logs/scripts/bubble-sort.dat b/master-slave/logs/scripts/bubble-sort.dat new file mode 100644 index 0000000..0d89789 --- /dev/null +++ b/master-slave/logs/scripts/bubble-sort.dat @@ -0,0 +1,15 @@ +np Sequential Sequential_std MPI MPI_std Speedup Efficiency +seq. 352.503 0.1455632737563532 0 0 1 1 +2 0 0 352.548 0.09614918963084468 .99987235 .49993617 +4 0 0 117.73133333333334 0.04404795366667894 2.99413070 .74853267 +6 0 0 70.65650000000001 0.04099691045269844 4.98896775 .83149462 +8 0 0 50.43833333333333 0.005230891149910803 6.98879159 .87359894 +10 0 0 39.47280000000001 0.010266774891205208 8.93027603 .89302760 +12 0 0 32.1264 0.009140386570964986 10.97237785 .91436482 +14 0 0 30.57636666666667 0.12475154864324783 11.52860978 .82347212 +16 0 0 28.713700000000003 0.43468407684969024 12.27647429 .76727964 +18 0 0 26.900599999999997 0.5072294221224417 13.10390846 .72799491 +20 0 0 25.78746666666667 0.27428537855468876 13.66954748 .68347737 +22 0 0 24.5519 0.29837165861835235 14.35746316 .65261196 +24 0 0 23.341799999999996 0.01289056502511259 15.10179163 .62924131 +48 0 0 23.454200000000004 0.1954809624149283 15.02941903 .31311289 diff --git a/master-slave/logs/scripts/create-dataset.sh b/master-slave/logs/scripts/create-dataset.sh index ddbcd78..ed1c9e2 100755 --- a/master-slave/logs/scripts/create-dataset.sh +++ b/master-slave/logs/scripts/create-dataset.sh @@ -5,24 +5,23 @@ get_mean_std() { } script_dir=$(dirname "$0") -n=3 + +## LINEAR REGRESSION ## linear_regression_dat_path=$script_dir/linear-regression.dat rm $linear_regression_dat_path -echo "np Sequential Sequential_std Grain-10000 10000_std Grain-100000 100000_std Grain-500000 500000_std Grain-1000000 1000000_std mean_time Speedup Efficiency" >> $linear_regression_dat_path - +echo "np Sequential Sequential_std Grain-10000 10000_std Grain-100000 100000_std Grain-500000 500000_std Grain-1000000 1000000_std mean_time_grains Speedup Efficiency" >> $linear_regression_dat_path file=$script_dir/../linear-regression/sequential-*.txt total_time=$(cat $file | grep -P "Time\slinear\sregression\s\(s\):" | grep -Po "[0-9]+[.][0-9]+" | get_mean_std) +sequential_time=$(echo $total_time | awk '{ print $1 }') row="seq. " for element in $total_time; do row="$row$element " done -row="$row 0 0 0 0 0 0 0 0 0 0 0" +row="$row 0 0 0 0 0 0 0 0 $sequential_time 1 1" echo $row >> $linear_regression_dat_path -sequential_time=$(echo $total_time | awk '{ print $1 }') - processes=($(seq 2 2 24) 48) for np in "${processes[@]}"; do time_grain=0 @@ -39,6 +38,39 @@ for np in "${processes[@]}"; do time_grain=$(echo "scale=8; $time_grain / 4" | bc -l) speedup=$(echo "scale=8; $sequential_time / $time_grain" | bc -l) efficiency=$(echo "scale=8; $speedup / $np" | bc -l) - row="$row$time_grain $speedup $efficiency " + row="$row$time_grain $speedup $efficiency" echo $row >> $linear_regression_dat_path done +## LINEAR REGRESSION ## + +## BUBBLE SORT ## +bubble_sort_dat_path=$script_dir/bubble-sort.dat +rm $bubble_sort_dat_path + +echo "np Sequential Sequential_std MPI MPI_std Speedup Efficiency" >> $bubble_sort_dat_path + +file=$script_dir/../bubble-sort/sequential-*.txt +total_time=$(cat $file | grep -P "Time\ssort\s\(s\):" | grep -Po "[0-9]+[.][0-9]+" | get_mean_std) +sequential_time=$(echo $total_time | awk '{ print $1 }') +row="seq. " +for element in $total_time; do + row="$row$element " +done +row="$row 0 0 1 1" +echo $row >> $bubble_sort_dat_path + +processes=($(seq 2 2 24) 48) +for np in "${processes[@]}"; do + row="$np 0 0 " + file=$script_dir/../bubble-sort/mpi-$np-*.txt + total_time=$(cat $file | grep -P "Time\ssort\s\(s\):" | grep -Po "[0-9]+[.][0-9]+" | get_mean_std) + for element in $total_time; do + row="$row$element " + done + t=$(echo $total_time | awk '{ print $1 }') + speedup=$(echo "scale=8; $sequential_time / $t" | bc -l) + efficiency=$(echo "scale=8; $speedup / $np" | bc -l) + row="$row$speedup $efficiency" + echo $row >> $bubble_sort_dat_path +done +## BUBBLE SORT ## diff --git a/master-slave/logs/scripts/linear-regression-speedup-efficiency.gp b/master-slave/logs/scripts/linear-regression-speedup-efficiency.gp index 81bc3d5..9f65e93 100644 --- a/master-slave/logs/scripts/linear-regression-speedup-efficiency.gp +++ b/master-slave/logs/scripts/linear-regression-speedup-efficiency.gp @@ -3,19 +3,19 @@ reset set terminal pdf enhanced set output "linear-regression-speedup-efficiency.pdf" -set title "Linear Regression Speedup and Efficiency" offset 0,-.5 +set title "Linear Regression: Speedup x Efficiency" offset 0,-.5 set xlabel "Number Workers" set ylabel "Speedup" set y2label "Efficiency" set key box -set key outside top center vertical maxrows 2 maxcols 6 set key autotitle columnheader set key samplen 3 spacing 1 font ",9" -set y2tics +set grid +set y2tics set auto x -plot "linear-regression.dat" using 0:13 title col linewidth 1 linecolor "yellow" with lines, \ - "linear-regression.dat" using 0:14 title col linewidth 1 linecolor "red" with lines axes x1y2 +plot "linear-regression.dat" every ::1 using 0:13:xticlabels(1) title col with linespoints linewidth 1 linecolor "#00c000" pointtype 3 pointsize .5, \ + "linear-regression.dat" every ::1 using 0:14:xticlabels(1) title col with linespoints axes x1y2 linewidth 1 linecolor "#e69f00" pointtype 5 pointsize .3 diff --git a/master-slave/logs/scripts/linear-regression-speedup-efficiency.pdf b/master-slave/logs/scripts/linear-regression-speedup-efficiency.pdf index 0909a74e177d74c08c62a135a664541764a0dcda..70ed11f2e4ef081fcd7bc4155de2dca7b188ceec 100644 GIT binary patch delta 11130 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 delta 9679 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 delta 19659 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