Wasm-R3: Record-Reduce-Replay for Realistic and Standalone WebAssembly Benchmarks

Doehyun Baek, Jakob Getz, Yusung Sim, Daniel Lehmann, Ben L. Titzer, Sukyoung Ryu, Michael Pradel
{"title":"Wasm-R3: Record-Reduce-Replay for Realistic and Standalone WebAssembly Benchmarks","authors":"Doehyun Baek, Jakob Getz, Yusung Sim, Daniel Lehmann, Ben L. Titzer, Sukyoung Ryu, Michael Pradel","doi":"arxiv-2409.00708","DOIUrl":null,"url":null,"abstract":"WebAssembly (Wasm for short) brings a new, powerful capability to the web as\nwell as Edge, IoT, and embedded systems. Wasm is a portable, compact binary\ncode format with high performance and robust sandboxing properties. As Wasm\napplications grow in size and importance, the complex performance\ncharacteristics of diverse Wasm engines demand robust, representative\nbenchmarks for proper tuning. Stopgap benchmark suites, such as PolyBenchC and\nlibsodium, continue to be used in the literature, though they are known to be\nunrepresentative. Porting of more complex suites remains difficult because Wasm\nlacks many system APIs and extracting real-world Wasm benchmarks from the web\nis difficult due to complex host interactions. To address this challenge, we\nintroduce Wasm-R3, the first record and replay technique for Wasm. Wasm-R3\ntransparently injects instrumentation into Wasm modules to record an execution\ntrace from inside the module, then reduces the execution trace via several\noptimizations, and finally produces a replay module that is executable\nsandalone without any host environment - on any engine. The benchmarks created\nby our approach are (i) realistic, because the approach records real-world web\napplications, (ii) faithful to the original execution, because the replay\nbenchmark includes the unmodified original code, only adding emulation of host\ninteractions, and (iii) standalone, because the replay benchmarks run on any\nengine. Applying Wasm-R3 to web-based Wasm applications in the wild\ndemonstrates the correctness of our approach as well as the effectiveness of\nour optimizations, which reduce the recorded traces by 99.53 percent and the\nsize of the replay benchmark by 9.98 percent. We release the resulting\nbenchmark suite of 27 applications, called Wasm-R3-Bench, to the community, to\ninspire a new generation of realistic and standalone Wasm benchmarks.","PeriodicalId":501197,"journal":{"name":"arXiv - CS - Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2024-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Programming Languages","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2409.00708","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

WebAssembly (Wasm for short) brings a new, powerful capability to the web as well as Edge, IoT, and embedded systems. Wasm is a portable, compact binary code format with high performance and robust sandboxing properties. As Wasm applications grow in size and importance, the complex performance characteristics of diverse Wasm engines demand robust, representative benchmarks for proper tuning. Stopgap benchmark suites, such as PolyBenchC and libsodium, continue to be used in the literature, though they are known to be unrepresentative. Porting of more complex suites remains difficult because Wasm lacks many system APIs and extracting real-world Wasm benchmarks from the web is difficult due to complex host interactions. To address this challenge, we introduce Wasm-R3, the first record and replay technique for Wasm. Wasm-R3 transparently injects instrumentation into Wasm modules to record an execution trace from inside the module, then reduces the execution trace via several optimizations, and finally produces a replay module that is executable sandalone without any host environment - on any engine. The benchmarks created by our approach are (i) realistic, because the approach records real-world web applications, (ii) faithful to the original execution, because the replay benchmark includes the unmodified original code, only adding emulation of host interactions, and (iii) standalone, because the replay benchmarks run on any engine. Applying Wasm-R3 to web-based Wasm applications in the wild demonstrates the correctness of our approach as well as the effectiveness of our optimizations, which reduce the recorded traces by 99.53 percent and the size of the replay benchmark by 9.98 percent. We release the resulting benchmark suite of 27 applications, called Wasm-R3-Bench, to the community, to inspire a new generation of realistic and standalone Wasm benchmarks.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Wasm-R3:针对真实和独立 WebAssembly 基准的记录-缩减-重放功能
WebAssembly(简称 Wasm)为网络、边缘、物联网和嵌入式系统带来了全新的强大功能。Wasm 是一种便携、紧凑的二进制代码格式,具有高性能和强大的沙箱特性。随着 Wasm 应用程序的规模和重要性不断增加,各种 Wasm 引擎的复杂性能特征要求有稳健、有代表性的基准来进行适当的调整。PolyBenchC和libsodium等权宜基准套件仍在文献中使用,尽管众所周知它们不具代表性。由于 Wasmlacks 有许多系统应用程序接口(API),而且由于复杂的主机交互,从网络上提取真实世界的 Wasm 基准非常困难,因此移植更复杂的基准仍然很困难。为了应对这一挑战,我们引入了Wasm-R3,这是Wasm的首个记录和重放技术。Wasm-R3 以透明方式向 Wasm 模块注入仪器,记录模块内部的执行轨迹,然后通过多次优化减少执行轨迹,最后生成一个重放模块,该模块可在任何引擎上单独执行,无需任何主机环境。通过我们的方法创建的基准是:(i) 真实的,因为该方法记录了真实世界的网络应用;(ii) 忠实于原始执行,因为重放基准包括未修改的原始代码,只是增加了主机交互的模拟;(iii) 独立的,因为重放基准可在任何引擎上运行。将 Wasm-R3 应用于基于网络的野生 Wasm 应用程序证明了我们方法的正确性和优化的有效性,这些优化将记录的痕迹减少了 99.53%,将重放基准的大小减少了 9.98%。我们向社区发布了由 27 个应用程序组成的基准测试套件(称为 Wasm-R3-Bench),以激发新一代真实的独立 Wasm 基准测试。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Repr Types: One Abstraction to Rule Them All $μλεδ$-Calculus: A Self Optimizing Language that Seems to Exhibit Paradoxical Transfinite Cognitive Capabilities Expressing and Analyzing Quantum Algorithms with Qualtran Conversational Concurrency The MLIR Transform Dialect. Your compiler is more powerful than you think
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1