Commit 14355c20 authored by Florian Fischer's avatar Florian Fischer
Browse files

add latency evaluation

parent beb6ce51
......@@ -21,36 +21,53 @@ if [ -d "$OUT" ]; then
mv "$OUT" "$OUT"-"$ctime"
fi
COMMON_ARGS=(--data-dir "$OUT" --ssh-port "${SSH_PORT}" \
--time "${TIME}" -r "${RUNS}" --host "${HOST}" --perf-energy)
mkdir -p "${OUT}"/{latency,throughput}
NUMA_ARGS=--measure-cmd="numactl --cpunodebind=netdev:10gbe-card-p1 /usr/bin/time -o {BENCHDIR}/server_stats.{RUN}.txt -v"
COMMON_ARGS=(--ssh-port "${SSH_PORT}" --host "${HOST}" --perf-energy)
#--host "${HOST}" --perf-energy "${NUMA_ARGS}")
COMMON_ARGS_THROUGHPUT=(${COMMON_ARGS[@]} --data-dir ${OUT}/throughput \
-c "500,1000,5000,10000" --time "${TIME}" -r "${RUNS}")
COMMON_ARGS_LATENCY=(${COMMON_ARGS[@]} --data-dir ${OUT}/latency \
-c "5000" --iterations 1000 -r 2 \
--additional-client-args "--histogram {BENCHDIR}/latencies.{RUN}.csv")
echo "muhq's MA io eval"
echo 'Writing results to' "$OUT"
echo 'Using arguments:' "${COMMON_ARGS[@]}"
echo 'arguments:' "${COMMON_ARGS[@]}"
echo 'throughput-arguments:' "${COMMON_ARGS_THROUGHPUT[@]}"
echo 'latency-arguments:' "${COMMON_ARGS_LATENCY[@]}"
# Baseline measurements
./eval.py "${COMMON_ARGS[@]}" -f vanilla computation-200us -- emper
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f vanilla computation-200us -- emper
# No sleep measurements
./eval.py "${COMMON_ARGS[@]}" -f no-sleep no-sleep-0us-1ms -- emper
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f no-sleep no-sleep-0us-1ms -- emper
# Measure parsimonious sem
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f parsimonious-sem -- emper
# Measure registering io_uring fd's improvements
./eval.py "${COMMON_ARGS[@]}" -f not-register-iouring -- emper
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f not-register-iouring -- emper
# Measurements comparing runtimes
./eval.py "${COMMON_ARGS[@]}" -- go go-200us tokio tokio-200us
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -- go go-200us tokio tokio-200us
# Measurements showing distributed design improvements
./eval.py "${COMMON_ARGS[@]}" -f simple-arch simple-arch-try-syscall -- emper
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f simple-arch simple-arch-try-syscall -- emper
# Measurements showing linked future improvements
./eval.py "${COMMON_ARGS[@]}" -f linked-futures -- emper
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f no-linked-futures -- emper
# Measurements showing sleep strategies
./eval.py "${COMMON_ARGS[@]}" -f pipe waitfd -- emper
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f pipe waitfd -- emper
# Measurements showing completer, stealing, notification benefits
./eval.py "${COMMON_ARGS[@]}" -f \
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f \
io-stealing \
pipe-no-comp io-stealing-pipe-no-comp \
waitfd-no-comp io-stealing-waitfd-no-comp \
......@@ -58,7 +75,7 @@ echo 'Using arguments:' "${COMMON_ARGS[@]}"
-- emper
# Measurements showing completer, stealing notification benefits with computation
./eval.py "${COMMON_ARGS[@]}" -f \
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f \
computation-0us-1ms io-stealing-0us-1ms \
pipe-0us-1ms pipe-no-comp-0us-1ms \
io-stealing-pipe-no-comp-0us-1ms \
......@@ -68,14 +85,14 @@ echo 'Using arguments:' "${COMMON_ARGS[@]}"
-- emper
# Measurements waitfree notification variants benefits
./eval.py "${COMMON_ARGS[@]}" -f \
./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f \
io-notification-waitfree io-notification-waitfree-no-comp \
io-notification-waitfree-0us-1ms io-notification-waitfree-no-comp-0us-1ms \
-- emper
# Measure lockless stealing variants seperatly because they are not reliable
# and thus easier to skip
#./eval.py "${COMMON_ARGS[@]}" -f \
#./eval.py "${COMMON_ARGS_THROUGHPUT[@]}" -f \
#io-stealing-lockless \
#io-stealing-pipe-no-comp-lockless \
#io-stealing-waitfd-no-comp-lockless \
......@@ -86,3 +103,16 @@ echo 'Using arguments:' "${COMMON_ARGS[@]}"
#io-notification-waitfree-no-comp-lockless \
#io-notification-waitfree-no-comp-lockless-0us-1ms \
#-- emper
# Latency evaluation
./eval.py "${COMMON_ARGS_LATENCY[@]}" -f computation-200us computation-0us-1ms no-sleep-0us-1ms \
-- emper go-200us tokio-200us
./eval.py "${COMMON_ARGS_LATENCY[@]}" -f \
pipe-0us-1ms pipe-no-comp-0us-1ms \
io-stealing-pipe-0us-1ms io-stealing-pipe-no-comp-0us-1ms \
waitfd-0us-1ms waitfd-no-comp-0us-1ms \
io-stealing-waitfd-0us-1ms io-stealing-waitfd-no-comp-0us-1ms \
io-notification-waitfd-0us-1ms io-notification-waitfd-no-comp-0us-1ms \
io-notification-waitfd-waitfree-no-comp-0us-1ms \
-- emper
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment