[网络领域顶会追踪系列#27][SIGCOMM'22]SimBricks:使用模块化仿真评估端对端网络系统
本系列为个人论文阅读笔记,大多数应该是对顶会摘要的个人菜鸟翻译,旨在让感兴趣的朋友能快速浏览、获取信息。如有错误或心得,欢迎在评论区交流指正!
SimBricks: End-to-End Network System Evaluation with Modular Simulation
作者单位:德国马克斯·普朗克软件系统研究所、新加坡国立大学
背景
物理testbed中,全系统的“端到端”测量是网络系统评估的黄金标准,但通常是不可行的。因为物理testbed不可行,我们通常使用仿真(simulation)来做评估。
挑战
不幸的是,现有的仿真器对于端到端仿真而言是不充分的,因为它们既不能仿真所有组件,也不能充分地仿真组件的细节。
工作
作者通过模块化仿真来解决此问题,在为每个用例调整的虚拟端到端实验床上,针对不同的组件(包括处理器、内存、设备和网络),灵活地组合和连接多种现有的仿真器。
作者的架构,SimBricks,结合了:
- 针对可扩展性和模块化的定义良好的组件接口
- 针对本地和分布式仿真的高效通信通道
- 一种共同设计(co-designed)的高效同步机制,用于跨仿真器精确计时
实验
作者展示了SimBricks可以扩展至1000个仿真主机,每个主机都运行着包括Linux在内的完整软件栈,并且它能够使用现有的NIC和交换机的RTL实现来仿真testbeds。
作者也在SimBricks上复现了先前工作(包括拥塞控制、NIC架构、网内计算)中的核心发现。
原文摘要
Full system "end-to-end" measurements in physical testbeds are the gold standard for network systems evaluation but are often not feasible. When physical testbeds are not available we frequently turn to simulation for evaluation. Unfortunately, existing simulators are insufficient for end-to-end evaluation, as they either cannot simulate all components, or simulate them with inadequate detail.
We address this through modular simulation, flexibly combining and connecting multiple existing simulators for different components, including processor and memory, devices, and network, into virtual end-to-end testbeds tuned for each use-case. Our architecture, SimBricks, combines well-defined component interfaces for extensibility and modularity, efficient communication channels for local and distributed simulation, and a co-designed efficient synchronization mechanism for accurate timing across simulators. We demonstrate SimBricks scales to 1000 simulated hosts, each running a full software stack including Linux, and that it can simulate testbeds with existing NIC and switch RTL implementations. We also reproduce key findings from prior work in congestion control, NIC architecture, and in-network computing in SimBricks.