diff --git a/runtime/experiments/deadline_description/cifar10/airplane1.bmp b/runtime/experiments/deadline_description/cifar10/airplane1.bmp new file mode 100644 index 0000000..7577ad9 Binary files /dev/null and b/runtime/experiments/deadline_description/cifar10/airplane1.bmp differ diff --git a/runtime/experiments/deadline_description/cifar10/template.json b/runtime/experiments/deadline_description/cifar10/template.json new file mode 100644 index 0000000..0a39df0 --- /dev/null +++ b/runtime/experiments/deadline_description/cifar10/template.json @@ -0,0 +1,15 @@ +{ + "active": true, + "name": "cifar10", + "path": "cifar10_wasm.so", + "port": 10000, + "expected-execution-us": 5000, + "relative-deadline-us": 50000, + "argsize": 1, + "http-req-headers": [], + "http-req-content-type": "image/bmp", + "http-req-size": 4096, + "http-resp-headers": [], + "http-resp-size": 128, + "http-resp-content-type": "text/plain" +} diff --git a/runtime/experiments/deadline_description/run.sh b/runtime/experiments/deadline_description/run.sh index e6a62d6..3a09b10 100755 --- a/runtime/experiments/deadline_description/run.sh +++ b/runtime/experiments/deadline_description/run.sh @@ -11,11 +11,12 @@ source framework.sh || exit 1 source get_result_count.sh || exit 1 source panic.sh || exit 1 source path_join.sh || exit 1 +source validate_dependencies.sh || exit 1 # TODO: Excluding gocr because of difficulty used gocr with hey # Please keep the element ordered alphabetically! # declare -a workloads=(ekf resize lpd gocr) -declare -a workloads=(ekf lpd resize) +declare -a workloads=(ekf lpd resize cifar10) declare -a multiples=(1.5 1.6 1.7 1.8 1.9 2.0) profile() { @@ -24,15 +25,23 @@ profile() { # ekf hey -disable-compression -disable-keepalive -disable-redirects -n 256 -c 1 -cpus 1 -t 0 -o csv -m GET -D "./ekf/initial_state.dat" "http://${hostname}:10000" > /dev/null + printf "[ekf: OK]\n" # Resize hey -disable-compression -disable-keepalive -disable-redirects -n 256 -c 1 -cpus 1 -t 0 -o csv -m GET -D "./resize/shrinking_man_large.jpg" "http://${hostname}:10001" > /dev/null + printf "[resize: OK]\n" # lpd hey -disable-compression -disable-keepalive -disable-redirects -n 256 -c 1 -cpus 1 -t 0 -o csv -m GET -D "./lpd/Cars0.png" "http://${hostname}:10002" > /dev/null + printf "[lpd: OK]\n" # gocr - Hit error. Commented out temporarily # hey -disable-compression -disable-keepalive -disable-redirects -n 256 -c 1 -cpus 1 -t 0 -o csv -m GET -D "./gocr/hyde.pnm" "http://${hostname}:10003" > /dev/null + printf "[gocr: OK]\n" + + # cifar10 + hey -disable-compression -disable-keepalive -disable-redirects -n 256 -c 1 -cpus 1 -t 0 -o csv -m GET -D "./cifar10/airplane1.bmp" "http://${hostname}:10004" > /dev/null + printf "[cifar10: OK]\n" } get_baseline_execution() { diff --git a/runtime/experiments/deadline_description/spec.json b/runtime/experiments/deadline_description/spec.json index 55c3f41..6ba8705 100644 --- a/runtime/experiments/deadline_description/spec.json +++ b/runtime/experiments/deadline_description/spec.json @@ -57,4 +57,20 @@ "http-resp-headers": [], "http-resp-size": 5335057, "http-resp-content-type": "text/plain" -} +}, +{ + "active": true, + "name": "cifar10", + "path": "cifar10_wasm.so", + "port": 10004, + "expected-execution-us": 5000, + "relative-deadline-us": 50000, + "argsize": 1, + "http-req-headers": [], + "http-req-content-type": "image/bmp", + "http-req-size": 4096, + "http-resp-headers": [], + "http-resp-size": 128, + "http-resp-content-type": "text/plain" + } + \ No newline at end of file diff --git a/runtime/experiments/workload_mix_realworld/cifar10/airplane1.bmp b/runtime/experiments/workload_mix_realworld/cifar10/airplane1.bmp new file mode 100644 index 0000000..7577ad9 Binary files /dev/null and b/runtime/experiments/workload_mix_realworld/cifar10/airplane1.bmp differ diff --git a/runtime/experiments/workload_mix_realworld/mix.csv b/runtime/experiments/workload_mix_realworld/mix.csv index 69b9e80..0b3a67b 100644 --- a/runtime/experiments/workload_mix_realworld/mix.csv +++ b/runtime/experiments/workload_mix_realworld/mix.csv @@ -1,6 +1,24 @@ +500,ekf_1.5 +500,ekf_1.6 +500,ekf_1.7 +500,ekf_1.8 +500,ekf_1.9 +500,ekf_2.0 +25,cifar10_1.5 +25,cifar10_1.6 +25,cifar10_1.7 +25,cifar10_1.8 +25,cifar10_1.9 +25,cifar10_2.0 5,lpd_1.5 5,lpd_1.6 5,lpd_1.7 5,lpd_1.8 5,lpd_1.9 5,lpd_2.0 +1,resize_1.5 +1,resize_1.6 +1,resize_1.7 +1,resize_1.8 +1,resize_1.9 +1,resize_2.0 diff --git a/runtime/experiments/workload_mix_realworld/run.sh b/runtime/experiments/workload_mix_realworld/run.sh index 673a2ee..646d199 100755 --- a/runtime/experiments/workload_mix_realworld/run.sh +++ b/runtime/experiments/workload_mix_realworld/run.sh @@ -31,6 +31,7 @@ declare -Ar body=( [ekf]="-D ./ekf/ekf_raw.dat" [resize]="-D ./resize/shrinking_man_large.jpg" [lpd]="-D ./lpd/Cars0.png" + [cifar10]="-D ./cifar10/airplane1.bmp" ) initialize_globals() { @@ -115,7 +116,8 @@ run_experiments() { ((batch_id++)) for workload in "${workloads[@]}"; do if ((roll >= floor[$workload] && roll < floor[$workload] + length[$workload])); then - hey -disable-compression -disable-keepalive -disable-redirects -n $batch_size -c 1 -cpus 1 -t 0 -o csv -m GET ${body[$workload]} "http://${hostname}:${port[$workload]}" > /dev/null 2> /dev/null & + workload_class=$(echo "$workload"| cut -d'_' -f 1) + hey -disable-compression -disable-keepalive -disable-redirects -n $batch_size -c 1 -cpus 1 -t 0 -o csv -m GET ${body[$workload_class]} "http://${hostname}:${port[$workload]}" > /dev/null 2> /dev/null & break fi done diff --git a/runtime/experiments/workload_mix_realworld/spec.json b/runtime/experiments/workload_mix_realworld/spec.json index bd85156..dbedcb6 100644 --- a/runtime/experiments/workload_mix_realworld/spec.json +++ b/runtime/experiments/workload_mix_realworld/spec.json @@ -1,10 +1,106 @@ + { + "active": true, + "name": "cifar10_1.5", + "path": "cifar10_wasm.so", + "port": 10018, + "expected-execution-us": 2777, + "relative-deadline-us": 4166, + "argsize": 1, + "http-req-headers": [], + "http-req-content-type": "image/bmp", + "http-req-size": 4096, + "http-resp-headers": [], + "http-resp-size": 128, + "http-resp-content-type": "text/plain", + "admissions-percentile": 90 + }, + { + "active": true, + "name": "cifar10_1.6", + "path": "cifar10_wasm.so", + "port": 10019, + "expected-execution-us": 2777, + "relative-deadline-us": 4443, + "argsize": 1, + "http-req-headers": [], + "http-req-content-type": "image/bmp", + "http-req-size": 4096, + "http-resp-headers": [], + "http-resp-size": 128, + "http-resp-content-type": "text/plain", + "admissions-percentile": 90 + }, + { + "active": true, + "name": "cifar10_1.7", + "path": "cifar10_wasm.so", + "port": 10020, + "expected-execution-us": 2777, + "relative-deadline-us": 4721, + "argsize": 1, + "http-req-headers": [], + "http-req-content-type": "image/bmp", + "http-req-size": 4096, + "http-resp-headers": [], + "http-resp-size": 128, + "http-resp-content-type": "text/plain", + "admissions-percentile": 90 + }, + { + "active": true, + "name": "cifar10_1.8", + "path": "cifar10_wasm.so", + "port": 10021, + "expected-execution-us": 2777, + "relative-deadline-us": 4999, + "argsize": 1, + "http-req-headers": [], + "http-req-content-type": "image/bmp", + "http-req-size": 4096, + "http-resp-headers": [], + "http-resp-size": 128, + "http-resp-content-type": "text/plain", + "admissions-percentile": 90 + }, + { + "active": true, + "name": "cifar10_1.9", + "path": "cifar10_wasm.so", + "port": 10022, + "expected-execution-us": 2777, + "relative-deadline-us": 5276, + "argsize": 1, + "http-req-headers": [], + "http-req-content-type": "image/bmp", + "http-req-size": 4096, + "http-resp-headers": [], + "http-resp-size": 128, + "http-resp-content-type": "text/plain", + "admissions-percentile": 90 + }, + { + "active": true, + "name": "cifar10_2.0", + "path": "cifar10_wasm.so", + "port": 10023, + "expected-execution-us": 2777, + "relative-deadline-us": 5554, + "argsize": 1, + "http-req-headers": [], + "http-req-content-type": "image/bmp", + "http-req-size": 4096, + "http-resp-headers": [], + "http-resp-size": 128, + "http-resp-content-type": "text/plain", + "admissions-percentile": 90 + }, { "active": true, "name": "ekf_1.5", "path": "ekf_wasm.so", "port": 10000, - "expected-execution-us": 500, - "relative-deadline-us": 750, + "expected-execution-us": 36, + "relative-deadline-us": 54, "argsize": 1, "http-req-headers": [], "http-req-content-type": "application/octet-stream", @@ -19,8 +115,8 @@ "name": "ekf_1.6", "path": "ekf_wasm.so", "port": 10001, - "expected-execution-us": 500, - "relative-deadline-us": 800, + "expected-execution-us": 36, + "relative-deadline-us": 58, "argsize": 1, "http-req-headers": [], "http-req-content-type": "application/octet-stream", @@ -35,8 +131,8 @@ "name": "ekf_1.7", "path": "ekf_wasm.so", "port": 10002, - "expected-execution-us": 500, - "relative-deadline-us": 850, + "expected-execution-us": 36, + "relative-deadline-us": 61, "argsize": 1, "http-req-headers": [], "http-req-content-type": "application/octet-stream", @@ -51,8 +147,8 @@ "name": "ekf_1.8", "path": "ekf_wasm.so", "port": 10003, - "expected-execution-us": 500, - "relative-deadline-us": 900, + "expected-execution-us": 36, + "relative-deadline-us": 65, "argsize": 1, "http-req-headers": [], "http-req-content-type": "application/octet-stream", @@ -67,8 +163,8 @@ "name": "ekf_1.9", "path": "ekf_wasm.so", "port": 10004, - "expected-execution-us": 500, - "relative-deadline-us": 950, + "expected-execution-us": 36, + "relative-deadline-us": 68, "argsize": 1, "http-req-headers": [], "http-req-content-type": "application/octet-stream", @@ -83,8 +179,8 @@ "name": "ekf_2.0", "path": "ekf_wasm.so", "port": 10005, - "expected-execution-us": 500, - "relative-deadline-us": 1000, + "expected-execution-us": 36, + "relative-deadline-us": 72, "argsize": 1, "http-req-headers": [], "http-req-content-type": "application/octet-stream", @@ -99,8 +195,8 @@ "name": "lpd_1.5", "path": "lpd_wasm.so", "port": 10006, - "expected-execution-us": 62400, - "relative-deadline-us": 93600, + "expected-execution-us": 15686, + "relative-deadline-us": 23529, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -115,8 +211,8 @@ "name": "lpd_1.6", "path": "lpd_wasm.so", "port": 10007, - "expected-execution-us": 62400, - "relative-deadline-us": 99840, + "expected-execution-us": 15686, + "relative-deadline-us": 25098, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -131,8 +227,8 @@ "name": "lpd_1.7", "path": "lpd_wasm.so", "port": 10008, - "expected-execution-us": 62400, - "relative-deadline-us": 106080, + "expected-execution-us": 15686, + "relative-deadline-us": 26666, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -147,8 +243,8 @@ "name": "lpd_1.8", "path": "lpd_wasm.so", "port": 10009, - "expected-execution-us": 62400, - "relative-deadline-us": 112320, + "expected-execution-us": 15686, + "relative-deadline-us": 28235, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -163,8 +259,8 @@ "name": "lpd_1.9", "path": "lpd_wasm.so", "port": 10010, - "expected-execution-us": 62400, - "relative-deadline-us": 118560, + "expected-execution-us": 15686, + "relative-deadline-us": 29803, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -179,8 +275,8 @@ "name": "lpd_2.0", "path": "lpd_wasm.so", "port": 10011, - "expected-execution-us": 62400, - "relative-deadline-us": 124800, + "expected-execution-us": 15686, + "relative-deadline-us": 31372, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -195,8 +291,8 @@ "name": "resize_1.5", "path": "resize_wasm.so", "port": 10012, - "expected-execution-us": 295500, - "relative-deadline-us": 443250, + "expected-execution-us": 131861, + "relative-deadline-us": 197792, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -211,8 +307,8 @@ "name": "resize_1.6", "path": "resize_wasm.so", "port": 10013, - "expected-execution-us": 295500, - "relative-deadline-us": 472800, + "expected-execution-us": 131861, + "relative-deadline-us": 210978, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -227,8 +323,8 @@ "name": "resize_1.7", "path": "resize_wasm.so", "port": 10014, - "expected-execution-us": 295500, - "relative-deadline-us": 502350, + "expected-execution-us": 131861, + "relative-deadline-us": 224164, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -243,8 +339,8 @@ "name": "resize_1.8", "path": "resize_wasm.so", "port": 10015, - "expected-execution-us": 295500, - "relative-deadline-us": 531900, + "expected-execution-us": 131861, + "relative-deadline-us": 237350, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -259,8 +355,8 @@ "name": "resize_1.9", "path": "resize_wasm.so", "port": 10016, - "expected-execution-us": 295500, - "relative-deadline-us": 561450, + "expected-execution-us": 131861, + "relative-deadline-us": 250536, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg", @@ -275,8 +371,8 @@ "name": "resize_2.0", "path": "resize_wasm.so", "port": 10017, - "expected-execution-us": 295500, - "relative-deadline-us": 591000, + "expected-execution-us": 131861, + "relative-deadline-us": 263722, "argsize": 1, "http-req-headers": [], "http-req-content-type": "image/jpeg",