Changeset 5f648fb3
- Timestamp:
- Mar 19, 2023, 1:51:35 PM (20 months ago)
- Branches:
- ADT, ast-experimental, master
- Children:
- cd477ca
- Parents:
- 0da7181
- Location:
- doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/bench.h
r0da7181 r5f648fb3 47 47 #endif 48 48 49 size_t threads = 1 ;49 size_t threads = 1, num_locks = -1; 50 50 51 51 #define BENCH_START() \ 52 if ( argc > 2) exit( EXIT_FAILURE ); \52 if ( argc > 3 ) exit( EXIT_FAILURE ); \ 53 53 if ( argc == 2 ) { \ 54 54 threads = atoi( argv[1] ); \ 55 } else if ( argc == 3 ) { \ 56 threads = atoi( argv[1] ); \ 57 num_locks = atoi( argv[2] ); \ 55 58 } 56 59 … … 77 80 } 78 81 #endif 82 83 // splitmix64 rand num generator 84 // https://rosettacode.org/wiki/Pseudo-random_numbers/Splitmix64 85 uint64_t state; /* The state can be seeded with any (upto) 64 bit integer value. */ 86 87 uint64_t next_int() { 88 state += 0x9e3779b97f4a7c15; /* increment the state variable */ 89 uint64_t z = state; /* copy the state to a working variable */ 90 z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9; /* xor the variable with the variable right bit shifted 30 then multiply by a constant */ 91 z = (z ^ (z >> 27)) * 0x94d049bb133111eb; /* xor the variable with the variable right bit shifted 27 then multiply by a constant */ 92 return z ^ (z >> 31); /* return the variable xored with itself right bit shifted 31 */ 93 } 94 -
doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/run
r0da7181 r5f648fb3 85 85 } 86 86 87 numtimes=1 87 numtimes=11 88 88 89 89 # locks=('-DLOCKS=L1' '-DLOCKS=L2' '-DLOCKS=L3' '-DLOCKS=L4' '-DLOCKS=L5' '-DLOCKS=L6' '-DLOCKS=L7' '-DLOCKS=L8') … … 92 92 locks=('2' '4' '8') 93 93 94 #num_threads='2 4 8 16 24 32'95 num_threads='2 4 8'94 num_threads='2 4 8 16 24 32' 95 # num_threads='2 4 8' 96 96 97 97 # toggle benchmarks 98 98 order=${true} 99 rand=${true} 100 baseline=${true} 99 101 100 102 runCFA=${true} … … 156 158 157 159 if [ ${runCFA} -eq ${true} ] ; then 158 echo -n 'CFA ' 160 if [ ${order} -eq ${true} ] ; then 161 echo -n 'CFA-order ' 162 fi 163 if [ ${baseline} -eq ${true} ] ; then 164 echo -n 'CFA-baseline ' 165 fi 166 if [ ${rand} -eq ${true} ] ; then 167 echo -n 'CFA-rand ' 168 fi 159 169 fi # done CFA 160 170 if [ ${runCPP} -eq ${true} ] ; then 161 echo -n 'CPP ' 171 if [ ${order} -eq ${true} ] ; then 172 echo -n 'CPP-order ' 173 fi 174 if [ ${baseline} -eq ${true} ] ; then 175 echo -n 'CPP-baseline ' 176 fi 177 if [ ${rand} -eq ${true} ] ; then 178 echo -n 'CPP-rand ' 179 fi 162 180 fi # done CPP 163 181 echo "" … … 174 192 175 193 run_order() { 176 echo "order locks: "${1} 194 echo "locks: "${1} 195 post_args=${1} 177 196 178 197 if [ ${runCFA} -eq ${true} ] ; then 179 198 cd cfa # CFA RUN 180 print_header 'CFA '${3}181 ${cfa} ${cfa_flags} ${2} order${3}.cfa -o a.${hostname} > /dev/null 2>&1199 print_header 'CFA-'${3} 200 ${cfa} ${cfa_flags} ${2} ${3}.cfa -o a.${hostname} > /dev/null 2>&1 182 201 run_bench 183 202 rm a.${hostname} … … 187 206 if [ ${runCPP} -eq ${true} ] ; then 188 207 cd cpp # CPP RUN 189 print_header 'CPP '${3}190 ${cpp} ${cpp_flags} ${2} order${3}.cc -o a.${hostname} > /dev/null 2>&1208 print_header 'CPP-'${3} 209 ${cpp} ${cpp_flags} ${2} ${3}.cc -o a.${hostname} > /dev/null 2>&1 191 210 run_bench 192 211 rm a.${hostname} … … 196 215 197 216 # /usr/bin/time -f "%Uu %Ss %Er %Mkb" 198 if [ ${order} -eq ${true} ] ; then 199 for i in ${!locks[@]}; do 200 run_order ${locks[$i]} ${lock_flags[$i]} '' 201 run_order ${locks[$i]} ${lock_flags[$i]} '-basic' 202 done 203 fi 204 217 218 for i in ${!locks[@]}; do 219 if [ ${order} -eq ${true} ] ; then 220 run_order ${locks[$i]} ${lock_flags[$i]} 'order' 221 fi 222 if [ ${baseline} -eq ${true} ] ; then 223 run_order ${locks[$i]} ${lock_flags[$i]} 'baseline' 224 fi 225 if [ ${rand} -eq ${true} ] ; then 226 run_order ${locks[$i]} '-DLOCKS=L8' 'rand' 227 fi 228 done 229 230
Note: See TracChangeset
for help on using the changeset viewer.