Skip to main content

A simulator for carbon-aware applications and systems.

Project description

Vessim

PyPI version Tests License Supported versions

Vessim is a versatile co-simulation testbed for carbon-aware applications and systems which connects domain-specific simulators for renewable power generation and energy storage with real software and hardware.

It simulates energy systems that interact with real or simulated computing systems for:

  • Carbon-aware applications: Simulated microgrids offer real-time visibility and control via APIs, enabling the development of novel applications that interact with their energy system.
  • Energy system composition: Examine how the integration of solar panels, wind energy, or batteries would affect the energy mix of your datacenters.
  • Digital Twins: Predict future system states in carbon-aware datacenters, aid decision-making, and assess risks during extreme events like power outages.
  • Quality Assurance: Apply Vessim in continuous integrating testing or use it to validate software roll-outs in a controlled environment.

Vessim can simulate large numbers of microgrids in parallel, comes with ready-to-use datasets, can execute simulated experiments faster than real-time, and is easily extendable with new simulators of any platform through Mosaik's TCP interface.

Check out the official documentation!

Example scenario

The scenario below simulates a microgrid consisting of a simulated computing system (which consistently draws 400W), a single producer (a solar power plant who's production is modelled based on a dataset provided by Solcast), and a battery. The Monitor periodically stores the energy system state.

import vessim as vs

environment = vs.Environment(sim_start="2022-06-15")

monitor = vs.Monitor()
environment.add_microgrid(
    actors=[
        vs.ComputingSystem(nodes=[vs.MockSignal(value=400)]),
        vs.Actor(
            name="solar_panel",
            signal=vs.HistoricalSignal.load("solcast2022_global", column="Berlin")
        ),
    ],
    controllers=[monitor],
    storage=vs.SimpleBattery(capacity=100),
    step_size=60,
)

environment.run(until=24 * 3600)  # 24h
monitor.to_csv("result.csv")

Installation

You can install the latest release of Vessim via pip:

pip install vessim

If you require software-in-the-loop (SiL) capabilities, you should additionally install the sil extension:

pip install vessim[sil]

For complex scenarios that involve custom co-simulation actors we recommend cloning and editing this depository directly.

Work in progress

Our team at the Distributed and Operating Systems group at TU Berlin is actively working to improve Vessim. We are currently working on the following aspects and features:

  • Software-in-the-loop API: We will soon release a new API for SiL simulations with new examples and better documentation.
  • System Advisor Model (SAM): We are working on integrating NREL's SAM as a subsystem in Vessim, allowing for better simulation of solar arrays, wind farms, and other types of renewable energy generators.
  • Flower: We are working on integrating Vessim into the federated learning framework Flower.
  • Validation: We are working on validating the accuracy of Vessim compared to real hardware testbeds.

Datasets

Vessim comes with ready-to-user datasets for solar irradiance and average carbon intensity provided by

and

We're working on documentation on how to include custom datasets for your simulations.

Publications

If you use Vessim in your research, please cite our paper:

@inproceedings{wiesner2024vessim,
    title     = {Vessim: A Testbed for Carbon-Aware Applications and Systems},
    author    = {Wiesner, Philipp and Behnke, Ilja and Kilian, Paul and Steinke, Marvin and Kao, Odej},
    booktitle = {3rd Workshop on Sustainable Computer Systems (HotCarbon)},
    year      = {2024},
}

For details in Vessim's software-in-the-loop simulation methodology, refer to our journal paper:

@article{wiesner2023sil,
    author    = {Wiesner, Philipp and Steinke, Marvin and Nickel, Henrik and Kitana, Yazan and Kao, Odej},
    title     = {Software-in-the-loop simulation for developing and testing carbon-aware applications},
    journal   = {Software: Practice and Experience},
    year      = {2023},
    volume    = {53},
    number    = {12},
    pages     = {2362-2376},
    doi       = {https://doi.org/10.1002/spe.3275}
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vessim-0.9.1.tar.gz (26.0 kB view details)

Uploaded Source

Built Distribution

vessim-0.9.1-py3-none-any.whl (27.1 kB view details)

Uploaded Python 3

File details

Details for the file vessim-0.9.1.tar.gz.

File metadata

  • Download URL: vessim-0.9.1.tar.gz
  • Upload date:
  • Size: 26.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for vessim-0.9.1.tar.gz
Algorithm Hash digest
SHA256 eece42ba8e01de2cef7c7bf74270f8b05d9933d63cef646cbd269539b82a48a1
MD5 4b7fd95afffc64cec067a54a94b83eec
BLAKE2b-256 12ee05144c954b108a099678b0a7d78b6b2ea548808f7e756756e21b64038fa9

See more details on using hashes here.

File details

Details for the file vessim-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: vessim-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 27.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for vessim-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 33b31956bfdbe1b083e2cbe2904d253f0413cda7e2435f39a341dd7602fb0246
MD5 840775e4935ff6c5c4f6d2c87c7569be
BLAKE2b-256 2c6d823d2fba93b0780a8f93e43f7269025029bc79c3d2c66d048cf183794a54

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page