Slide 7
Slide 7 text
7
既存のWasm内部実行状態保存・復元手法
実行性能や異種ランタイム・性能最適化方式対応に課題
Wasmランタイム内での保存・復元[2]
コード
挿入
内部状態分析
外部関数
…
local.get $p1
local.get $p2
i32.add
call $hoge
…
…
call $analysis
local.get $p1
call $analysis
local.get $p2
call $analysis
i32.add
call $analysis
…
ランタイムごとに独自の実装が必要
状態変換が複雑化
ネイティブコンパイル時の命令挿入[4]
特定のコンパイラ基盤と
実行方式に依存
バイトコードの事前改変[3]
外部の分析関数を呼び出すことで
オーバヘッドが増大
ランタイムA
Wasmバイトコード
内部実行状態保存・復元
for A
ランタイムB
Wasmバイトコード
内部実行状態保存・復元
for B
[2] D. Fujii, K. Matsubara, and Y. Nakata, “Stateful VM Migration Among Heterogeneous WebAssembly Runtimes for Efficient Edge-cloud Collaborations”, Proceedings of the 7th International
Workshop on Edge Systems, Analytics and Networking, pp. 19–24, Apr. 2024, doi: https://doi.org/10.1145/3642968.3654816.
[3] D. Lehmann and M. Pradel, “Wasabi: A framework for dynamically analyzing webassembly”, Architectural Support for Programming Languages and Operating Systems, Apr. 2019, doi:
https://doi.org/10.1145/3297858.3304068
[4] Y. Yang, A. Hu, Y. Zheng, B. Zhao, X. Zhang, and A. Quinn, “Transparent and Efficient Live Migration across Heterogeneous Hosts with Wharf”, arXiv (Cornell University), Oct. 2024, doi:
https://doi.org/10.48550/arXiv.2410.15894
マイグレーション可能
ネイティブバイナリ
コンパイル時
に挿入
ライブマイグレーション用
命令(中間表現)