Browse Source

more scripts

user avadapal 1 year ago
parent
commit
65634ce000

+ 5 - 5
repro/generate_raw_data_bs.sh

@@ -18,7 +18,7 @@ for itr in $(seq 1 $nitrs); do
     ./docker/run-experiment -p m:19 r19:19 c:19 p:64 >> "repro/data/log_basic_bs_preproc_18_itr_$itr"
     echo "preprocessing_bs_18 (basic online)"
     echo "bssize: 18\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_18_itr_$itr"
-    ./docker/run-experiment  -t 64 bbsearch 16 >> "repro/data/log_basic_bs_online_18_itr_$itr"
+    ./docker/run-experiment  -t 64 bbsearch 18 >> "repro/data/log_basic_bs_online_18_itr_$itr"
     echo "preprocessing_bs_18 (basic online)"	
 done
 
@@ -28,7 +28,7 @@ for itr in $(seq 1 $nitrs); do
     ./docker/run-experiment -p m:21 r21:21 c:21 p:64 >> "repro/data/log_basic_bs_preproc_20_itr_$itr"
     echo "preprocessing_bs_20 (basic preproc)"
     echo "bssize: 20\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_20_itr_$itr"
-    ./docker/run-experiment  -t 64 bbsearch 16 >> "repro/data/log_basic_bs_online_20_itr_$itr"
+    ./docker/run-experiment  -t 64 bbsearch 20 >> "repro/data/log_basic_bs_online_20_itr_$itr"
     echo "preprocessing_bs_20 (basic online)"
 done
 
@@ -38,7 +38,7 @@ for itr in $(seq 1 $nitrs); do
    ./docker/run-experiment -p m:23 r23:23 c:23 p:64 >> "repro/data/log_basic_bs_preproc_22_itr_$itr"
    echo "preprocessing_bs_22 (basic preproc)"
    echo "bssize: 22\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_22_itr_$itr"
-   ./docker/run-experiment  -t 64 bbsearch 16 >>  "repro/data/log_basic_bs_online_22_itr_$itr"
+   ./docker/run-experiment  -t 64 bbsearch 22 >>  "repro/data/log_basic_bs_online_22_itr_$itr"
    echo "preprocessing_bs_22 (basic online)"
 done
 
@@ -48,7 +48,7 @@ for itr in $(seq 1 $nitrs); do
   ./docker/run-experiment -p m:25 r25:25 c:25 p:64 >>  "repro/data/log_basic_bs_preproc_24_itr_$itr"
   echo "preprocessing_bs_24 (basic preproc)"
   echo "bssize: 24\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_24_itr_$itr"
-  ./docker/run-experiment  -t 64 bbsearch 16 >>   "repro/data/log_basic_bs_online_24_itr_$itr"
+  ./docker/run-experiment  -t 64 bbsearch 24 >>   "repro/data/log_basic_bs_online_24_itr_$itr"
   echo "preprocessing_bs_24 (basic online)"
 done
 
@@ -57,7 +57,7 @@ for itr in $(seq 1 $nitrs); do
   echo "bssize: 26\nis_optimized: 0\n" > "repro/data/log_basic_bs_preproc_26_itr_$itr"
   ./docker/run-experiment -p m:27 r27:27 c:27 p:64 >>  "repro/data/log_basic_bs_preproc_26_itr_$itr"
   echo "bssize: 26\nis_optimized: 0\n" > "repro/data/log_basic_bs_online_26_itr_$itr"
-  ./docker/run-experiment  -t 64 bbsearch 16 >> "repro/data/log_basic_bs_online_26_itr_$itr"
+  ./docker/run-experiment  -t 64 bbsearch 26 >> "repro/data/log_basic_bs_online_26_itr_$itr"
   echo "preprocessing_bs_26 (basic online)"
 done
 

+ 50 - 0
repro/generate_raw_data_large.sh

@@ -0,0 +1,50 @@
+
+echo "Running the Heap Extract Experiments (Basic)"
+cd ..
+nitrs=2
+for itr in $(seq 1 $nitrs); do
+    echo $itr
+    echo "heapsize: 28\nis_optimized: 0\n" > "repro/data/log_basic_heap_extract_preproc_28_itr_$itr"	
+    ./docker/run-experiment -p m:111 a:28 s:27 r28:81 c:56 p:128 >> "repro/data/log_basic_heap_extract_preproc_28_itr_$itr"
+     echo "heapsize: 28\nis_optimized: 0\n" > "repro/data/log2_basic_heap_extract_preproc_28_itr_$itr"
+    ./docker/run-experiment -a -p r28:81 >> "repro/data/log2_basic_heap_extract_preproc_28_itr_$itr"
+    
+    echo "preprocessing_heap_28 (basic preproc) - iteration $itr"
+    echo "heapsize: 28\nis_optimized: 0\n" > "repro/data/log_basic_heap_extract_online_28_itr_$itr"	
+    ./docker/run-experiment heap -m 28 -d 28 -i 0 -e 1 -opt 0 -s 0 -itr itr >> "repro/data/log_basic_heap_extract_online_28_itr_$itr"
+    echo "preprocessing_heap_16 (basic online) - iteration $itr"
+done    
+ 
+nitrs=2
+for itr in $(seq 1 $nitrs); do
+    echo "heapsize: 30\nis_optimized: 0\n" > 		            "repro/data/log_basic_heap_extract_preproc_30_itr_$itr"	
+    ./docker/run-experiment -p m:119 a:30 s:29 r30:87 c:60 p:128 >> "repro/data/log_basic_heap_extract_preproc_30_itr_$itr"
+    echo "preprocessing_heap_30 (basic online)"
+    
+    echo "heapsize: 30\nis_optimized: 0\n" >                        "repro/data/log3_basic_heap_extract_preproc_30_itr_$itr"
+    ./docker/run-experiment -a -p r30:87  >> "repro/data/log2_basic_heap_extract_preproc_30_itr_$itr"
+     echo "preprocessing_heap_30 (basic online)"
+
+    echo "heapsize: 30\nis_optimized: 0\n" > "repro/data/log_basic_heap_extract_online_30_itr_$itr"
+    ./docker/run-experiment heap -m 30 -d 30 -i 0 -e 1 -opt 0 -s 0 -itr itr >> "repro/data/log_basic_heap_extract_online_30_itr_$itr"
+    echo "preprocessing_heap_30 (basic online)"	
+done
+
+
+echo "Running the Heap Extract Experiments (Optimized)"
+nitrs=2
+for itr in $(seq 1 $nitrs); do
+     echo "heapsize: 28\nis_optimized: 1\n" 				  >  "repro/data/log_opt_heap_extract_preproc_28_itr_$itr"	 
+     ./docker/run-experiment -p  m:111 a:28 s:27 i27.3:1 c:56 p:128 	  >> "repro/data/log_opt_heap_extract_preproc_28_itr_$itr"
+     echo "preprocessing_heap_16 (opt preproc)"
+     echo "heapsize: 28\nis_optimized: 1\n" 				     > "repro/data/log_opt_heap_extract_online_28_itr_$itr"
+     ./docker/run-experiment heap  -m 28 -d 28 -i 0 -e 1 -opt 1 -s 0 -itr itr  >> "repro/data/log_opt_heap_extract_online_28_itr_$itr"
+     echo "preprocessing_heap_16 (opt online)"
+
+     echo "heapsize: 30\nis_optimized: 1\n" 		     	              > "repro/data/log_opt_heap_extract_preproc_30_itr_$itr"	
+     ./docker/run-experiment -p m:119 a:30 s:29 i29.3:1 c:60 p:128               >> "repro/data/log_opt_heap_extract_preproc_30_itr_$itr"
+     echo "preprocessing_heap_18 (opt preproc)"
+     echo "heapsize: 30\nis_optimized: 1\n"                                    > "repro/data/log_opt_heap_extract_online_30_itr_$itr"
+     ./docker/run-experiment heap  -m 30 -d 30 -i 0 -e 1 -opt 1 -s 0 -itr itr  >> "repro/data/log_opt_heap_extract_online_30_itr_$itr"
+     echo "preprocessing_heap_30 (opt online)"
+  done

+ 4 - 2
repro/reproduce_plots

@@ -65,7 +65,7 @@ for itr in $(seq 1 $nitrs); do
   	IFS=$'\n' read -d '' -r -a values <<< "$output"
 
   	# Store each value in different variables
- 	 heapsize=${values[0]}  optimization_flag=${values[1]} preproc_wc=${values[2]} 
+ 	heapsize=${values[0]}  optimization_flag=${values[1]} preproc_wc=${values[2]} 
   	datafile="repro/experimentaldata_preproc_wallclock"
   	python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $preproc_wc
 
@@ -81,9 +81,11 @@ for itr in $(seq 1 $nitrs); do
   	python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $preproc_wc
   done
 done
-
 echo "Preproc Table"
 cat $datafile
+
+
+
 echo -e "\n\n"
 nitrs=0
 # Replace "python3" with your Python interpreter if needed

+ 128 - 0
repro/reproduce_plots2

@@ -0,0 +1,128 @@
+#!/bin/bash
+
+# Replace "python3" with your Python interpreter if needed
+DS="Heap" 
+Operation="Extract" 
+cd ..
+
+
+
+
+for itr in $(seq 1 1); do
+ for heapsize in $(seq 16 2 26); do
+ echo $heapsize
+ input_file="repro/data/log_basic_heap_extract_online_${heapsize}_itr_${itr}"
+ output=$(python3 repro/extract_data.py "$input_file")
+
+ # Read the output into an array
+ IFS=$'\n' read -d '' -r -a values <<< "$output"
+
+ # Store each value in different variables
+ heapsize=${values[0]}  
+ optimization_flag=${values[1]} 
+ extract_wc=${values[4]} 
+ 
+ datafile="repro/experimentaldata_wallclock"
+ python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $extract_wc
+
+ input_file="repro/data/log_opt_heap_extract_online_${heapsize}_itr_${itr}"
+ echo $input_file
+ output=$(python3 repro/extract_data.py "$input_file")
+
+ # Read the output into an array
+ IFS=$'\n' read -d '' -r -a values <<< "$output"
+
+ # Store each value in different variables
+ heapsize=${values[0]}  optimization_flag=${values[1]} extract_wc=${values[4]}
+ datafile="repro/experimentaldata_wallclock"
+ python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $extract_wc
+ done	
+done
+
+cat $datafile
+echo "\n\n"
+
+for itr in $(seq 1 1); do
+  for heapsize in $(seq 16 2 26); do
+  input_file="repro/data/log_basic_heap_extract_preproc_${heapsize}_itr_$itr"
+  output=$(python3 repro/extract_data_from_preproc.py "$input_file")
+
+  # Read the output into an array
+  IFS=$'\n' read -d '' -r -a values <<< "$output"
+
+  # Store each value in different variables
+  heapsize=${values[0]}  optimization_flag=${values[1]} preproc_wc=${values[2]} 
+  datafile="repro/experimentaldata_preproc_wallclock"
+  python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $preproc_wc
+
+  input_file="repro/data/log_opt_heap_extract_preproc_16_itr_$itr"
+  output=$(python3 repro/extract_data_from_preproc.py "$input_file")
+
+  # Read the output into an array
+  IFS=$'\n' read -d '' -r -a values <<< "$output"
+
+  # Store each value in different variables
+  heapsize=${values[0]}  optimization_flag=${values[1]} preproc_wc=${values[2]}
+  datafile="repro/experimentaldata_preproc_wallclock"
+  python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $preproc_wc
+ done
+done
+
+
+cat $datafile
+echo "\n\n"
+
+# Replace "python3" with your Python interpreter if needed
+DS="Heap"
+Operation="Insert"
+
+for itr in $(seq 1 1); do
+  for heapsize in $(seq 16 2 26); do
+	 input_file="repro/data/log_basic_heap_insert_online_${heapsize}_itr_$itr"
+	 output=$(python3 repro/extract_data.py "$input_file")
+
+	 # Read the output into an array
+ 	IFS=$'\n' read -d '' -r -a values <<< "$output"
+	 # Store each value in different variables
+ 	heapsize=${values[0]}  optimization_flag=${values[1]}  insert_wc=${values[2]}
+	datafile="repro/experimentaldata_wallclock"
+ 	python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $insert_wc
+ 	input_file="repro/data/log_opt_heap_insert_online_${heapsize}_itr_$itr"
+ 	output=$(python3 repro/extract_data.py "$input_file")
+
+	 # Read the output into an array
+	 IFS=$'\n' read -d '' -r -a values <<< "$output"
+ 	# Store each value in different variables
+ 	heapsize=${values[0]}  optimization_flag=${values[1]}  insert_wc=${values[2]}
+ 	datafile="repro/experimentaldata_wallclock"
+	python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $insert_wc 
+  done
+done
+
+cat $datafile
+echo "\n---------\n"
+
+for itr in $(seq 1 1); do
+    for heapsize in $(seq 16 2 26); do	
+	echo ${heapsize} 
+	input_file="repro/data/log_basic_heap_insert_preproc_${heapsize}_itr_$itr"
+ 	output=$(python3 repro/extract_data_from_preproc.py "$input_file")
+ 	# Read the output into an array
+ 	IFS=$'\n' read -d '' -r -a values <<< "$output"
+ 	# Store each value in different variables
+ 	heapsize=${values[0]}  optimization_flag=${values[1]} preproc_wc=${values[2]}
+ 	datafile="repro/experimentaldata_preproc_wallclock"
+ 	python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $preproc_wc
+
+ 	input_file="repro/data/log_opt_heap_insert_preproc_${heapsize}_itr_$itr"
+	 output=$(python3 repro/extract_data_from_preproc.py "$input_file")
+	 # Read the output into an array
+	 IFS=$'\n' read -d '' -r -a values <<< "$output"
+	 # Store each value in different variables
+	 heapsize=${values[0]}  optimization_flag=${values[1]} preproc_wc=${values[2]}
+	 datafile="repro/experimentaldata_preproc_wallclock"
+	 python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $preproc_wc
+   done
+done
+cat $datafile
+

+ 159 - 0
repro/reproduce_plots_bw

@@ -0,0 +1,159 @@
+#!/bin/bash
+
+# Replace "python3" with your Python interpreter if needed
+DS="Heap" 
+Operation="Extract" 
+cd ..
+
+touch "repro/experimentaldata_preproc_bw"  "repro/experimentaldata_bw"
+rm "repro/experimentaldata_preproc_bw"  "repro/experimentaldata_bw"
+touch "repro/experimentaldata_preproc_bw"  "repro/experimentaldata_bw"
+nitrs=2
+minsize=16
+maxsize=26
+stepsize=2
+for itr in $(seq 1 $nitrs); do
+ for heapsize in $(seq $minsize $stepsize $maxsize); do
+ 	input_file="repro/data/log_basic_heap_extract_online_${heapsize}_itr_${itr}"
+	echo $input_file
+ 	output=$(python3 repro/extract_data.py "$input_file")
+
+ 	# Read the output into an array
+	 IFS=$'\n' read -d '' -r -a values <<< "$output"
+
+	 # Store each value in different variables
+	 echo ${values[0]}
+	 echo ${values[1]}
+	 echo ${values[2]}
+	 echo ${values[3]}
+	 echo ${values[4]}
+         echo ${values[5]}
+	 echo "------"	 
+	 heapsize=${values[0]}  
+ 	 optimization_flag=${values[1]} 
+	 bytes=${values[5]}
+	 #seconds=$((milliseconds / 1000))
+	 KiB=$(echo "scale=3; $bytes / 1024" | bc)  # Use bc for decimal division
+	 bw=$KiB
+
+	 datafile="repro/experimentaldata_bw"
+ 	 python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $bw
+
+ 	 input_file="repro/data/log_opt_heap_extract_online_${heapsize}_itr_${itr}"
+ 	 echo $input_file
+ 	 output=$(python3 repro/extract_data.py "$input_file")
+
+	 # Read the output into an array
+ 	 IFS=$'\n' read -d '' -r -a values <<< "$output"
+
+ 	# Store each value in different variables
+	 bytes=${values[5]}
+	 KiB=$(echo "scale=3; $bytes / 1024" | bc)  # Use bc for decimal division
+	 heapsize=${values[0]}  optimization_flag=${values[1]} bw=$KiB
+ 	 datafile="repro/experimentaldata_bw"
+ 	 python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $bw
+ done	
+done
+echo "OnlineTable"
+cat $datafile
+echo -e "\n\n"
+
+nitrs=2
+for itr in $(seq 1 $nitrs); do
+  for heapsize in $(seq $minsize $stepsize $maxsize); do
+	input_file="repro/data/log_basic_heap_extract_preproc_${heapsize}_itr_$itr"
+  	output=$(python3 repro/extract_data_from_preproc.py "$input_file")
+
+  	# Read the output into an array
+  	IFS=$'\n' read -d '' -r -a values <<< "$output"
+
+  	# Store each value in different variables
+ 	 heapsize=${values[0]}  optimization_flag=${values[1]} preproc_wc=${values[2]} 
+  	 bytes=${values[3]}
+         KiB=$(echo "scale=3; $bytes / 1024" | bc)  # Use bc for decimal division
+	 bw=$KiB
+	 echo ${values[0]}
+         echo ${values[1]}
+         echo ${values[2]}
+         echo ${values[3]}
+         echo "-------" 	 
+	 datafile="repro/experimentaldata_preproc_bw"
+  	 python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $bw
+
+  	 input_file="repro/data/log_opt_heap_extract_preproc_${heapsize}_itr_$itr"
+  	 output=$(python3 repro/extract_data_from_preproc.py "$input_file")
+
+ 	 # Read the output into an array
+  	 IFS=$'\n' read -d '' -r -a values <<< "$output"
+
+  	 # Store each value in different variables
+  	 heapsize=${values[0]}  optimization_flag=${values[1]} preproc_wc=${values[2]}
+	 bytes=${values[3]}
+         KiB=$(echo "scale=3; $bytes / 1024" | bc)  # Use bc for decimal division
+         bw=$KiB
+
+  	 datafile="repro/experimentaldata_preproc_bw"
+  	 python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $bw
+  done
+done
+
+echo "Preproc Table"
+cat $datafile
+echo -e "\n\n"
+nitrs=0
+# Replace "python3" with your Python interpreter if needed
+DS="Heap"
+Operation="Insert"
+
+for itr in $(seq 1 $niters); do
+  for heapsize in $(seq $minsize $stepsize $maxsize); do
+	 input_file="repro/data/log_basic_heap_insert_online_${heapsize}_itr_$itr"
+	 output=$(python3 repro/extract_data.py "$input_file")
+
+	 # Read the output into an array
+ 	IFS=$'\n' read -d '' -r -a values <<< "$output"
+	 # Store each value in different variables
+ 	heapsize=${values[0]}  optimization_flag=${values[1]}  insert_wc=${values[2]}
+	datafile="repro/experimentaldata_bw"
+ 	python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $insert_wc
+ 	input_file="repro/data/log_opt_heap_insert_online_${heapsize}_itr_$itr"
+ 	output=$(python3 repro/extract_data.py "$input_file")
+
+	 # Read the output into an array
+	 IFS=$'\n' read -d '' -r -a values <<< "$output"
+ 	# Store each value in different variables
+ 	heapsize=${values[0]}  optimization_flag=${values[1]}  insert_wc=${values[2]}
+ 	datafile="repro/experimentaldata_bw"
+	python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $insert_wc 
+  done
+done
+
+echo "Online Table"
+cat $datafile
+echo -e "\n\n"
+
+for itr in $(seq 1 $niters); do
+    for heapsize in $(seq $minsize $stepsize $maxsize); do	
+	 
+	input_file="repro/data/log_basic_heap_insert_preproc_${heapsize}_itr_$itr"
+ 	output=$(python3 repro/extract_data_from_preproc.py "$input_file")
+ 	# Read the output into an array
+ 	IFS=$'\n' read -d '' -r -a values <<< "$output"
+ 	# Store each value in different variables
+ 	heapsize=${values[0]}  optimization_flag=${values[1]} preproc_wc=${values[2]}
+ 	datafile="repro/experimentaldata_preproc_bw"
+ 	python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $preproc_wc
+
+ 	input_file="repro/data/log_opt_heap_insert_preproc_${heapsize}_itr_$itr"
+	 output=$(python3 repro/extract_data_from_preproc.py "$input_file")
+	 # Read the output into an array
+	 IFS=$'\n' read -d '' -r -a values <<< "$output"
+	 # Store each value in different variables
+	 heapsize=${values[0]}  optimization_flag=${values[1]} preproc_wc=${values[2]}
+	 datafile="repro/experimentaldata_preproc_bw"
+	 python3 repro/append-experiment-results.py $datafile $DS $Operation $optimization_flag $heapsize $preproc_wc
+   done
+done
+echo "Preproc Table"
+cat $datafile
+

+ 52 - 0
repro/sum_preproc_online

@@ -0,0 +1,52 @@
+#!/bin/bash
+
+if [ $# -ne 2 ]; then
+    echo "Usage: $0 <file1> <file2>"
+    exit 1
+fi
+
+file1="$1"
+file2="$2"
+
+if [ ! -f "$file1" ] || [ ! -f "$file2" ]; then
+    echo "Error: Both input files must exist."
+    exit 1
+fi
+
+data1=()
+data2=()
+
+while read line; do
+    if [[ "$line" == "BS Search"* ]]; then
+        parts=($line)
+        y="${parts[4]}"
+        y_err="${parts[6]#±}"
+        data1+=("$y,$y_err")
+    fi
+done < "$file1"
+
+while read line; do
+    if [[ "$line" == "BS Search"* ]]; then
+        parts=($line)
+        y="${parts[4]}"
+        y_err="${parts[6]#±}"
+        data2+=("$y,$y_err")
+    fi
+done < "$file2"
+
+if [ ${#data1[@]} -ne ${#data2[@]} ]; then
+    echo "Error: The two files do not have the same number of data points."
+    exit 1
+fi
+
+echo "Data point y_sum y_err_sum"
+for i in "${!data1[@]}"; do
+    IFS=',' read -ra data1_parts <<< "${data1[i]}"
+    IFS=',' read -ra data2_parts <<< "${data2[i]}"
+    
+    y_sum=$(echo "${data1_parts[0]} + ${data2_parts[0]}" | bc -l)
+    y_err_sum=$(echo "scale=4; sqrt(${data1_parts[1]}^2 + ${data2_parts[1]}^2)" | bc -l)
+    
+    echo "$((i+1)) $y_sum $y_err_sum"
+done
+