Hakoniwa-time

103 Views

August 25, 24

スライド概要

この資料では、箱庭時間同期について説明します。
・シミュレーション時間と時間同期の背景
・既存の時間同期方式
・箱庭の時間同期方式
・箱庭コア機能の時間同期設計

profile-image

TOPPERS/箱庭WG活動でUnityやらAthrillやらmROSやら触ってます。 最近は仕事の関係でWeb系の技術に注力しつつ、箱庭への転用を模索しています。 2023年8月1日:合同会社箱庭ラボに移動しました

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

箱庭(Hakoniwa) Time 合同会社箱庭ラボ 森崇

2.

はじめに • この資料では、箱庭時間同期について説明します。 • シミュレーション時間と時間同期の背景 • 既存の時間同期方式 • 箱庭の時間同期方式 • 箱庭コア機能の時間同期設計 2

3.

シミュレーション時間と時間同期の背景 3 • はじめに • 様々なシミュレータが混在を許す環境を想像してみてください • 各シミュレータはそれぞれ固有のシミュレーション時間を持ちます • どんな問題が起きる? • 各シミュレータが独立して動作するとシミュレーション実行タイミングがズレてしまいます • 何があれば良いか? • 全てのシミュレータが時間同期できる機能が必要ですね シミュレーション時間同期 シミュレーション時間1 シミュレーション時間2 シミュレーション時間3 シミュレータ1 シミュレータ2 シミュレータ3

4.

既存の時間同期方式 4 • FMI(Functional Mock-up Interface) • 欧州の公的プロジェクトが規格化 • シミュレーションツールに依存しないモデル接続のための共通インターフェース • FMIのシミュレーション時間同期方式 • ME(Model Exchange) FMI tool1 tool2 tool3 supplier1 supplier2 supplier3 • 完全に時間同期が可能 • CS(Co-Simulation) • シミュレータ間の遅延時間(固定)を許容 • 適切な遅延時間をユーザが選択する • 考察 • いずれも中央制御方式であるため,精度調整は容易であるがシステム構 成要素が増えると処理オーバーヘッドが高くなると考えられる.

5.

箱庭の時間同期方式 5 • 箱庭の時間同期方式 • 中央制御方式ではなく,並列化が容易な分散制御方式でのシ ミュレーション時間同期方式 • 仕組み(ハーモニー) • 各シミュレータは 箱庭時間(マエストロ)をみながら, シミュレーション時間調整し時間同期する(ハーモニー) シミュレーション時間同 期のためのピンポンはし ない.ミュレータのベス ト・エフォートでの並列 同期を実施 箱庭時間 • 箱庭時間より早い場合 • シミュレーション時間を遅くする • 箱庭時間より遅い場合 • シミュレーション時間を早くする • 各シミュレータ時間を可視化 • 時間同期の程度を定量化 • 環境スペックの妥当性を評価・調整 シミュレーション時間1 シミュレーション時間2 シミュレーション時間3 シミュレータ1 シミュレータ2 シミュレータ3 各シミュレータは箱庭 時間に対して自分のシ ミュレーション時間の進 め方を調整する

6.

箱庭コア機能の時間同期設計 • 箱庭コンダクタと箱庭アセットのAPIとして機能提供しています 箱庭コンダクタ 箱庭コンダクタAPI (hako_conductor.h) 箱庭アセット 箱庭アセットAPI (hako_asset.h) 箱庭コマンド (hako_cmd.cpp) hakoniwa-core-cpp-client 箱庭コマンドAPI (hako_simevent.hpp) hakoniwa-core-cpp [凡例] アクター 箱庭API 管理リポジトリ名 6

7.

箱庭コア機能の時間同期設計 • 共有メモリを介して、箱庭時間とアセット時間をそれぞれ参照・更新する 箱庭アセット 箱庭コンダクタ 箱庭アセットAPI 箱庭コンダクタAPI 共有メモリ 箱庭時間 箱庭アセットAPI 実現処理 箱庭アセット時間 箱庭アセット時間 箱庭アセット時間 箱庭コンダクタAPI 実現処理 7

8.

箱庭時間とアセット時間の進め方 箱庭アセットAPI実現処理 • 箱庭時間 < 箱庭アセット時間 • 時間を止める • 箱庭時間 ≧ 箱庭アセット時間 箱庭アセットAPI実現処理 • 箱庭コア時間 < (箱庭アセット時間 + 最大許容遅延時間) • 時間を止める • 箱庭コア時間 ≧ (箱庭アセット時間 + 最大許容遅延時間) • 時間を進める • 時間を進める 箱庭時間が進んでいる 箱庭アセット時間が遅れている 時間を進める 箱庭時間 箱庭時間 時間を止める 時間を止める 時間を進める 箱庭アセット時間が進んでいる 箱庭時間が遅れている 箱庭アセット時間 箱庭アセット時間 8

9.

最大許容遅延時間の考察 • 最大許容遅延時間の設定により、シミュレーション精度とスピードが変わる 箱庭アセットのみ 時間を進める領域 • 最大許容遅延時間が大きい場合 • アセット間の時間のズレが大きくなる 箱庭時間 • 反面、並行実行できるのでスピードは速い • 最大許容遅延時間が小さい場合 • アセット間の時間のズレは小さい • 最小値:シミュレーションステップ • 反面、並行実行でないのでスピードは遅い 箱庭のみ時間を進める領域 箱庭アセット時間 9