Commit 12261b31 authored by Antoine Kaufmann's avatar Antoine Kaufmann
Browse files

experiments: makefile support for running experiments N times

make REPLICATION=N
parent c24b5511
......@@ -20,6 +20,8 @@ EXPERIMENTS := \
qemu-ns3-dumbbell-pair \
gem5-kvm-ns3-dumbbell-pair \
REPLICATION ?= 1
BUILDDIR := build
OUTDIR := out
......@@ -34,13 +36,24 @@ clean:
#######################################
# Running experiments
$(OUTDIR)/%/ready: experiments/%.sh $(GUESTS_TARS)
bash $<
define run_experiment_repl
$(OUTDIR)/%/$(1)/ready: experiments/%.sh $(GUESTS_TARS)
bash $$< $(1)
touch $$@
endef
REPLIDS := $(shell seq $(REPLICATION))
$(foreach i,$(REPLIDS), $(eval $(call run_experiment_repl,$(i))))
$(OUTDIR)/%/ready: experiments/%.sh $(addprefix $(OUTDIR)/%/,$(addsuffix /ready,$(REPLIDS)))
touch $@
#######################################
# Guest Tars
guest-tars: $(GUESTS_TARS)
define build_guest
$(1)_OBJS := $(wildcard guests/$(1)/*)
$(BUILDDIR)/$(1).tar: $$($(1)_OBJS)
......
......@@ -39,7 +39,7 @@ GEM5_KERNEL=$EHSIM_BASE/images/vmlinux
# Args:
# - experiment name
init_out() {
export OUTDIR=./out/$1
export OUTDIR=./out/$1/$2
rm -rf $OUTDIR
mkdir -p $OUTDIR
}
......
......@@ -2,7 +2,7 @@
source common-functions.sh
init_out gem5-kvm-corundum-bm-pair
init_out gem5-kvm-corundum-bm-pair $1
run_corundum_bm a
run_corundum_bm b
sleep 0.5
......
......@@ -2,7 +2,7 @@
source common-functions.sh
init_out gem5-kvm-ns3-dumbbell-pair
init_out gem5-kvm-ns3-dumbbell-pair $1
run_corundum_bm a
run_corundum_bm b
sleep 0.5
......
......@@ -2,7 +2,7 @@
source common-functions.sh
init_out gem5-timing-corundum-verilator-pair
init_out gem5-timing-corundum-verilator-pair $1
# first run to checkpoint with fast CPU
run_corundum_verilator a
......
......@@ -2,7 +2,7 @@
source common-functions.sh
init_out qemu-corundum-bm-pair
init_out qemu-corundum-bm-pair $1
run_corundum_bm a
run_corundum_bm b
sleep 0.5
......
......@@ -2,7 +2,7 @@
source common-functions.sh
init_out qemu-corundum-verilator-pair
init_out qemu-corundum-verilator-pair $1
run_corundum_verilator a
run_corundum_verilator b
sleep 0.5
......
......@@ -2,7 +2,7 @@
source common-functions.sh
init_out qemu-ns3-bridge-pair
init_out qemu-ns3-bridge-pair $1
run_corundum_bm a
run_corundum_bm b
sleep 0.5
......
......@@ -2,11 +2,12 @@
source common-functions.sh
init_out qemu-ns3-dumbbell-pair
init_out qemu-ns3-dumbbell-pair $1
run_corundum_bm a
run_corundum_bm b
sleep 0.5
run_ns3_dumbbell ab "a" "b"
#run_ns3_dumbbell ab "a" "b" "--LinkRate=10Mbps --LinkLatency=0"
run_ns3_dumbbell ab "a" "b" "--LinkRate=10Mb/s --LinkLatency=0"
run_qemu a a build/qemu-pair-server.tar
run_qemu b b build/qemu-pair-client.tar
client_pid=$!
......
......@@ -2,7 +2,7 @@
source common-functions.sh
init_out qemu-ns3-nopaxos
init_out qemu-ns3-nopaxos $1
run_corundum_bm c0
run_corundum_bm r0
run_corundum_bm r1
......
Markdown is supported
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