|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +echo "FOEDUS TPC-C experiments script with HCC for $machine_shortname ($machine_name)" |
| 4 | +echo "loggers_per_node=$loggers_per_node, volatile_pool_size=$volatile_pool_size, duration_micro=$duration_micro." |
| 5 | +echo "thread_per_node=$max_thread_per_node, numa_nodes=$sys_numa_nodes, snapshot_pool_size=$snapshot_pool_size, reducer_buffer_size=$reducer_buffer_size." |
| 6 | + |
| 7 | +null_log_device=true # Without logging I/O |
| 8 | +high_priority=false # To set this to true, you must add "yourname - rtprio 99" to limits.conf |
| 9 | +fork_workers=true |
| 10 | +hcc_policy=0 |
| 11 | + |
| 12 | +make clean |
| 13 | +make -j |
| 14 | + |
| 15 | +for whs in 1 4 0 |
| 16 | +do |
| 17 | + OUTFILE="mocc-${whs}w-results.txt" |
| 18 | + printf "# Threads" >> $OUTFILE |
| 19 | + for rep in {1..5} |
| 20 | + do |
| 21 | + printf ",MOCC (W${whs}) [T${rep}]" >> $OUTFILE |
| 22 | + done |
| 23 | + for thr in 2 6 12 16 20 24 32 |
| 24 | + do |
| 25 | + if [ $thr -eq 0 ] |
| 26 | + then |
| 27 | + thread_per_node=1 |
| 28 | + numa_nodes=1 |
| 29 | + else |
| 30 | + thread_per_node=$thr |
| 31 | + numa_nodes=$sys_numa_nodes |
| 32 | + fi |
| 33 | + |
| 34 | + total_threads=$(($thread_per_node * $numa_nodes)) |
| 35 | + |
| 36 | + if [ $whs -eq 0 ] |
| 37 | + then |
| 38 | + warehouses=$total_threads |
| 39 | + else |
| 40 | + warehouses=$whs |
| 41 | + fi |
| 42 | + |
| 43 | + printf "\n$total_threads" >> $OUTFILE |
| 44 | + |
| 45 | + for rep in {1..5} |
| 46 | + do |
| 47 | + echo "hcc_policy=$hcc_policy, warehouses=$warehouses, threads=$total_threads, rep=$rep/5..." |
| 48 | + # be careful. |
| 49 | + rm -rf /dev/shm/foedus_tpcc/ |
| 50 | + rm -rf /tmp/libfoedus.* |
| 51 | + sleep 5 # Linux's release of shared memory has a bit of timelag. |
| 52 | + export CPUPROFILE_FREQUENCY=1 # https://code.google.com/p/gperftools/issues/detail?id=133 |
| 53 | + echo "./tpcc -warehouses=$warehouses -fork_workers=$fork_workers -nvm_folder=/dev/shm -high_priority=$high_priority -null_log_device=$null_log_device -loggers_per_node=$loggers_per_node -thread_per_node=$thread_per_node -numa_nodes=$numa_nodes -log_buffer_mb=$log_buffer_mb -neworder_remote_percent=1 -payment_remote_percent=15 -volatile_pool_size=$volatile_pool_size -snapshot_pool_size=$snapshot_pool_size -reducer_buffer_size=$reducer_buffer_size -duration_micro=$duration_micro -hcc_policy=$hcc_policy" |
| 54 | + xput=$(env CPUPROFILE_FREQUENCY=1 ./tpcc -warehouses=$warehouses -take_snapshot=false -fork_workers=$fork_workers -nvm_folder=/dev/shm -high_priority=$high_priority -null_log_device=$null_log_device -loggers_per_node=$loggers_per_node -thread_per_node=$thread_per_node -numa_nodes=$numa_nodes -log_buffer_mb=$log_buffer_mb -neworder_remote_percent=1 -payment_remote_percent=15 -volatile_pool_size=$volatile_pool_size -snapshot_pool_size=$snapshot_pool_size -reducer_buffer_size=$reducer_buffer_size -duration_micro=$duration_micro -hcc_policy=$hcc_policy 2>&1 | grep 'final result:' | grep -oE '<MTPS>[0-9.]+</MTPS>' | grep -oE '[0-9.]+') |
| 55 | + #xput="${warehouses}.00" |
| 56 | + printf ",$xput" >> $OUTFILE |
| 57 | + done |
| 58 | + done |
| 59 | + printf "\n" >> $OUTFILE |
| 60 | +done |
| 61 | + |
| 62 | +join --header -t , -j 1 mocc-1w-results.txt mocc-4w-results.txt > out.txt |
| 63 | +join --header -t , -j 1 out.txt mocc-0w-results.txt > mocc_results.txt |
| 64 | +rm -f out.txt |
0 commit comments