nissy-core

The "engine" of nissy, including the H48 optimal solver.
git clone https://git.tronto.net/nissy-core
Download | Log | Files | Refs | README | LICENSE

run-h48-benchmarks.sh (1176B)


      1 #!/bin/sh
      2 
      3 # This script must be run from the main repository folder.
      4 
      5 scr="./benchmarks/scrambles"
      6 out="./benchmarks/results_h48.py"
      7 
      8 get_solve_time() {
      9 	THREADS="$1" ./build.sh tool solve_file "$2" "$3" "$4" 0 | \
     10 		tail -n 1 | sed 's/Total time: //; s/s$//'
     11 }
     12 
     13 do_all() {
     14 	low=$1
     15 	cutoff=$2
     16 	high=$3
     17 	t=$4
     18 	n=$5
     19 	name=$6
     20 	
     21 	printf '%s = {\n' "$name" >> "$out"
     22 	for i in $(seq "$low" "$high"); do
     23 		t17="$(get_solve_time $t h48h$i "$scr/scrambles-17.txt" $n)"
     24 		t18="$(get_solve_time $t h48h$i "$scr/scrambles-18.txt" $n)"
     25 		t19="$(get_solve_time $t h48h$i "$scr/scrambles-19.txt" $n)"
     26 		printf '\t%s: {17: %s, 18: %s, 19: %s' $i $t17 $t18 $t19 >> "$out"
     27 		if [ "$i" -ge "$cutoff" ]; then
     28 			t20="$(get_solve_time $t h48h$i "$scr/scrambles-20.txt" $n)"
     29 			tsf="$(get_solve_time $t h48h$i "$scr/superflip.txt" $n)"
     30 			printf ', 20: %s, "superflip": %s},\n' $t20 $tsf >> "$out"
     31 		else
     32 			printf '},\n' >> "$out"
     33 		fi
     34 	done
     35 	printf '}\n\n' >> "$out"
     36 }
     37 
     38 ./build.sh clean && ./build.sh
     39 printf '' > "$out"
     40 
     41 do_all 6 10 11  1      1 "h48_single_thread"
     42 do_all 6  9 11  4      1 "h48_4_threads"
     43 do_all 6  9 11 16      1 "h48_16_threads"
     44 do_all 6 10 11 16 999999 "h48_all_solutions"