From 49e98ed45351a3cd09442539435a6beb27800612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20G=C3=B6rgen?= Date: Wed, 6 May 2026 16:48:48 +0200 Subject: [PATCH 1/3] data-center: add fat tree like example using ns-3 --- data-center/simple_data_center.py | 197 ++++++++++++++++++++++++++++++ data-center/topology.png | Bin 0 -> 140386 bytes 2 files changed, 197 insertions(+) create mode 100644 data-center/simple_data_center.py create mode 100644 data-center/topology.png diff --git a/data-center/simple_data_center.py b/data-center/simple_data_center.py new file mode 100644 index 0000000..473bf37 --- /dev/null +++ b/data-center/simple_data_center.py @@ -0,0 +1,197 @@ +import ipaddress +import random +from simbricks.orchestration import system +from simbricks.orchestration import simulation as sim +from simbricks.orchestration.simulation.net import ns3_components +from simbricks.orchestration import instantiation as inst +from simbricks.orchestration.helpers import instantiation as inst_helpers +from simbricks.orchestration.helpers import system as sys_helpers + +""" +Simple Data Center Example: + +Simulate a topology consisting of one spine switch and N_RACKS many racks. Each rack contains a TOR +switch and a mix of abstractly simulated hosts for background traffic (simulated in ns-3) and hosts +(+ a separate NIC) running a full Linux stack and the desired workload (simulated in QEMU and +dedicated NIC simulator). +""" + +N_RACKS = 2 +N_DETAILED_HOSTS_PER_RACK = 1 +N_NS3_HOSTS_PER_RACK = 3 + +if N_RACKS * N_DETAILED_HOSTS_PER_RACK % 2 != 0 or N_RACKS * N_NS3_HOSTS_PER_RACK % 2 != 0: + print("Number of detailed hosts and ns-3 hosts must each be even") + exit(1) + +LINK_LATENCY = 100000 # in nanoseconds +LINK_BANDWIDTH_SPINE = "10Gbps" +LINK_BANDWIDTH_TOR = "1Gbps" + +class Host: + def __init__(self, host: system.Host): + self.host: system.Host = host + self.nic: system.SimplePCIeNIC | None = None + self.channel: system.EthChannel | None = None + self.ip: str | None = None + self.ip_prefix: str | None = None + +instantiations: list[inst.Instantiation] = [] + +# ============ SYSTEM ============ + +sys = system.System() + +# IP network for assigning IP addresses to hosts +ip_network = ipaddress.ip_network("10.0.0.0/16") +ips = ip_network.hosts() +ip_prefix = f"/{ip_network.prefixlen}" + +# Create spine switch +spine_switch = system.EthSwitch(sys) +spine_switch.name = "Spine Switch" + +# Create TOR switches +tor_switches: list[tuple[system.EthSwitch, system.EthChannel]] = [] +for i_tor in range(N_RACKS): + tor_switch = system.EthSwitch(sys) + tor_switch.name = f"TOR Switch-{i_tor}" + + channel = sys_helpers.connect_eth_devices(spine_switch, tor_switch) + channel.set_latency(LINK_LATENCY) + channel.parameters['data_rate'] = LINK_BANDWIDTH_SPINE + tor_switches.append((tor_switch, channel)) + +# Create ns-3 hosts and connect them to TOR +ns3_hosts: list[list[Host]] = [] +for i_tor_switch in range(N_RACKS): + rack_hosts = [] + for i_host in range(N_NS3_HOSTS_PER_RACK): + sys_host = system.Host(sys) + sys_host.name = f"Ns-3 Host-{i_tor_switch}-{i_host}" + host = Host(sys_host) + + channel = sys_helpers.connect_eth_devices(tor_switches[i_tor_switch][0], sys_host) + channel.set_latency(LINK_LATENCY) + channel.parameters['data_rate'] = LINK_BANDWIDTH_TOR + host.channel = channel + + host.ip = str(next(ips)) + host.ip_prefix = ip_prefix + sys_host.parameters["ip"] = host.ip + ip_prefix + + rack_hosts.append(host) + ns3_hosts.append(rack_hosts) + +# Create disk images for hosts running Linux +distro_disk_image = system.DistroDiskImage(sys, "base") + +# Create detailed hosts and connect them to TOR +detailed_hosts: list[list[Host]] = [] +for i_tor_switch in range(N_RACKS): + rack_hosts = [] + for i_host in range(N_DETAILED_HOSTS_PER_RACK): + # create a host instance and a NIC instance then install the NIC on the host + sys_host = system.I40ELinuxHost(sys) + sys_host.name = f"Detailed Host-{i_tor_switch}-{i_host}" + host = Host(sys_host) + sys_host.add_disk(distro_disk_image) + sys_host.add_disk(system.LinuxConfigDiskImage(sys, sys_host)) + + nic = system.IntelI40eNIC(sys) + sys_host.connect_pcie_dev(nic) + host.nic = nic + + channel = tor_switches[i_tor_switch][0].connect_eth_peer_if(nic._eth_if) + channel.set_latency(LINK_LATENCY) + channel.parameters['data_rate'] = LINK_BANDWIDTH_TOR + host.channel = channel + + host.ip = str(next(ips)) + host.ip_prefix = ip_prefix + nic.add_ipv4(host.ip) + + rack_hosts.append(host) + detailed_hosts.append(rack_hosts) + +# Set applications of ns-3 hosts for background traffic +ns3_pairs = [i for i in range(N_RACKS * N_NS3_HOSTS_PER_RACK)] +random.shuffle(ns3_pairs) +for i in range(N_RACKS * N_NS3_HOSTS_PER_RACK // 2): + host0_rack_id = ns3_pairs[2*i] // N_NS3_HOSTS_PER_RACK + host0_host_id = ns3_pairs[2*i] % N_NS3_HOSTS_PER_RACK + host0 = ns3_hosts[host0_rack_id][host0_host_id] + + packet_sink = system.Application(host0.host) + packet_sink.parameters["type_id"] = "ns3::PacketSink" + packet_sink.parameters["ns3_params"] = { + "Protocol": "ns3::TcpSocketFactory", + "Local(InetSocketAddress)": host0.ip + ":5001", + } + host0.host.add_app(packet_sink) + + host1_rack_id = ns3_pairs[2*i+1] // N_NS3_HOSTS_PER_RACK + host1_host_id = ns3_pairs[2*i+1] % N_NS3_HOSTS_PER_RACK + host1 = ns3_hosts[host1_rack_id][host1_host_id] + + on_off_app = system.Application(host1.host) + on_off_app.parameters["type_id"] = "ns3::OnOffApplication" + on_off_time = ns3_components.E2ENS3UniformRandomVariable() + on_off_time.min = 1 + on_off_time.max = 5 + on_off_app.parameters["ns3_params"] = { + "Protocol": "ns3::TcpSocketFactory", + "Remote(InetSocketAddress)": host0.ip + ":5001", + "DataRate": "100Mb/s", + "OnTime": on_off_time.get_config(), + "OffTime": on_off_time.get_config(), + } + host1.host.add_app(on_off_app) + +# Set applications for detailed hosts (Iperf clients and servers) +detailed_pairs = [i for i in range(N_RACKS * N_DETAILED_HOSTS_PER_RACK)] +random.shuffle(detailed_pairs) +for i in range(N_RACKS * N_DETAILED_HOSTS_PER_RACK // 2): + host0_rack_id = detailed_pairs[2*i] // N_DETAILED_HOSTS_PER_RACK + host0_host_id = detailed_pairs[2*i] % N_DETAILED_HOSTS_PER_RACK + host0 = detailed_hosts[host0_rack_id][host0_host_id] + iperf_server_app = system.IperfTCPServer(host0.host) + host0.host.add_app(iperf_server_app) + + host1_rack_id = detailed_pairs[2*i+1] // N_DETAILED_HOSTS_PER_RACK + host1_host_id = detailed_pairs[2*i+1] % N_DETAILED_HOSTS_PER_RACK + host1 = detailed_hosts[host1_rack_id][host1_host_id] + iperf_client_app = system.IperfTCPClient(host1.host, host0.ip) + iperf_client_app.wait = True + host1.host.add_app(iperf_client_app) + +# ============ SIMULATION ============ + +simulation = sim.Simulation(name="simple-data-center", system=sys) + +# Simulate detailed hosts with QEMU and their NICs with an I40e simulator +for i_tor_switch in range(N_RACKS): + for i_host in range(N_DETAILED_HOSTS_PER_RACK): + host = detailed_hosts[i_tor_switch][i_host] + host_inst = sim.QemuSim(simulation) + host_inst.add(host.host) + host_inst.name = f"Qemu-Host-{i_tor_switch}-{i_host}" + + nic_inst = sim.I40eNicSim(simulation=simulation) + nic_inst.add(host.nic) + +# Simulate the rest of the system with ns-3 +net_inst = sim.NS3Net(simulation) +net_inst.add(spine_switch) +for i_tor_switch in range(N_RACKS): + net_inst.add(tor_switches[i_tor_switch][0]) + for i_host in range(N_NS3_HOSTS_PER_RACK): + net_inst.add(ns3_hosts[i_tor_switch][i_host].host) + +#simulation.enable_synchronization() + +# ============ INSTANTIATION ============ + +instantiation = inst_helpers.simple_instantiation(simulation) + +instantiations.append(instantiation) diff --git a/data-center/topology.png b/data-center/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..b0fd28ffc7dd859505d70ba4eeb334b2654f5b52 GIT binary patch literal 140386 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

X%56t~%|g_9-V{f+Wym1B$2YiVC;h;?SNR@|2Vm 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
mWIf=| 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 Z;!4R>)S3myy}xc*S^l{kT*l Date: Wed, 6 May 2026 16:49:46 +0200 Subject: [PATCH 2/3] prog-api-demo: add demo showcasing own python helpers + matplotlib visualization --- .devcontainer/devcontainer.json | 2 +- prog-api-demo/helpers.py | 53 ++++++++++++++++++ prog-api-demo/loop.py | 95 ++++++++++++++++++++++++++++++++ prog-api-demo/simple.py | 96 +++++++++++++++++++++++++++++++++ prog-api-demo/vis.py | 76 ++++++++++++++++++++++++++ requirements.txt | 3 +- 6 files changed, 323 insertions(+), 2 deletions(-) create mode 100644 prog-api-demo/helpers.py create mode 100644 prog-api-demo/loop.py create mode 100644 prog-api-demo/simple.py create mode 100644 prog-api-demo/vis.py diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 2abcaa7..8074d8f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -14,6 +14,6 @@ }, "onCreateCommand": "./.devcontainer/onCreate.sh", "remoteEnv": { - "PYTHONPATH": "${containerEnv:PYTHONPATH}:/workspaces/simbricks-examples/corundum" + "PYTHONPATH": "${containerEnv:PYTHONPATH}:/workspaces/simbricks-examples/corundum:/workspaces/simbricks-examples/prog-api-demo" } } \ No newline at end of file diff --git a/prog-api-demo/helpers.py b/prog-api-demo/helpers.py new file mode 100644 index 0000000..63c7f02 --- /dev/null +++ b/prog-api-demo/helpers.py @@ -0,0 +1,53 @@ +# Copyright 2021 Max Planck Institute for Software Systems, and +# National University of Singapore +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +from simbricks.orchestration import system +import re + +""" +Helper functions that are used within the other files in this folder. +""" + +# Custom defined helper function to create an 'I40ELinuxHost' attached to an 'IntelI40eNIC'. +def sys_host_nic(sys, image, ip, hn=None, nn=None): + host = system.I40ELinuxHost(sys) + host.add_disk(image) + host.add_disk(system.LinuxConfigDiskImage(sys, host)) + if hn: + host.name = hn + + nic = system.IntelI40eNIC(sys) + nic.add_ipv4(ip) + host.connect_pcie_dev(nic) + if nn: + nic.name = nn + + return host, nic + + +def parse_Iperf_line_bytes(line: str) -> float | None: + pattern = r"(\d+\.?\d*)\s*MBytes" + match = re.search(pattern, line) + if not match: + return None + m_bytes = float(match.group(1)) + return m_bytes diff --git a/prog-api-demo/loop.py b/prog-api-demo/loop.py new file mode 100644 index 0000000..bb6a421 --- /dev/null +++ b/prog-api-demo/loop.py @@ -0,0 +1,95 @@ +# Copyright 2021 Max Planck Institute for Software Systems, and +# National University of Singapore +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +from simbricks.orchestration import simulation as sim +from simbricks.orchestration import system +from simbricks.orchestration.helpers import instantiation as inst_helpers +from simbricks.orchestration.helpers import simulation as sim_helpers +from helpers import sys_host_nic + +""" +Simple example of a simulation: All components are executed in the same fragment. + _________________________________________________________________________ +| | +| Iperf-Server -- Server-NIC -- Switch ----- Client-NIC -- Iperf-CLient | +|________________________________________________________________________| + +We define different rates at which the Iperf UDP client tries to send packets +and create 3 instantiations (one for each rate). +""" + +instantiations = [] + +iperf_rates = ["150m", "430m", "600m"] +for rate in iperf_rates: + + """ + System configuration + """ + sys = system.System() + + # We create a Linux disk image instance that will be used by the hosts we create. + # The image used here is provided by SimBricks, user can however also provide custom images. + distro_disk_image = system.DistroDiskImage(sys, "base") + + # Configure the server to start an Iperf server by adding an application to the server object. + server_host, server_nic = sys_host_nic( + sys, distro_disk_image, "10.0.0.1", "Iperf-Server", "Server-NIC" + ) + server_host.add_app(system.IperfUDPServer(server_host)) + + # Configure the client to start an Iperf client by adding an application to the client object. + # Besides, we set the wait flag on the application to tell SimBricks to run until this application is completed. + client_host, client_nic = sys_host_nic( + sys, distro_disk_image, "10.0.0.2", "Iperf-Client", "Client-NIC" + ) + ping_client_app = system.IperfUDPClient(client_host, server_nic._ip, rate) + ping_client_app.wait = True + client_host.add_app(ping_client_app) + + # Create a network switch that connects the server and client NICs with each other. + switch0 = system.EthSwitch(sys) + for nic in [server_nic, client_nic]: + switch0.connect_eth_peer_if(nic._eth_if) + + """ + Simulation configuration + """ + + # We make a simulator choice by simply mapping component types to simulators. + simulation = sim_helpers.simple_simulation( + sys, + compmap={ + system.FullSystemHost: sim.QemuSim, + system.IntelI40eNIC: sim.I40eNicSim, + system.EthSwitch: sim.SwitchNet, + }, + ) + # simulation.enable_synchronization() + + """ + Instantiation configuration + """ + + # Instantiate the virtual prototype + instantiation = inst_helpers.simple_instantiation(simulation) + instantiations.append(instantiation) diff --git a/prog-api-demo/simple.py b/prog-api-demo/simple.py new file mode 100644 index 0000000..84ab00e --- /dev/null +++ b/prog-api-demo/simple.py @@ -0,0 +1,96 @@ +# Copyright 2021 Max Planck Institute for Software Systems, and +# National University of Singapore +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +from simbricks.orchestration import simulation as sim +from simbricks.orchestration import system +from simbricks.orchestration.helpers import instantiation as inst_helpers +from simbricks.orchestration.helpers import simulation as sim_helpers +from helpers import sys_host_nic + +""" +Simple example of a simulation: All components are executed in the same fragment. + _________________________________________________________________________ +| | +| Iperf-Server -- Server-NIC -- Switch ----- Client-NIC -- Iperf-CLient | +|________________________________________________________________________| +""" + + +""" +System configuration +""" +sys = system.System() + +# We create a Linux disk image instance that will be used by the hosts we create. +# The image used here is provided by SimBricks, user can however also provide custom images. +distro_disk_image = system.DistroDiskImage(sys, "base") + +# Configure the server to start an Iperf server by adding an application to the server object. +server_host, server_nic = sys_host_nic( + sys, distro_disk_image, "10.0.0.1", "Iperf-Server", "Server-NIC" +) +server_host.add_app(system.IperfTCPServer(server_host)) + +# Configure the client to start an Iperf client by adding an application to the client object. +# Besides, we set the wait flag on the application to tell SimBricks to run until this application is completed. +client_host, client_nic = sys_host_nic( + sys, distro_disk_image, "10.0.0.2", "Iperf-Client", "Client-NIC" +) +ping_client_app = system.IperfTCPClient(client_host, server_nic._ip) +ping_client_app.wait = True +client_host.add_app(ping_client_app) + +# Create a network switch that connects the server and client NICs with each other. +switch0 = system.EthSwitch(sys) +for nic in [server_nic, client_nic]: + switch0.connect_eth_peer_if(nic._eth_if) + + +""" +Simulation configuration +""" + +# We make a simulator choice by simply mapping component types to simulators. +simulation = sim_helpers.simple_simulation( + sys, + compmap={ + system.FullSystemHost: sim.QemuSim, + system.IntelI40eNIC: sim.I40eNicSim, + system.EthSwitch: sim.SwitchNet, + }, +) +# Optionally enable synchronization +# simulation.enable_synchronization() + + +""" +Instantiation configuration +""" + +# Instantiate the virtual prototype +instantiation = inst_helpers.simple_instantiation(simulation) + + +# We define a list of 'Instantiation' objects, with the name 'instantiations'. +# This list is used by SimBricks to create runs and execute simulations. +# Every SimBricks VP script must define this list. +instantiations = [instantiation] diff --git a/prog-api-demo/vis.py b/prog-api-demo/vis.py new file mode 100644 index 0000000..063134d --- /dev/null +++ b/prog-api-demo/vis.py @@ -0,0 +1,76 @@ +# Copyright 2021 Max Planck Institute for Software Systems, and +# National University of Singapore +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +import asyncio +from matplotlib import pyplot as plt +from simbricks.client import simb_client +from simbricks.client.opus.base import create_run, ConsoleLineGenerator +from loop import instantiations, iperf_rates +from helpers import parse_Iperf_line_bytes + +""" +Simple example of how to use SimBRicks api to start and analyse a simulation programatically. + +In this file, the instantiations defined in 'loop.py' are submitted for execution to the backend. + +The simulator output for each of them is parsed to create a plot comparing the three different Runs with each other. +""" + + +async def run_and_parse(instantiation) -> list[float]: + sbc = await simb_client() + run_id = await create_run(instantiation) + line_gen = ConsoleLineGenerator(run_id, True, sbc) + throughputs = [] + async for _, line in line_gen.generate_lines(): + through = parse_Iperf_line_bytes(line) + if through is None: + continue + throughputs.append(through) + + return throughputs + + +def plot_throughputs(throughputs: list[list[float]]): + averages = [] + for throughs in throughputs: + assert len(throughs) > 0 + averages.append(sum(throughs) / len(throughs)) + + plt.bar(iperf_rates, averages) + plt.title("Parameters Comparison Chart") + plt.xlabel("Configuration Parameters") + plt.ylabel("Average MBytes Transferred") + plt.savefig("demochart.png") + + +async def amain(): + throughputs = [] + for instantiation in instantiations: + throughs = await run_and_parse(instantiation) + throughputs.append(throughs[1:10]) + + plot_throughputs(throughputs) + + +if __name__ == "__main__": + asyncio.run(amain()) diff --git a/requirements.txt b/requirements.txt index 40978c2..37d66d2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ simbricks-client simbricks-cli -simbricks-orchestration \ No newline at end of file +simbricks-orchestration +matplotlib \ No newline at end of file From 60fbb2fbb91c2d82e9da89ae88e2c0e68da0e8b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20G=C3=B6rgen?= Date: Wed, 6 May 2026 16:50:14 +0200 Subject: [PATCH 3/3] README: update regarding data-center & prog-api-demo examples --- README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/README.md b/README.md index d979d8e..0b1210a 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,27 @@ mybinder](https://mybinder.org/v2/gh/simbricks/labs/main?urlpath=git-pull%3Frepo Within the `netwroking-case-study` folder you will find SimBricks examples that demonstrates how to leverage SimBricks orchestration framework to create increasingly complex virtual prototypes of network topologies. It makes use of the concepts shown in the FirstSteps example and shows a simple setup in which multiple components of a virtual prototype are simulated by the same simulator. +## Corundum + +The Corundum examples showcases the integration of the open-source, high-performance FPGA-based Corundum NIC. + +## Data Center + +Example that showcases how SimBricks can be used to consisting of one spine switch and a number of racks. +Each rack contains a TOR switch and a mix of abstractly simulated hosts for background traffic that are simulated in ns-3 and hosts +simulated in QEMU that each are connected to a dedicated NIC simulator. The QEMU hosts run a full Linux stack and execute Iperf. +The topology created looks as depicted [here](https://github.com/simbricks/simbricks-examples/blob/main/data-center/topology.png). + +## Programmatic API Demo + +SimBricks orchestration framework is written in Python. This makes it easy to write convenience functions yourself to share orchestration bits across experiments. +Besides, SimBricks allows you to run your virtual prototype through python directly. This is useful in order to retrieve the simulation ourput line by line in python for parsing and testing. +In the Api demo you can see simple examples for this. + +# Questions + +In case you have any questions regarding one of the examples, SimBricks in general or how you can use SimBricks in your workflow feel free to [reach out directly to us](https://www.simbricks.io/about.html) or open a issue in the [simbricks main repository](https://github.com/simbricks/simbricks/issues). +