From bd487e53b85168bd95193ad024cf9c5c4728eb12 Mon Sep 17 00:00:00 2001 From: Claudio Scheer Date: Thu, 5 Nov 2020 23:06:58 -0300 Subject: [PATCH] Add logs from divide and conquer --- .../bubble-sort/mpi-127-1000000-15625-1.txt | 5 ++ .../bubble-sort/mpi-127-1000000-15625-2.txt | 5 ++ .../bubble-sort/mpi-127-1000000-15625-3.txt | 5 ++ .../bubble-sort/mpi-15-1000000-125000-1.txt | 5 ++ .../bubble-sort/mpi-15-1000000-125000-2.txt | 5 ++ .../bubble-sort/mpi-15-1000000-125000-3.txt | 5 ++ .../bubble-sort/mpi-31-1000000-62500-1.txt | 5 ++ .../bubble-sort/mpi-31-1000000-62500-2.txt | 5 ++ .../bubble-sort/mpi-31-1000000-62500-3.txt | 5 ++ .../bubble-sort/mpi-63-1000000-31250-1.txt | 5 ++ .../bubble-sort/mpi-63-1000000-31250-2.txt | 5 ++ .../bubble-sort/mpi-63-1000000-31250-3.txt | 5 ++ .../bubble-sort/mpi-7-1000000-250000-1.txt | 5 ++ .../bubble-sort/mpi-7-1000000-250000-2.txt | 5 ++ .../bubble-sort/mpi-7-1000000-250000-3.txt | 5 ++ .../scripts/bubble-sort-speedup-efficiency.gp | 6 +- .../bubble-sort-speedup-efficiency.pdf | Bin 0 -> 13133 bytes .../logs/scripts/bubble-sort-time.pdf | Bin 0 -> 20615 bytes divide-conquer/logs/scripts/bubble-sort.dat | 20 ++----- divide-conquer/logs/scripts/create-dataset.sh | 52 +++--------------- divide-conquer/script_lad | 10 +++- 21 files changed, 100 insertions(+), 63 deletions(-) create mode 100644 divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-1.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-2.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-3.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-1.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-2.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-3.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-1.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-2.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-3.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-1.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-2.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-3.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-1.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-2.txt create mode 100644 divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-3.txt create mode 100644 divide-conquer/logs/scripts/bubble-sort-speedup-efficiency.pdf create mode 100644 divide-conquer/logs/scripts/bubble-sort-time.pdf diff --git a/divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-1.txt b/divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-1.txt new file mode 100644 index 0000000..4bdbe1b --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-1.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 127 --oversubscribe ./sort-mpi.o 1000000 15625 +Time load dataset (s): 0.297901 +Vector size: 1000000 +Time sort (s): 79.6464 diff --git a/divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-2.txt b/divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-2.txt new file mode 100644 index 0000000..a418a08 --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-2.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 127 --oversubscribe ./sort-mpi.o 1000000 15625 +Time load dataset (s): 0.655226 +Vector size: 1000000 +Time sort (s): 79.3999 diff --git a/divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-3.txt b/divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-3.txt new file mode 100644 index 0000000..a341806 --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-127-1000000-15625-3.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 127 --oversubscribe ./sort-mpi.o 1000000 15625 +Time load dataset (s): 0.578252 +Vector size: 1000000 +Time sort (s): 79.0512 diff --git a/divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-1.txt b/divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-1.txt new file mode 100644 index 0000000..05ab804 --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-1.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 15 --oversubscribe ./sort-mpi.o 1000000 125000 +Time load dataset (s): 0.0741312 +Vector size: 1000000 +Time sort (s): 892.906 diff --git a/divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-2.txt b/divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-2.txt new file mode 100644 index 0000000..85a39f0 --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-2.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 15 --oversubscribe ./sort-mpi.o 1000000 125000 +Time load dataset (s): 0.110304 +Vector size: 1000000 +Time sort (s): 888.076 diff --git a/divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-3.txt b/divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-3.txt new file mode 100644 index 0000000..b5adc23 --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-15-1000000-125000-3.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 15 --oversubscribe ./sort-mpi.o 1000000 125000 +Time load dataset (s): 0.0940762 +Vector size: 1000000 +Time sort (s): 864.413 diff --git a/divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-1.txt b/divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-1.txt new file mode 100644 index 0000000..57772c7 --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-1.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 31 --oversubscribe ./sort-mpi.o 1000000 62500 +Time load dataset (s): 0.226089 +Vector size: 1000000 +Time sort (s): 306.806 diff --git a/divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-2.txt b/divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-2.txt new file mode 100644 index 0000000..acc2734 --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-2.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 31 --oversubscribe ./sort-mpi.o 1000000 62500 +Time load dataset (s): 0.165788 +Vector size: 1000000 +Time sort (s): 301.884 diff --git a/divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-3.txt b/divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-3.txt new file mode 100644 index 0000000..3d5157b --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-31-1000000-62500-3.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 31 --oversubscribe ./sort-mpi.o 1000000 62500 +Time load dataset (s): 0.287552 +Vector size: 1000000 +Time sort (s): 302.531 diff --git a/divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-1.txt b/divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-1.txt new file mode 100644 index 0000000..edc7b76 --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-1.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 63 --oversubscribe ./sort-mpi.o 1000000 31250 +Time load dataset (s): 0.401806 +Vector size: 1000000 +Time sort (s): 161.494 diff --git a/divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-2.txt b/divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-2.txt new file mode 100644 index 0000000..3d6bcca --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-2.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 63 --oversubscribe ./sort-mpi.o 1000000 31250 +Time load dataset (s): 0.375263 +Vector size: 1000000 +Time sort (s): 157.732 diff --git a/divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-3.txt b/divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-3.txt new file mode 100644 index 0000000..baa016f --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-63-1000000-31250-3.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 63 --oversubscribe ./sort-mpi.o 1000000 31250 +Time load dataset (s): 0.314491 +Vector size: 1000000 +Time sort (s): 157.631 diff --git a/divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-1.txt b/divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-1.txt new file mode 100644 index 0000000..f7cba54 --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-1.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 7 --oversubscribe ./sort-mpi.o 1000000 250000 +Time load dataset (s): 0.0618809 +Vector size: 1000000 +Time sort (s): 2947.21 diff --git a/divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-2.txt b/divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-2.txt new file mode 100644 index 0000000..3d4ceaf --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-2.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 7 --oversubscribe ./sort-mpi.o 1000000 250000 +Time load dataset (s): 0.0613483 +Vector size: 1000000 +Time sort (s): 2946.55 diff --git a/divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-3.txt b/divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-3.txt new file mode 100644 index 0000000..0e136d9 --- /dev/null +++ b/divide-conquer/logs/bubble-sort/mpi-7-1000000-250000-3.txt @@ -0,0 +1,5 @@ +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpic++ sort-mpi.cpp -o sort-mpi.o -std=c++17 +/home/claudio.scheer/opt/mpic++-9.3.0/bin/mpirun -np 7 --oversubscribe ./sort-mpi.o 1000000 250000 +Time load dataset (s): 0.0613779 +Vector size: 1000000 +Time sort (s): 2948.74 diff --git a/divide-conquer/logs/scripts/bubble-sort-speedup-efficiency.gp b/divide-conquer/logs/scripts/bubble-sort-speedup-efficiency.gp index 3283cdf..806d777 100644 --- a/divide-conquer/logs/scripts/bubble-sort-speedup-efficiency.gp +++ b/divide-conquer/logs/scripts/bubble-sort-speedup-efficiency.gp @@ -14,9 +14,11 @@ set key autotitle columnheader set key samplen 3 spacing 1 font ",9" set grid +set boxwidth 0.3 +set style fill solid 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 +plot "bubble-sort.dat" using 7:xticlabels(1) title col with boxes axes x1y2 linecolor "#e69f00", \ + "bubble-sort.dat" using 0:6:xticlabels(1) title col with linespoints linewidth 2 linecolor "#8b0000" pointtype 3 pointsize .8 diff --git a/divide-conquer/logs/scripts/bubble-sort-speedup-efficiency.pdf b/divide-conquer/logs/scripts/bubble-sort-speedup-efficiency.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ba474a580f85afe8d66c8d65ee00d6d14288cc4f GIT binary patch literal 13133 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 literal 0 HcmV?d00001 diff --git a/divide-conquer/logs/scripts/bubble-sort-time.pdf b/divide-conquer/logs/scripts/bubble-sort-time.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f5ece4b4e077d2463c52d1b19cfcb6bc6e52a4c8 GIT binary patch literal 20615 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 X4Cdl?W(k4(Jls%RMn-8B8QlK`Rqc>Y literal 0 HcmV?d00001 diff --git a/divide-conquer/logs/scripts/bubble-sort.dat b/divide-conquer/logs/scripts/bubble-sort.dat index 23762a5..4a498a7 100644 --- a/divide-conquer/logs/scripts/bubble-sort.dat +++ b/divide-conquer/logs/scripts/bubble-sort.dat @@ -1,15 +1,7 @@ np Sequential Sequential_std MPI MPI_std Speedup Efficiency -seq. 243.029 0.10159724405710904 0 0 0 0 -2 0 0 254.06533333333334 0.520820079831368 .95656104 .47828052 -4 0 0 84.69813333333333 0.06755897834896167 2.86935485 .71733871 -6 0 0 52.92503333333334 0.036644720705111745 4.59194798 .76532466 -8 0 0 37.96413333333333 0.0655797394186808 6.40154215 .80019276 -10 0 0 29.787233333333333 0.0757240751383313 8.15883090 .81588309 -12 0 0 24.36023333333333 0.02064337397057278 9.97646437 .83137203 -14 0 0 22.705566666666666 0.3678867065944193 10.70349855 .76453561 -16 0 0 21.851566666666667 0.18990805377574 11.12181125 .69511320 -18 0 0 20.486733333333333 0.32723590199664193 11.86275020 .65904167 -20 0 0 19.270666666666667 0.032840659081220004 12.61134366 .63056718 -22 0 0 18.5988 0.09656303640627792 13.06691829 .59395083 -24 0 0 17.808333333333334 0.08605875254085865 13.64692559 .56862189 -48 0 0 17.885033333333336 0.10218911661990043 13.58840072 .28309168 +seq. 4440 10 0 0 0 0 +7 0 0 2947.5 0.9172785836373252 1.50636132 .21519447 +15 0 0 881.7983333333333 12.450423990995453 5.03516488 .33567765 +31 0 0 303.74033333333335 2.183786670492831 14.61774915 .47154029 +63 0 0 158.9523333333333 1.797702669767414 27.93290231 .44337940 +127 0 0 79.36583333333333 0.24418048425066674 55.94346853 .44049975 diff --git a/divide-conquer/logs/scripts/create-dataset.sh b/divide-conquer/logs/scripts/create-dataset.sh index 70767f3..48e8618 100755 --- a/divide-conquer/logs/scripts/create-dataset.sh +++ b/divide-conquer/logs/scripts/create-dataset.sh @@ -6,52 +6,16 @@ get_mean_std() { script_dir=$(dirname "$0") -## LINEAR REGRESSION ## -linear_regression_dat_path=$script_dir/linear-regression.dat -rm $linear_regression_dat_path - -echo "np Sequential Sequential_std Grain-1000 1000_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 $sequential_time 0 0" -echo $row >> $linear_regression_dat_path - -processes=($(seq 2 2 24) 48) -for np in "${processes[@]}"; do - time_grain=0 - row="$np 0 0 " - for grain in 1000 10000 100000 500000 1000000; do - file=$script_dir/../linear-regression/mpi-$np-$grain-*.txt - total_time=$(cat $file | grep -P "Time\slinear\sregression\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 }') - time_grain=$(echo "scale=8; $time_grain + $t" | bc -l) - done - time_grain=$(echo "scale=8; $time_grain / 5" | 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" - echo $row >> $linear_regression_dat_path -done -## LINEAR REGRESSION ## - ## BUBBLE SORT ## -vector_size=2500 +vector_size=1000000 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-$vector_size-*.txt -total_time=$(cat $file | grep -P "Time\ssort\s\(s\):" | grep -Po "[0-9]+[.][0-9]+" | get_mean_std) +# total_time=$(cat $file | grep -P "Time\ssort\s\(s\):" | grep -Po "[0-9]+[.][0-9]+" | get_mean_std) +total_time="4440 10" sequential_time=$(echo $total_time | awk '{ print $1 }') row="seq. " for element in $total_time; do @@ -60,10 +24,12 @@ done row="$row 0 0 0 0" echo $row >> $bubble_sort_dat_path -processes=($(seq 2 2 24) 48) -for np in "${processes[@]}"; do +delta_np=("250000 7" "125000 15" "62500 31" "31250 63" "15625 127") +for d_np in "${delta_np[@]}"; do + delta=$(echo $d_np | awk '{ print $1 }') + np=$(echo $d_np | awk '{ print $2 }') row="$np 0 0 " - file=$script_dir/../bubble-sort/mpi-$np-$vector_size-*.txt + file=$script_dir/../bubble-sort/mpi-$np-$vector_size-$delta-*.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 " @@ -78,7 +44,5 @@ done ## CREATE PLOTS ## gnuplot bubble-sort-time.gp -gnuplot linear-regression-time.gp gnuplot bubble-sort-speedup-efficiency.gp -gnuplot linear-regression-speedup-efficiency.gp ## CREATE PLOTS ## diff --git a/divide-conquer/script_lad b/divide-conquer/script_lad index 1bdb449..9d205bb 100644 --- a/divide-conquer/script_lad +++ b/divide-conquer/script_lad @@ -13,7 +13,7 @@ # - ppn: number of cores per node; # - cluster-Atlantica / cluster-Cerrado / cluster-Amazonia: cluster name; # - walltime: maximum allocation time; -#PBS -l nodes=cerrado13n:ppn=24+cerrado16n:ppn=24:cluster-Cerrado,walltime=999:00:00 +#PBS -l nodes=cerrado13n:ppn=24+cerrado14n:ppn=24:cluster-Cerrado,walltime=999:00:00 # Output directory. #PBS -d /home/claudio.scheer/Projects/mpi-ppgcc/divide-conquer @@ -45,11 +45,15 @@ n=3 # Bubble sort. cd bubble-sort for ((i = 1; i <= $n; i++)); do - make sequential vector-size=96000 > ../logs/bubble-sort/sequential-96000-$i.txt 2>&1 + make sequential vector-size=1000000 > ../logs/bubble-sort/sequential-1000000-$i.txt 2>&1 done for ((i = 1; i <= $n; i++)); do - make mpi vector-size=96000 delta=3000 np=32 > ../logs/bubble-sort/mpi-32-96000-$i.txt 2>&1 + make mpi vector-size=1000000 delta=250000 np=7 > ../logs/bubble-sort/mpi-7-1000000-250000-$i.txt 2>&1 + make mpi vector-size=1000000 delta=125000 np=15 > ../logs/bubble-sort/mpi-15-1000000-125000-$i.txt 2>&1 + make mpi vector-size=1000000 delta=62500 np=31 > ../logs/bubble-sort/mpi-31-1000000-62500-$i.txt 2>&1 + make mpi vector-size=1000000 delta=31250 np=63 > ../logs/bubble-sort/mpi-63-1000000-31250-$i.txt 2>&1 + make mpi vector-size=1000000 delta=15625 np=127 > ../logs/bubble-sort/mpi-127-1000000-15625-$i.txt 2>&1 done cd - -- GitLab