Overview
SimBricks is a simulation framework that enables full end-to-end evaluation of modern network systems in simulation. Our primary aim is to to enable network systems research and instruction — from rapid prototyping to meaningful performance evaluation.
SimBricks modularly combines and connects multiple battle-tested simulators for different components: machines (e.g. QEMU, gem5), hardware components (e.g. Verilator, Tofino, FEMU SSD), and networks (e.g. ns-3, OMNeT++). SimBricks assembles multiple instances of these simulators into simulated testbeds capable of running unmodified full system stacks, including applications and operating systems such as Linux.
Key Features
- End-to-End: simulate full network systems, with hosts, devices, network, and the full software stack.
- Scalable: simulate large network systems comprising tens or hundreds of separate hosts and devices.
- Fast: keep simulation times as low as possible.
- Modular: enable flexible composition of simulators, where components can be added and swapped independently.
- Accurate: preserve accuracy of constituent simulators, correctly interface and synchronize components.
- Deterministic: keep end-to-end simulation deterministic when individual simulators are deterministic.
Techniques
-
Fixed natural component simulator interfaces
SimBricks defines an interface for each component type to enable modular composition of simulators... -
Accurate and efficient synchronization
SimBricks ensures accurate simulation through correct time synchronization, but with minimal runtime overhead... -
Loose coupling with message passing
SimBricks runs component simulators as separate processes that communicate through message passing... -
Parallel execution with shared memory queues
SimBricks runs simulators in parallel on different host cores and connects them through optimized shared-memory queues...
News
-
AC/DSim poster at SOSP'23 SRC
2023-09-13Jonas' submission on full system energy estimation with modular simulation has passed stage 1 of the SOSP'23 student research competition.
-
Simics integrated into SimBricks
2023-05-09Jonas successfully implemented SimBricks adapters in Intel's Simics simulator for the PCI and memory protocols and we now merged this into the main branch.
-
SplitSim accepted at YArch'23
2023-02-23Hejing will present her ongoing work on parallelizing sequential simulators through decomposition at YArch'23.
-
Memory Disaggregation in SimBricks
2023-02-14We merged initial support for simulating disaggregated memory systems into our main branch.
-
Welcome Marvin
2023-01-27Marvin joined the project for his MSc thesis.
-
Presented at WORDS'22
2022-11-18Bin showcased SimBricks for disaggregated systems research at WORDS'22. Here is a video.
-
Welcome Jakob
2023-10-18Jakob joined the project for his MSc thesis.
-
Presented at SIGCOMM'22
2022-08-24Hejing presented SimBricks at SIGCOMM'22 in Amsterdam. Here is a video of the presentation.
-
Artifact Evaluation Passed
2022-06-29Our SIGCOMM'22 paper received all three artifact evaluation badges: available, functional, and reproduced.
-
Paper Accepted at SIGCOMM'22
2022-05-07Our SimBricks paper will appear at SIGCOMM'22 in Amsterdam!