3.1. Installing SimBricks Packages (Conda Channel)#
All SimBricks components — the core libraries, the Python orchestration packages, and every
integrated simulator — are distributed as conda packages through the SimBricks conda channel.
The Python packages are additionally published to PyPI on releases, so for writing virtual
prototypes and talking to the SimBricks Cloud, plain pip install works too (that is what the
Quickstart uses). The conda channel is the way to get the
simulator binaries, which are not pip-installable.
3.1.1. Channels: stable vs. latest#
The channel comes in two variants:
https://conda.simbricks.io/stable— built from thereleasebranches. This is the channel to use for regular work: SimBricks releases are built against it, and it only moves when a new version is released.https://conda.simbricks.io/latest— built continuously from themainbranches. Use it during development to preview the upcoming, not-yet-released state of SimBricks — for example to check how your virtual prototypes or simulator integrations behave against what will become the next release. Everything inlatesteventually lands instablewith the next release.
Do not mix the two channels within one environment — the package versions are pinned against each
other, so a mixed environment can end up inconsistent. To try latest, simply create a second
environment that uses latest in place of stable in the commands below, and switch between
the environments with micromamba activate.
3.1.2. Setup#
Any conda-compatible package manager works; we recommend micromamba:
# install micromamba (see the micromamba docs for details)
"${SHELL}" <(curl -L micro.mamba.pm/install.sh)
# register the SimBricks channel (swap stable for latest to preview development builds)
micromamba config append channels https://conda.simbricks.io/stable
micromamba config append channels conda-forge
Then install what you need, e.g.:
# authoring + cloud submission only (pure Python)
micromamba install simbricks-orchestration simbricks-client simbricks-cli
# local execution of the quickstart example: local runtime + simulators
micromamba install simbricks-local simbricks-qemu-sim-bin \
simbricks-i40e-sim-bm-bin simbricks-net-base-sim-bin
Note that installing a simulator’s *-bin package automatically pulls in the matching Python
integration packages, so the simulator is immediately usable from virtual prototype scripts.
Note
The binary packages are currently built for linux-64 only. On other platforms, use the
Docker images.
3.1.3. Package inventory#
Core packages (from simbricks/simbricks):
Package |
Contents |
|---|---|
|
SimBricks protocol libraries and headers (C/C++), needed to build adapters/simulators |
|
Proxies for distributed simulation ( |
|
Shared Python utilities ( |
|
The orchestration framework ( |
|
Runtime managing simulator lifecycle during execution ( |
|
Client library for the SimBricks Backend ( |
|
Telemetry support ( |
|
The |
|
The Runner ( |
|
Local execution without cloud ( |
Component packages (one set per component-* repository): the naming scheme is
simbricks-<x>-sys-py for system components, simbricks-<x>-sim[-<flavor>]-py for the
simulator classes, and simbricks-<x>-sim[-<flavor>]-bin for the executable (flavors: bm =
behavioral model, rtl = RTL simulation). See the table in the simulator overview on the landing page for the full list; the executables provided are:
Binary package |
Executable(s) |
Python simulator class(es) |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Note
gem5 is the one simulator not resolved via $PATH: Gem5Sim locates the binary and config
scripts under $CONDA_PREFIX/opt/gem5/. For a local, non-conda gem5 build, point the
GEM5_PREFIX environment variable at your build tree instead.