From e24d83918e1ef031362688273dbfd3e44c11d266 Mon Sep 17 00:00:00 2001 From: victoryang00 Date: Wed, 20 Mar 2024 02:23:32 -0700 Subject: [PATCH] push more results --- artifact/common_util.py | 264 ++++++++++++++++-- .../result/ckpt_restore_latency_whole.pdf | Bin 19582 -> 18946 bytes artifact/result/optimistic/optimistic.pdf | Bin 0 -> 30958 bytes artifact/result/optimistic/optimistic_cpu.pdf | Bin 0 -> 13684 bytes .../result/optimistic/optimistic_memory.pdf | Bin 0 -> 12541 bytes artifact/result/performance_multithread.pdf | Bin 17785 -> 17777 bytes artifact/result/performance_singlethread.pdf | Bin 18121 -> 17758 bytes .../result/performance_singlethread_mac.pdf | Bin 19284 -> 18178 bytes lib/wasm-micro-runtime | 2 +- 9 files changed, 246 insertions(+), 20 deletions(-) create mode 100644 artifact/result/optimistic/optimistic.pdf create mode 100644 artifact/result/optimistic/optimistic_cpu.pdf create mode 100644 artifact/result/optimistic/optimistic_memory.pdf diff --git a/artifact/common_util.py b/artifact/common_util.py index 141a53e..c437f72 100644 --- a/artifact/common_util.py +++ b/artifact/common_util.py @@ -3,17 +3,220 @@ import asyncio import time import numpy as np +import matplotlib.pyplot as plt +from collections import defaultdict +import csv pwd_mac = "/Users/victoryang00/Documents/project/MVVM-bench/" -pwd = "/mnt/MVVM" +pwd = "/mnt1/MVVM" slowtier = "epyc" burst = "mac" +def calculate_averages_comparison(results): + workload_normalized = defaultdict(list) + + # Step 1: Normalize values for each workload + for ( + workload, + mvvm_values, + hcontainer_values, + qemu_x86_64_values, + qemu_aarch64_values, + native_values, + ) in results: + if not workload.__contains__("sp") and not workload.__contains__("lu") and not workload.__contains__("tc"): + # Assuming 'pure' is always non-zero + workload_normalized[workload].append( + { + "native": 1, # Baseline + "mvvm": mvvm_values / native_values if native_values else 0, + "hcontainer": hcontainer_values / native_values if native_values else 0, + "qemu_x86_64": qemu_x86_64_values / native_values if native_values else 0, + "qemu_aarch64": qemu_aarch64_values / native_values if native_values else 0, + } + ) + print(workload,workload_normalized[workload]) + + # Step 2 and 3: Calculate total average for each policy + total_averages = defaultdict(float) + for workload, policies in workload_normalized.items(): + for policy, values in policies[0].items(): + total_averages[policy] += values + + # Divide by the number of workloads to get the average + num_workloads = len(workload_normalized) + for policy in total_averages: + total_averages[policy] /= num_workloads + + return dict(total_averages) + + +def calculate_averages(results): + workload_normalized = defaultdict(list) + + # Step 1: Normalize values for each workload + for workload, aot,pure, stack, loop, loop_dirty in results: + # Assuming 'pure' is always non-zero + workload_normalized[workload].append( + { + "pure": 1, # Baseline + "aot": aot / pure if pure else 0, + "stack": stack / pure if pure else 0, + "loop": loop / pure if pure else 0, + "loop_dirty": loop_dirty / pure if pure else 0, + } + ) + + # Step 2 and 3: Calculate total average for each policy + total_averages = defaultdict(float) + for workload, policies in workload_normalized.items(): + for policy, values in policies[0].items(): + total_averages[policy] += values + + # Divide by the number of workloads to get the average + num_workloads = len(workload_normalized) + for policy in total_averages: + total_averages[policy] /= num_workloads + + return dict(total_averages) + + +def plot(results, file_name): + font = {"size": 18} + plt.rc("font", **font) + workloads = defaultdict(list) + + # Simplifying and grouping your data + for workload, aot,pure, stack, loop, loop_dirty in results: + workloads[workload.split(" ")[1].replace(".aot", "")].append( + (pure, aot, stack, loop, loop_dirty) + ) + + # Calculate statistics + statistics = {} + for workload, times in workloads.items(): + pures, aots, stacks, loops, loop_dirtys = zip(*times) + statistics[workload] = [ + ("pure", np.median(pures), np.std(pures)), + ("aot", np.median(aots), np.std(aots)), + ("stack", np.median(stacks), np.std(stacks)), + ("loop", np.median(loops), np.std(loops)), + ("loop_dirty", np.median(loop_dirtys), np.std(loop_dirtys)), + ] + + fig, ax = plt.subplots(figsize=(20, 10)) + index = np.arange(len(statistics)) + bar_width = 0.7 # Adjusted for visual clarity + color = { + "pure": "green", + "aot": "cyan", + "stack": "purple", + "loop": "brown", + "loop_dirty": "red", + } + for i, (workload, stats) in enumerate(statistics.items()): + sorted_stats = sorted(stats, key=lambda x: -x[1]) # Sort by median time + + for j, (label, median, std) in enumerate(sorted_stats): + ax.bar( + index[i], + median, + bar_width, + yerr=std, + color=color[label], + capsize=5, + label=f"{label}" if i == 0 else "", + ) + + ax.set_xticks(index) # Adjust this based on the number of bars per group + ax.set_xticklabels(statistics.keys(), fontsize=18) + ax.set_ylabel("Execution Time (s)") + plt.tight_layout() + ax.legend(loc="upper right") + + plt.savefig(file_name) + + +def plot_whole(results, file_name): + font = {"size": 20} + plt.rc("font", **font) + fig, ax = plt.subplots(figsize=(20, 10)) + + # Simplifying and grouping your data + for idx, result in enumerate(results): + with open(result, "r") as csvfile: + reader = csv.reader(csvfile) + next(reader) + results = [] + for row in reader: + results.append( + ( + row[0], + float(row[1]), + float(row[2]), + float(row[3]), + float(row[5]), + float(row[6]), + ) + ) + + workloads = defaultdict(list) + for workload, aot,pure, stack, loop, loop_dirty in results: + workloads[workload.split(" ")[1].replace(".aot", "")].append( + (pure, aot, stack, loop, loop_dirty) + ) + + # Calculate statistics + statistics = {} + for workload, times in workloads.items(): + pures, aots, stacks, loops, loop_dirtys = zip(*times) + statistics[workload] = [ + ("pure", np.median(pures), np.std(pures)), + ("aot", np.median(aots), np.std(aots)), + ("stack", np.median(stacks), np.std(stacks)), + ("loop", np.median(loops), np.std(loops)), + ("loop_dirty", np.median(loop_dirtys), np.std(loop_dirtys)), + ] + + index = np.arange(len(statistics)) + bar_width = 0.7 / 3 # Adjusted for visual clarity + color = { + "pure": "green", + "aot": "cyan", + "stack": "purple", + "loop": "brown", + "loop_dirty": "red", + } + for i, (workload, stats) in enumerate(statistics.items()): + sorted_stats = sorted(stats, key=lambda x: -x[1]) # Sort by median time + + for j, (label, median, std) in enumerate(sorted_stats): + ax.bar( + index[i] + bar_width * idx, + median, + bar_width, + yerr=std, + color=color[label], + capsize=5, + label=f"{label}" if i == 0 and idx == 0 else "", + ) + + ax.set_xticks( + index + bar_width + ) # Adjust this based on the number of bars per group + ax.set_xticklabels(statistics.keys(), fontsize=20) + ax.set_ylabel("Execution Time (s)") + plt.tight_layout() + ax.legend(loc="upper right") + + plt.savefig(file_name) + + def get_avg_99percent(data): - group_size = 10000 + group_size = 1000 num_groups = len(data) // group_size - grouped_data = np.reshape(data[:num_groups * group_size], (num_groups, group_size)) + grouped_data = np.reshape(data[: num_groups * group_size], (num_groups, group_size)) avg_values = np.mean(grouped_data, axis=1) percentile99_values = np.percentile(grouped_data, 99, axis=1) @@ -22,10 +225,18 @@ def get_avg_99percent(data): percentile99_extended = np.repeat(percentile99_values, group_size) # Append the remaining data points to the extended arrays - avg_extended = np.concatenate((avg_extended, [avg_values[-1]] * (len(data) - len(avg_extended)))) - percentile99_extended = np.concatenate((percentile99_extended, [percentile99_values[-1]] * (len(data) - len(percentile99_extended)))) + avg_extended = np.concatenate( + (avg_extended, [avg_values[-1]] * (len(data) - len(avg_extended))) + ) + percentile99_extended = np.concatenate( + ( + percentile99_extended, + [percentile99_values[-1]] * (len(data) - len(percentile99_extended)), + ) + ) return avg_extended, percentile99_extended + def parse_time(time_string): # Split the time string into components components = time_string.split(":") @@ -88,11 +299,11 @@ def get_func_index(func, file): ".aot", "-pure.aot", "-stack.aot", - "-ckpt-every-dirty.aot", + # "-ckpt-every-dirty.aot", "-ckpt-loop.aot", "-ckpt-loop-dirty.aot", ] -trial = 1 +trial = 10 def contains_result(output: str, result: str) -> bool: @@ -451,13 +662,15 @@ def run_checkpoint_restore_slowtier( os.system( f"script -q /dev/null -c 'ssh -t {slowtier} {pwd}/build/MVVM_restore -t {pwd}/build/bench/{aot_file1} {extra2}' >> MVVM_restore.1.out &" ) - os.system(f"ssh -t {slowtier} {pwd}/artifact/run_with_cpu_monitoring_nocommand.sh MVVM_restore &") + os.system( + f"ssh -t {slowtier} {pwd}/artifact/run_with_cpu_monitoring_nocommand.sh MVVM_restore &" + ) # print(f"ssh -t {slowtier} bash -c 'cd {pwd}/build && {pwd}/artifact/run_with_cpu_monitoring_nocommand.sh MVVM_restore' &") os.system( f"script -q /dev/null -c './MVVM_restore -t ./bench/{aot_file1} {extra3}' >> MVVM_restore.out &" ) os.system(f"../artifact/run_with_cpu_monitoring_nocommand.sh MVVM_restore &") - + os.system("sleep 15") os.system( f"../artifact/run_with_cpu_monitoring.sh ./MVVM_checkpoint -t ./bench/{aot_file1} {' '.join(['-a ' + str(x) for x in arg1])} -e {env} {extra1} &" @@ -490,10 +703,12 @@ def run_checkpoint_restore_slowtier( res.append((exec, output)) return res + def exec_with_log(cmd): print(cmd) os.system(cmd) - + + def run_checkpoint_restore_burst( aot_file: str, arg: list[str], @@ -526,11 +741,15 @@ def run_checkpoint_restore_burst( f"ssh -t {burst} {pwd_mac}/artifact/run_with_energy_monitoring_mac.sh MVVM_restore 0 {aot_file} &" ) - exec_with_log(f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file1} {extra3}' >> MVVM_restore.1.out &") + exec_with_log( + f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file1} {extra3}' >> MVVM_restore.1.out &" + ) exec_with_log( f"../artifact/run_with_energy_monitoring.sh MVVM_restore 1 {aot_file} &" ) - exec_with_log(f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file} {extra7}' >> MVVM_restore.4.out &") + exec_with_log( + f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file} {extra7}' >> MVVM_restore.4.out &" + ) exec_with_log( f"../artifact/run_with_energy_monitoring.sh MVVM_restore 4 {aot_file1} &" ) @@ -548,9 +767,9 @@ def run_checkpoint_restore_burst( ) # exec_with_log(f"ssh -t mac ../artifact/run_with_energy_monitoring_mac.sh MVVM_checkpoint 1 {aot_file} &") exec_with_log(f"pkill -SIGINT MVVM_checkpoint") - + exec_with_log("sleep 100") - + exec_with_log(f"ssh -t {burst} pkill -SIGINT MVVM_restore") exec_with_log(f"ssh -t {burst} pkill -SIGINT MVVM_checkpoint") exec_with_log( @@ -561,10 +780,14 @@ def run_checkpoint_restore_burst( ) exec_with_log("sleep 100") exec_with_log(f"pkill -SIGINT MVVM_restore") - exec_with_log(f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file} {extra9}' >> MVVM_restore.6.out &") - exec_with_log(f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file1} {extra5}' >> MVVM_restore.3.out &") + exec_with_log( + f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file} {extra9}' >> MVVM_restore.6.out &" + ) + exec_with_log( + f"script -f -q /dev/null -c './MVVM_restore -t ./bench/{aot_file1} {extra5}' >> MVVM_restore.3.out &" + ) # Return a combined result or just the checkpoint result as needed - + exec_with_log("sleep 100") exec_with_log(f"ssh -t {burst} pkill -SIGINT MVVM_restore") exec_with_log(f"sleep 1000") @@ -602,8 +825,10 @@ def run_slowtier( def run_burst( aot_file: str, arg: list[str], env: str, extra: str = "" ) -> tuple[str, str]: - os.system(f"script -q /dev/null -c 'ssh -t {burst} ./MVVM_checkpoint -t ./bench/{aot_file} {' '.join(['-a ' + str(x) for x in arg])} -e {env} {extra}' > burst.out") - cmd = ("cat burst.out") + os.system( + f"script -q /dev/null -c 'ssh -t {burst} ./MVVM_checkpoint -t ./bench/{aot_file} {' '.join(['-a ' + str(x) for x in arg])} -e {env} {extra}' > burst.out" + ) + cmd = "cat burst.out" print(cmd) cmd = cmd.split() result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) @@ -690,3 +915,4 @@ def run_qemu_aarch64( print(get_func_index("__wasi_fd_read", "./test/read-file.wasm")) print(get_func_index("sendto", "./test/client.wasm")) print(get_func_index("atomic_wait", "./bench/hdastar.wasm")) + plot_whole(["policy.csv", "policy_multithread.csv", "policy_mac.csv"], "policy.pdf") diff --git a/artifact/result/ckpt_restore_latency_whole.pdf b/artifact/result/ckpt_restore_latency_whole.pdf index 51a2842c3e76e50d95e26d48d07e1c9127ac55d2..a661cd69733019bba9dce9711f7c6c8e41dc06a0 100644 GIT binary patch delta 8145 zcmZ`;c|278_x}>g6lGtEt|VK`zD4$(N%ke%U}EesLS$^wCeUElE7uToxQQ#-nd;>N;8sa+OG8IDiW3dMuU`100*QnO|L9Ql^75wn0Z7Cu6I>nA zK=FbI#I<)4#hFT0^9}@#LGK8Njer2K2n=8gz>kuBARSfa2vsa|MuVL4Zv1qxn+Ep0L2bKG>4LvDPbhzn0%KQmnDG%CORY z@QzZlk9JvObZeVv4X>uI=vma8YR8r3(Ou+XUUW1JWeqYPrOgPy&Frz z(6+b2@YCeC=X*J0W_NZg=fmll<@JR4_r{`bK5_>1c??nl63x_gne_mLxU}|$Ak@1bVk0#M3#l;+aOt5u|(Jjln@Y38zPR)bVVe4SELceCb!(_`{Sx?*Vi*eh9cyeyAPTAaY$E$cTNIp&iY~m&8xMiq&yK%y@A@VG+@V~J z_Geje`Y>L)R6{%VbTN?2p2T|%)pY%`P$)}tyoVXz1_N|W;sp9=7iND;Vot6d8bk2!>D|#cm zlPeAWRr?4nGY*IM50m)7d6$rI{P04b3?AmtqF3yEIQO za_5=j`egXN&T$46z1>&a=fyge@aTM0Vu~aTsdtvGYpaK<`Q4Y<+d0HLvTCDv7GH#) zIj2THzR0!B#MjJBr5U(mQ{eS*#;%zQ1=vidO{7*ZsA~R#RLp^6S2&|zP?rSA^LetG z<9JGOQFxBT>~u<>j6w+e;K+4tDANJ$=4Jv99)(ZMN@ygPa;M8CAB3DWX4?9o#cf}j z+e?0B{4m`gq0!CZT>@6*@`fwJsMhpWH(?#&;}&iU#l^&I(^=|CaFk||BQQ33n^JN; zjP|i4DU{Eg{mwlVar+#y@B!(X81IJ`q~^eOOmcRuRP`}6tF4uI3}?&@^RY<<=aQm} zEL&3q97wvHTMt?GRVeMM{JWjYCR0e|szvgYocz|fV(IFr?5_k{l2!W-Wo9y6ub~L0 zW7&1-ZID#OJNqWV5t;(ktX-%<+8(N}lFS8+`lX6@vknChD4I9!d3RWvZP8UX3>wUQ za4RR0h~DD(u;%L6WUzBd-bEIZtiJYZ2V+>c?c6e;Jj=oGW)eMS+|4iz3)h+3DaPgF zS|1RGV&-T5n$QLe9#}96l|GE!*>_%#%-!`lDXCbkYmW4-NCqHtiI_IlJ*vvw)h_O) zeBE@k1^=q3)vyTlneadoZerFPpIWU`eYj3Ny{JORll{{4&GxK&uypq{DB>bAM|YC8 z%qGMN+LDkZd41e@Svp5Tf;IS2EpaMI*YcqP*4nEW6;Z61;8TpC$DU!>Gdgc-f)Fjz zo~aRgz}Xo2?Ty+wR;FBs@aOTxMQm63rOZ&gmu(xO{EC<=Ovj*hDu&vrb^Ppei{V>3 zfo0AWyHaxs*aJVR93vIFU*h!BGve&AKumEfg4a?c{ z&(I+zx1h+=Ej0y>U9`f9izq%Sw0=2Sss=^*p*b{V-23+McBmAVX#2@XI~U%L`Py!# z*&nE4NHJchlcC%ZOFo{^*b{4WQ&JN95D@4-2!;34kCTYkAW zufPAIAP8_7lH4CKKNoW{qwKHIdTnAr;$%ByInbEP+tR1vGwp6e%D=KLM6SmA#b6WC zED=`S09O5~>j5|6)-5DM8-p|Kr>G(ZP6w9M>!MWk_!mh*#clvK{xqv^X~p+h2fA=K zktHS4OxkK3|Ed(~DkJ=*q(Z~QUVh7$E*2fnf{JCto1_o57fV>8rQED6B5WP2c3iR< zf32owuFJV=+0E@~)4AirM@@8|NZ9FdEoNWNdszaB=~tul?|BJiMiwsY6P?W;dk>v? z5{sz-_3V$ThO9j-v>TnnkRSBF`Z04OfwQ*aXmhKcNtAn{@0TuX+uiQb?GMFM>`Qmg z_!vE1iuiPD@yCKsNI;m}_j7-b&&i%X)uhu{6A}uQ2<(0<-|M;iOwsl`R|q#=(;Y^y zoMNq`DLK0tMt64iZtpF4^Eq(w#jCj= K^aY894L@W2tHSHCm7pMXWCP`MNxJ-^Bqj> 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 MNJGPFleN(Q0U~H9fdBvi diff --git a/artifact/result/optimistic/optimistic.pdf b/artifact/result/optimistic/optimistic.pdf new file mode 100644 index 0000000000000000000000000000000000000000..31aae5968310d6b6c6b47f8539825860518b7c22 GIT binary patch literal 30958 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 SV~7GqK$2QOKv`Rb`hNh_tWZ4w literal 0 HcmV?d00001 diff --git a/artifact/result/optimistic/optimistic_cpu.pdf b/artifact/result/optimistic/optimistic_cpu.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5d6ddb207775e2a45dd8636f606fa1b825c553f0 GIT binary patch literal 13684 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 G0sB8n_Iy_W literal 0 HcmV?d00001 diff --git a/artifact/result/performance_multithread.pdf b/artifact/result/performance_multithread.pdf index 99c941837856b7d17e4150f1899d9e44e974c8ec..1d33cfcd857d7feddc92454fd3dd25932cf11634 100644 GIT binary patch delta 7813 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 Wbar>dnt@;_l#mdJi%U*T9`t_;InfpX delta 7685 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 diff --git a/artifact/result/performance_singlethread.pdf b/artifact/result/performance_singlethread.pdf index 22fe401ce51bdd61036dc5646060d3e0f9c886e0..2f84774a89470262a42d91158911d163a744b691 100644 GIT binary patch delta 7556 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
+al$==AfR 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 Y-I0DYa%^m{P!P(=z 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 diff --git a/lib/wasm-micro-runtime b/lib/wasm-micro-runtime index fb1f604..56c3832 160000 --- a/lib/wasm-micro-runtime +++ b/lib/wasm-micro-runtime @@ -1 +1 @@ -Subproject commit fb1f604946bdc1673dd3b638a59af002aed69833 +Subproject commit 56c3832e288ee4ba6d06d0fa87e9cca0fdb3af98