80 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| binary=./release/benchmarks/basic
 | |
| preload="LD_PRELOAD=~bachelet/local/kephren/lib64/libstdc++.so.6"
 | |
| repeat=20
 | |
| 
 | |
| outdir="rtbenchmarks/data_basic"
 | |
| 
 | |
| [ -x "${binary}" ] || exit 1
 | |
| 
 | |
| run() {
 | |
| 	coreset=$1
 | |
| 	size=$2
 | |
| 	method=$3
 | |
| 	sample=$4
 | |
| 	ncores=$5
 | |
| 	prefix="${size}:${method}:${sample}:${ncores}"
 | |
| 
 | |
| 	for i in $(seq ${repeat}); do
 | |
| 		t=$(eval "${preload} taskset -c ${coreset} ${binary} ${size} ${method} ${sample} ${ncores}"|cut -d' ' -f2)
 | |
| 		echo "${prefix}:${t}"
 | |
| 	done
 | |
| }
 | |
| 
 | |
| benchSeq() {
 | |
| 	sizes=(100 1000 10000 100000 1000000 10000000)
 | |
| 
 | |
| 	coreset=0
 | |
| 	sample=0 # seq
 | |
| 	ncores=1
 | |
| 
 | |
| 	echo "---- benchSeq ----"
 | |
| 
 | |
| 	for method in seq omp gen_omp gen_thread; do
 | |
| 		echo "==== ${method}"
 | |
| 		for size in ${sizes[@]}; do
 | |
| 			run "${coreset}" "${size}" "${method}" "${sample}" "${ncores}"
 | |
| 		done|tee "${outdir}/rt_seq_${method}"
 | |
| 	done
 | |
| }
 | |
| 
 | |
| benchCores() {
 | |
| 	cores=(1 2 4 6 8 10 12 14 16 18)
 | |
| 
 | |
| 	size=10000000
 | |
| 	sample=1 # par
 | |
| 
 | |
| 	echo "---- benchCores ----"
 | |
| 
 | |
| 	for method in omp gen_omp gen_thread; do
 | |
| 		echo "==== ${method}"
 | |
| 		for ncores in ${cores[@]}; do
 | |
| 			maxcore=$((ncores*4 - 1))
 | |
| 			coreset="$(seq -s, 0 4 ${maxcore})"
 | |
| 			run "${coreset}" "${size}" "${method}" "${sample}" "${ncores}"
 | |
| 		done|tee "${outdir}/rt_cores_${method}"
 | |
| 	done
 | |
| }
 | |
| 
 | |
| benchSize() {
 | |
| 	sizes=(100 1000 10000 100000 1000000 10000000)
 | |
| 	ncores=$1
 | |
| 
 | |
| 	maxcore=$((ncores*4 - 1))
 | |
| 	coreset="$(seq -s, 0 4 ${maxcores})"
 | |
| 
 | |
| 	sample=1 # par
 | |
| 
 | |
| 	echo "---- benchSize (ncores: ${ncores}) ----"
 | |
| 
 | |
| 	for method in seq omp gen_omp gen_thread; do
 | |
| 		echo "==== ${method}"
 | |
| 		for size in ${sizes[@]}; do
 | |
| 			run "${coreset}" "${size}" "${method}" "${sample}" "${ncores}"
 | |
| 		done|tee "${outdir}/rt_size_${ncores}_${method}"
 | |
| 	done
 | |
| }
 | |
| 
 | |
| eval "$*"
 |