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 "$*"
|